root/platform/ixus70_sd1000/sub/102a/capt_seq.c

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

DEFINITIONS

This source file includes following definitions.
  1. sub_FFB01EB0_my
  2. sub_FFAFECD8_my
  3. capt_seq_task
  4. exp_drv_task
  5. sub_FF967798_my
  6. sub_FF9304F8_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 
   5 static long *nrflag = (long*)0xCDA0;
   6 
   7 #include "../../../generic/capt_seq.c"
   8 
   9 void __attribute__((naked,noinline)) sub_FFB01EB0_my(long p)
  10 {
  11     (void)p;
  12     asm volatile (
  13                 "STMFD   SP!, {R4,LR}\n"
  14                 "MOV     R4, R0\n"
  15                 "SUB     SP, SP, #0xC\n"
  16                 "BL      sub_FFB02920\n"
  17 //              "MOVL    R1, 0xFFFFFFFF\n"
  18                 "MVN     R1, #0\n"
  19                 "BL      sub_FFB13090\n" //ClearEventFlag
  20                 "MOV     R0, #0x8A\n"
  21                 "ADD     R1, SP, #4\n"
  22                 "MOV     R2, #4\n"
  23                 "BL      sub_FF81BC98\n"
  24                 "TST     R0, #1\n"
  25                 "BEQ     loc_FFB01EF0\n"
  26                 "MOV     R1, #0x1D0\n"
  27                 "LDR     R0, =0xFFB01D34\n" //aSscaptureseq_c
  28                 "ADD     R1, R1, #2\n"
  29                 "BL      sub_FFB2071C\n" //DebugAssert
  30 "loc_FFB01EF0:\n"                           
  31                 "LDR     R3, =0xBDA80\n"
  32                 "LDR     R2, =0xBDB40\n"
  33                 "LDR     R0, [R3,#0x7C]\n"
  34                 "LDRSH   R1, [R2,#0xE]\n"
  35                 "BL      sub_FFA395F0\n"
  36                 "MOV     R0, R4\n"
  37                 "BL      sub_FFB01CB8\n"
  38                 "BL      wait_until_remote_button_is_released\n"
  39                 "BL      capt_seq_hook_set_nr\n" // +
  40                 "LDR     R3, =0xCDA4\n"
  41                 "LDR     R0, [R3]\n"
  42 
  43                 "B       sub_FFB01F14\n"  // ---> jump to end of function in ROM
  44     );
  45 }
  46 
  47 void __attribute__((naked,noinline)) sub_FFAFECD8_my(long p)
  48 {
  49     (void)p;
  50     asm volatile (
  51                 "STMFD   SP!, {R4,R5,LR}\n"
  52                 "LDR     R3, =0xBDA80\n"
  53                 "LDR     R5, [R0,#0xC]\n"
  54                 "LDR     R1, [R3,#0x24]\n"
  55                 "LDR     R2, [R5,#8]\n"
  56                 "CMP     R1, #0\n"
  57                 "ORR     R2, R2, #1\n"
  58                 "STR     R2, [R5,#8]\n"
  59                 "BNE     loc_FFAFED2C\n"
  60                 "MOV     R0, #0xC\n"
  61                 "BL      sub_FFB09228\n"
  62                 "TST     R0, #1\n"
  63                 "BEQ     loc_FFAFED2C\n"
  64                 "LDR     R3, [R5,#8]\n"
  65                 "MOV     R0, #1\n"
  66                 "ORR     R3, R3, #0x40000000\n"
  67                 "STR     R3, [R5,#8]\n"
  68 "loc_FFAFED1C:\n"                           
  69                 "MOV     R2, R5\n"
  70                 "MOV     R1, #1\n"
  71                 "LDMFD   SP!, {R4,R5,LR}\n"
  72                 "B       sub_FFAFD480\n"
  73  "loc_FFAFED2C:\n"                           
  74                 "LDR     R4, =0xBDA80\n"
  75                 "BL      sub_FFAFF7D0\n" //Set_CMD25Write_61
  76                 "LDR     R3, [R4,#0x24]\n"
  77                 "CMP     R3, #0\n"
  78                 "BNE     loc_FFAFED74\n"
  79                 "MOV     R0, R5\n"
  80                 "BL      sub_FFB009B4\n"
  81                 "TST     R0, #1\n"
  82                 "BNE     loc_FFAFED1C\n"
  83                 "BL      sub_FF8261B8\n"
  84                 "BL      sub_FF81BE94\n"
  85                 "STR     R0, [R5,#0x14]\n"
  86                 "MOV     R0, R5\n"
  87                 "BL      sub_FFB01D98\n"
  88                 "BL      sub_FFB0278C\n"
  89                 "MOV     R0, R5\n"
  90                 "BL      sub_FFB01EB0_my\n"  //---------->
  91                 "BL      capt_seq_hook_raw_here\n"  // +
  92                 "B       loc_FFAFED88\n"
  93 "loc_FFAFED74:\n"
  94                 "LDR     R3, =0xCD8C\n"
  95                 "LDR     R2, [R3]\n"
  96                 "CMP     R2, #0\n"
  97                 "MOVNE   R0, #0x1D\n"
  98                 "MOVEQ   R0, #0\n"
  99 "loc_FFAFED88:\n"
 100                 "MOV     R1, #1\n"
 101                 "MOV     R2, R5\n"
 102                 "BL      sub_FFAFD480\n"
 103                 "BL      sub_FFB0222C\n"
 104                 "CMP     R0, #0\n"
 105                 "LDRNE   R3, [R5,#8]\n"
 106                 "ORRNE   R3, R3, #0x2000\n"
 107                 "STRNE   R3, [R5,#8]\n"
 108                 "LDMFD   SP!, {R4,R5,PC}\n"
 109     );
 110 }
 111 
 112 void __attribute__((naked,noinline)) capt_seq_task()
 113 {
 114         asm volatile (
 115                 "STMFD   SP!, {R4,LR}\n"
 116                 "SUB     SP, SP, #4\n"
 117                 "MOV     R4, SP\n"
 118                 "B       loc_FFAFF310\n"
 119 "loc_FFAFF194:\n"                           
 120                 "LDR     R2, [SP]\n"
 121                 "LDR     R3, [R2]\n"
 122                 "MOV     R0, R2\n"
 123                 "CMP     R3, #0x15\n"
 124                 "LDRLS   PC, [PC,R3,LSL#2]\n"
 125                 "B       loc_FFAFF2E4\n"
 126                 ".long loc_FFAFF204\n"
 127                 ".long loc_FFAFF224\n"
 128                 ".long loc_FFAFF238\n"
 129                 ".long loc_FFAFF24C\n"
 130                 ".long loc_FFAFF244\n"
 131                 ".long loc_FFAFF254\n"
 132                 ".long loc_FFAFF25C\n"
 133                 ".long loc_FFAFF268\n"
 134                 ".long loc_FFAFF270\n"
 135                 ".long loc_FFAFF27C\n"
 136                 ".long loc_FFAFF284\n"
 137                 ".long loc_FFAFF28C\n"
 138                 ".long loc_FFAFF294\n"
 139                 ".long loc_FFAFF29C\n"
 140                 ".long loc_FFAFF2A4\n"
 141                 ".long loc_FFAFF2B0\n"
 142                 ".long loc_FFAFF2B8\n"
 143                 ".long loc_FFAFF2C0\n"
 144                 ".long loc_FFAFF2C8\n"
 145                 ".long loc_FFAFF2D4\n"
 146                 ".long loc_FFAFF2DC\n"
 147                 ".long loc_FFAFF2F8\n"
 148 "loc_FFAFF204:\n"                           
 149                                         
 150                 "BL      sub_FFAFF7F8\n"
 151                 "BL      shooting_expo_param_override\n"   // +
 152                 "BL      sub_FFAFCF08\n"
 153                 "LDR     R3, =0xBDA80\n"
 154                 "MOV     R2, #0 \n"         // added
 155                 "STR     R2, [R3,#0x24] \n" // added, fixes overrides behavior at short shutter press
 156                 //"LDR     R2, [R3,#0x24]\n"// above patch makes these lines redundant
 157                 //"CMP     R2, #0\n"
 158                 //"BEQ     loc_FFAFF2F4\n"
 159                 //"BL      sub_FFAFEDB4\n"
 160                 "B       loc_FFAFF2F4\n"
 161 "loc_FFAFF224:\n"                           
 162                                         
 163                 "BL      sub_FFAFECD8_my\n"  //--------->
 164 
 165 "loc_FFAFF228:\n"                           
 166                 "LDR     R2, =0xBDA80\n"                       
 167                 "MOV     R3, #0\n"
 168                 "STR     R3, [R2,#0x24]\n"
 169                 "B       loc_FFAFF2F4\n"
 170 "loc_FFAFF238:\n"                           
 171                 "MOV     R0, #1\n"                        
 172                 "BL      sub_FFAFFA18\n" //jumptable case 2
 173                 "B       loc_FFAFF2F4\n"
 174 "loc_FFAFF244:\n"                           
 175                 "BL      sub_FFAFF3F8\n" //jumptable case 4
 176                 "B       loc_FFAFF228\n"
 177 "loc_FFAFF24C:\n"                           
 178                 "BL      sub_FFAFF7B0\n" //BackLightDrv_LcdBackLightOff_15
 179                 "B       loc_FFAFF228\n"
 180 "loc_FFAFF254:\n"                           
 181                 "BL      sub_FFAFF7C0\n" //jumptable case 5
 182                 "B       loc_FFAFF2F4\n"
 183 "loc_FFAFF25C:\n"                           
 184                 "BL      sub_FFAFF910\n" //jumptable case 6                        
 185                 "BL      sub_FFAFCF08\n"
 186                 "B       loc_FFAFF2F4\n"
 187 "loc_FFAFF268:\n"                           
 188                 "BL      sub_FFAFEE90\n" //jumptable case 7
 189                 "B       loc_FFAFF2F4\n"
 190 "loc_FFAFF270:\n"                           
 191                 "BL      sub_FFAFF980\n" //jumptable case 8                        
 192                 "BL      sub_FFAFCF08\n"
 193                 "B       loc_FFAFF2F4\n"
 194 "loc_FFAFF27C:\n"                           
 195                 "BL      sub_FFAFF7B0\n" //BackLightDrv_LcdBackLightOff_15
 196                 "B       loc_FFAFF2F4\n"
 197 "loc_FFAFF284:\n"                           
 198                 "BL      sub_FFB010E8\n" //jumptable case 10
 199                 "B       loc_FFAFF2F4\n"
 200 "loc_FFAFF28C:\n"                           
 201                 "BL      sub_FFB012BC\n" //jumptable case 11
 202                 "B       loc_FFAFF2F4\n"
 203 "loc_FFAFF294:\n"                           
 204                 "BL      sub_FFB01350\n" //jumptable case 12
 205                 "B       loc_FFAFF2F4\n"
 206 "loc_FFAFF29C:\n"                           
 207                 "BL      sub_FFB0144C\n" //jumptable case 13
 208                 "B       loc_FFAFF2F4\n"
 209 "loc_FFAFF2A4:\n"                           
 210                 "MOV     R0, #0\n"                        
 211                 "BL      sub_FFB016B8\n" //jumptable case 14
 212                 "B       loc_FFAFF2F4\n"
 213 "loc_FFAFF2B0:\n"                           
 214                 "BL      sub_FFB0188C\n" //jumptable case 15
 215                 "B       loc_FFAFF2F4\n"
 216 "loc_FFAFF2B8:\n"                           
 217                 "BL      sub_FFB01928\n" //jumptable case 16
 218                 "B       loc_FFAFF2F4\n"
 219 "loc_FFAFF2C0:\n"                           
 220                 "BL      sub_FFB019E8\n" //jumptable case 17
 221                 "B       loc_FFAFF2F4\n"
 222 "loc_FFAFF2C8:\n"                           
 223                 "BL      sub_FFAFFB6C\n" //jumptable case 18                        
 224                 "BL      sub_FFAFEBFC\n"
 225                 "B       loc_FFAFF2F4\n"
 226 "loc_FFAFF2D4:\n"                           
 227                 "BL      sub_FFB0158C\n" //jumptable case 19
 228                 "B       loc_FFAFF2F4\n"
 229 "loc_FFAFF2DC:\n" 
 230                 "BL      sub_FFB015E8\n" //jumptable case 20
 231                 "B       loc_FFAFF2F4\n"
 232 "loc_FFAFF2E4:\n"                         
 233                 "MOV     R1, #0x4C0\n"
 234                 "LDR     R0, =0xFFAFEA58\n" //aSsshoottask_c
 235                 "ADD     R1, R1, #0xE\n"
 236                 "BL      sub_FFB2071C\n" //DebugAssert
 237 "loc_FFAFF2F4:\n"                           
 238                 "LDR     R2, [SP]\n"
 239 "loc_FFAFF2F8:\n"                           
 240                 "LDR     R3, =0x97348\n" //jumptable case 21
 241                 "LDR     R1, [R2,#4]\n"
 242                 "LDR     R0, [R3]\n"
 243                 "BL      sub_FFB12EF4\n" //SetEventFlag
 244                 "LDR     R0, [SP]\n"
 245                 "BL      sub_FFAFEAD8\n"
 246 "loc_FFAFF310:\n"                           
 247                 "LDR     R3, =0x9734C\n"
 248                 "MOV     R1, R4\n"
 249                 "LDR     R0, [R3]\n"
 250                 "MOV     R2, #0\n"
 251                 "BL      sub_FFB1360C\n" //ReceiveMessageQueue
 252                 "TST     R0, #1\n"
 253                 "BEQ     loc_FFAFF194\n"
 254                 "LDR     R0, =0xFFAFEA58\n" //aSsshoottask_c
 255                 "MOV     R1, #0x400\n"
 256                 "BL      sub_FFB2071C\n" //DebugAssert
 257                 "BL      sub_FFB14BD0\n"
 258                 "ADD     SP, SP, #4\n"
 259                 "LDMFD   SP!, {R4,PC}\n"
 260         );
 261 }
 262 
 263 
 264 /*************************************************************/
 265 void __attribute__((naked,noinline)) exp_drv_task(){
 266  asm volatile(
 267                  "STMFD   SP!, {R4-R8,LR}\n"
 268                  "SUB     SP, SP, #0x20\n"
 269                  "ADD     R7, SP, #4\n"
 270                  "B       loc_FF96AD00\n"
 271  "loc_FF96A800:\n"
 272                  "CMP     R2, #0x22\n"
 273                  "BNE     loc_FF96A818\n"
 274                  "LDR     R0, [R12,#0x8C]\n"
 275                  "MOV     LR, PC\n"
 276                  "LDR     PC, [R12,#0x88]\n"
 277                  "B       loc_FF96A87C\n"
 278  "loc_FF96A818:\n"
 279                  "CMP     R2, #0x1D\n"
 280                  "BNE     loc_FF96A82C\n"
 281                  "MOV     R0, R12\n"
 282                  "BL      sub_FF96A6C0\n"
 283                  "B       loc_FF96A86C\n"
 284  "loc_FF96A82C:\n"
 285                  "CMP     R2, #0x1E\n"
 286                  "BNE     loc_FF96A840\n"
 287                  "MOV     R0, R12\n"
 288                  "BL      sub_FF96A71C\n"
 289                  "B       loc_FF96A86C\n"
 290  "loc_FF96A840:\n"
 291                  "SUB     R3, R2, #0x1F\n"
 292                  "CMP     R3, #1\n"
 293                  "BHI     loc_FF96A858\n"
 294                  "MOV     R0, R12\n"
 295                  "BL      sub_FF96A778\n"
 296                  "B       loc_FF96A86C\n"
 297  "loc_FF96A858:\n"
 298                  "CMP     R2, #0x21\n"
 299                  "BNE     loc_FF96A888\n"
 300                  "BL      sub_FF93087C\n"
 301                  "BL      sub_FF9339B4\n"
 302                  "BL      sub_FF932BEC\n"
 303  "loc_FF96A86C:\n"
 304                  "LDR     R3, [SP,#4]\n"
 305                  "LDR     R0, [R3,#0x8C]\n"
 306                  "MOV     LR, PC\n"
 307                  "LDR     PC, [R3,#0x88]\n"
 308  "loc_FF96A87C:\n"
 309                  "LDR     R0, [SP,#4]\n"
 310                  "BL      sub_FF9661BC\n"
 311                  "B       loc_FF96AD00\n"
 312  "loc_FF96A888:\n"
 313                  "CMP     R2, #0xD\n"
 314                  "MOV     R8, #1\n"
 315                  "BNE     loc_FF96A8F8\n"
 316                  "LDR     R1, [R12,#0x7C]\n"
 317                  "ADD     R1, R1, R1,LSL#1\n"
 318                  "ADD     R1, R12, R1,LSL#2\n"
 319                  "ADD     R6, SP, #0x14\n"
 320                  "SUB     R1, R1, #8\n"
 321                  "MOV     R2, #0xC\n"
 322                  "MOV     R0, R6\n"
 323                  "BL      sub_FF9183F4\n" //memcpy
 324                  "LDR     R0, [SP,#4]\n"
 325                  "BL      sub_FF968C6C\n"
 326                  "LDR     R3, [SP,#4]\n"
 327                  "LDR     R1, [R3,#0x7C]\n"
 328                  "LDR     R2, [R3,#0x8C]\n"
 329                  "ADD     R0, R3, #4\n"
 330                  "MOV     LR, PC\n"
 331                  "LDR     PC, [R3,#0x88]\n"
 332                  "LDR     R0, [SP,#4]\n"
 333                  "BL      sub_FF968F3C\n"
 334                  "LDR     R3, [SP,#4]\n"
 335                  "ADD     R0, R3, #4\n"
 336                  "LDR     R1, [R3,#0x7C]\n"
 337                  "LDR     R2, [R3,#0x94]\n"
 338                  "MOV     LR, PC\n"
 339                  "LDR     PC, [R3,#0x90]\n"
 340                  "B       loc_FF96AC48\n"
 341  "loc_FF96A8F8:\n"
 342                  "SUB     R3, R2, #0xE\n"
 343                  "CMP     R3, #1\n"
 344                  "BHI     loc_FF96A9B4\n"
 345                  "ADD     R6, SP, #0x14\n"
 346                  "ADD     R5, SP, #8\n"
 347                  "MOV     R0, R12\n"
 348                  "MOV     R1, R6\n"
 349                  "MOV     R2, R5\n"
 350                  "BL      sub_FF969030\n"
 351                  "MOV     R4, R0\n"
 352                  "CMP     R4, #5\n"
 353                  "CMPNE   R4, #1\n"
 354                  "BNE     loc_FF96A94C\n"
 355                  "LDR     R12, [SP,#4]\n"
 356                  "MOV     R0, R5\n"
 357                  "LDR     R1, [R12,#0x7C]\n"
 358                  "MOV     R2, R4\n"
 359                  "LDR     R3, [R12,#0x8C]\n"
 360                  "MOV     LR, PC\n"
 361                  "LDR     PC, [R12,#0x88]\n"
 362                  "B       loc_FF96A984\n"
 363  "loc_FF96A94C:\n"
 364                  "CMP     R4, #6\n"
 365                  "CMPNE   R4, #2\n"
 366                  "BNE     loc_FF96A994\n"
 367                  "LDR     R12, [SP,#4]\n"
 368                  "MOV     R0, R5\n"
 369                  "MOV     R1, R8\n"
 370                  "MOV     R2, R4\n"
 371                  "LDR     R3, [R12,#0x8C]\n"
 372                  "MOV     LR, PC\n"
 373                  "LDR     PC, [R12,#0x88]\n"
 374                  "MOV     R1, R6\n"
 375                  "LDR     R0, [SP,#4]\n"
 376                  "MOV     R2, R5\n"
 377                  "BL      sub_FF96A2F0\n"
 378  "loc_FF96A984:\n"
 379                  "MOV     R1, R4\n"
 380                  "LDR     R0, [SP,#4]\n"
 381                  "BL      sub_FF96A654\n"
 382                  "B       loc_FF96AC48\n"
 383  "loc_FF96A994:\n"
 384                  "LDR     R12, [SP,#4]\n"
 385                  "MOV     R2, R4\n"
 386                  "ADD     R0, R12, #4\n"
 387                  "LDR     R1, [R12,#0x7C]\n"
 388                  "LDR     R3, [R12,#0x8C]\n"
 389                  "MOV     LR, PC\n"
 390                  "LDR     PC, [R12,#0x88]\n"
 391                  "B       loc_FF96AC48\n"
 392  "loc_FF96A9B4:\n"
 393                  "SUB     R3, R2, #0x19\n"
 394                  "CMP     R3, #1\n"
 395                  "BHI     loc_FF96AA0C\n"
 396                  "LDR     R1, [R12,#0x7C]\n"
 397                  "ADD     R1, R1, R1,LSL#1\n"
 398                  "ADD     R1, R12, R1,LSL#2\n"
 399                  "ADD     R6, SP, #0x14\n"
 400                  "SUB     R1, R1, #8\n"
 401                  "MOV     R2, #0xC\n"
 402                  "MOV     R0, R6\n"
 403                  "BL      sub_FF9183F4\n" //memcpy
 404                  "LDR     R0, [SP,#4]\n"
 405                  "BL      sub_FF968120\n"
 406                  "LDR     R3, [SP,#4]\n"
 407                  "ADD     R0, R3, #4\n"
 408                  "LDR     R1, [R3,#0x7C]\n"
 409                  "LDR     R2, [R3,#0x8C]\n"
 410                  "MOV     LR, PC\n"
 411                  "LDR     PC, [R3,#0x88]\n"
 412                  "LDR     R0, [SP,#4]\n"
 413                  "BL      sub_FF968440\n"
 414                  "B       loc_FF96AC48\n"
 415  "loc_FF96AA0C:\n"
 416                  "ADD     R6, SP, #0x14\n"
 417                  "ADD     R1, R12, #4\n"
 418                  "MOV     R2, #0xC\n"
 419                  "MOV     R0, R6\n"
 420                  "BL      sub_FF9183F4\n" //memcpy
 421                  "LDR     R12, [SP,#4]\n"
 422                  "LDR     R3, [R12]\n"
 423                  "MOV     R2, R12\n"
 424                  "CMP     R3, #0x1C\n"
 425                  "LDRLS   PC, [PC,R3,LSL#2]\n"
 426                  "B       loc_FF96AC34\n"
 427                  ".long loc_FF96AAAC\n" //jump table for switch statement
 428                  ".long loc_FF96AAB8\n"
 429                  ".long loc_FF96AAC4\n"
 430                  ".long loc_FF96AAC4\n"
 431                  ".long loc_FF96AAAC\n"
 432                  ".long loc_FF96AAB8\n"
 433                  ".long loc_FF96AAC4\n"
 434                  ".long loc_FF96AAC4\n"
 435                  ".long loc_FF96AAE8\n"
 436                  ".long loc_FF96AAE8\n"
 437                  ".long loc_FF96AC08\n"
 438                  ".long loc_FF96AC14\n"
 439                  ".long loc_FF96AC24\n"
 440                  ".long loc_FF96AC34\n"
 441                  ".long loc_FF96AC34\n"
 442                  ".long loc_FF96AC34\n"
 443                  ".long loc_FF96AAD0\n"
 444                  ".long loc_FF96AADC\n"
 445                  ".long loc_FF96AAF8\n"
 446                  ".long loc_FF96AB04\n"
 447                  ".long loc_FF96AB3C\n"
 448                  ".long loc_FF96AB74\n"
 449                  ".long loc_FF96ABAC\n"
 450                  ".long loc_FF96ABE4\n"
 451                  ".long loc_FF96ABE4\n"
 452                  ".long loc_FF96AC34\n"
 453                  ".long loc_FF96AC34\n"
 454                  ".long loc_FF96ABF0\n"
 455                  ".long loc_FF96ABFC\n"
 456  "loc_FF96AAAC:\n"
 457                  "MOV     R0, R2\n"
 458                  "BL      sub_FF966B1C\n"
 459                  "B       loc_FF96AC30\n"
 460  "loc_FF96AAB8:\n"
 461                  "MOV     R0, R2\n"
 462                  "BL      sub_FF966DC0\n"
 463                  "B       loc_FF96AC30\n"
 464  "loc_FF96AAC4:\n"
 465                  "MOV     R0, R2\n"
 466                  "BL      sub_FF967034\n"
 467                  "B       loc_FF96AC30\n"
 468  "loc_FF96AAD0:\n"
 469                  "MOV     R0, R2\n"
 470                  "BL      sub_FF967330\n"
 471                  "B       loc_FF96AC30\n"
 472  "loc_FF96AADC:\n"
 473                  "MOV     R0, R2\n"
 474                  "BL      sub_FF967598\n"
 475                  "B       loc_FF96AC30\n"
 476  "loc_FF96AAE8:\n"
 477                  "MOV     R0, R2\n"
 478                  "BL      sub_FF967798_my\n"  //------------->
 479                  "MOV     R8, #0\n"
 480                  "B       loc_FF96AC30\n"
 481  "loc_FF96AAF8:\n"
 482                  "MOV     R0, R2\n"
 483                  "BL      sub_FF9678F8\n"
 484                  "B       loc_FF96AC30\n"
 485  "loc_FF96AB04:\n"
 486                  "LDRH    R1, [R2,#4]\n"
 487                  "LDR     R3, =0x2C298\n"
 488                  "STRH    R1, [SP,#0x14]\n"
 489                  "LDRH    R1, [R3,#6]\n"
 490                  "STRH    R1, [SP,#0x1A]\n"
 491                  "LDRH    R1, [R3,#2]\n"
 492                  "STRH    R1, [SP,#0x16]\n"
 493                  "LDRH    R3, [R3,#4]\n"
 494                  "STRH    R3, [SP,#0x18]\n"
 495                  "MOV     R0, R2\n"
 496                  "LDRH    R2, [R2,#0xC]\n"
 497                  "STRH    R2, [SP,#0x1C]\n"
 498                  "BL      sub_FF967BF0\n"
 499                  "B       loc_FF96AC30\n"
 500  "loc_FF96AB3C:\n"
 501                  "MOV     R0, R2\n"
 502                  "LDRH    R2, [R2,#4]\n"
 503                  "LDR     R3, =0x2C298\n"
 504                  "STRH    R2, [SP,#0x14]\n"
 505                  "LDRH    R2, [R3,#8]\n"
 506                  "STRH    R2, [SP,#0x1C]\n"
 507                  "LDRH    R1, [R3,#2]\n"
 508                  "STRH    R1, [SP,#0x16]\n"
 509                  "LDRH    R2, [R3,#4]\n"
 510                  "STRH    R2, [SP,#0x18]\n"
 511                  "LDRH    R3, [R3,#6]\n"
 512                  "STRH    R3, [SP,#0x1A]\n"
 513                  "BL      sub_FF967D18\n"
 514                  "B       loc_FF96AC30\n"
 515  "loc_FF96AB74:\n"
 516                  "LDR     R3, =0x2C298\n"
 517                  "LDRH    R1, [R3]\n"
 518                  "STRH    R1, [SP,#0x14]\n"
 519                  "MOV     R0, R2\n"
 520                  "LDRH    R2, [R2,#6]\n"
 521                  "STRH    R2, [SP,#0x16]\n"
 522                  "LDRH    R2, [R3,#8]\n"
 523                  "STRH    R2, [SP,#0x1C]\n"
 524                  "LDRH    R1, [R3,#4]\n"
 525                  "STRH    R1, [SP,#0x18]\n"
 526                  "LDRH    R3, [R3,#6]\n"
 527                  "STRH    R3, [SP,#0x1A]\n"
 528                  "BL      sub_FF967DDC\n"
 529                  "B       loc_FF96AC30\n"
 530  "loc_FF96ABAC:\n"
 531                  "LDR     R3, =0x2C298\n"
 532                  "LDRH    R1, [R3,#6]\n"
 533                  "STRH    R1, [SP,#0x1A]\n"
 534                  "LDRH    R1, [R3]\n"
 535                  "STRH    R1, [SP,#0x14]\n"
 536                  "LDRH    R1, [R3,#2]\n"
 537                  "STRH    R1, [SP,#0x16]\n"
 538                  "LDRH    R3, [R3,#4]\n"
 539                  "STRH    R3, [SP,#0x18]\n"
 540                  "MOV     R0, R2\n"
 541                  "LDRH    R2, [R2,#0xC]\n"
 542                  "STRH    R2, [SP,#0x1C]\n"
 543                  "BL      sub_FF967E94\n"
 544                  "B       loc_FF96AC30\n"
 545  "loc_FF96ABE4:\n"
 546                  "MOV     R0, R2\n"
 547                  "BL      sub_FF967F44\n"
 548                  "B       loc_FF96AC30\n"
 549  "loc_FF96ABF0:\n"
 550                  "MOV     R0, R2\n"
 551                  "BL      sub_FF96858C\n"
 552                  "B       loc_FF96AC30\n"
 553  "loc_FF96ABFC:\n"
 554                  "MOV     R0, R2\n"
 555                  "BL      sub_FF968788\n"
 556                  "B       loc_FF96AC30\n"
 557  "loc_FF96AC08:\n"
 558                  "MOV     R0, R2\n"
 559                  "BL      sub_FF968944\n"
 560                  "B       loc_FF96AC30\n"
 561  "loc_FF96AC14:\n"
 562                  "MOV     R0, R2\n"
 563                  "MOV     R1, #0\n"
 564                  "BL      sub_FF968B2C\n"
 565                  "B       loc_FF96AC30\n"
 566  "loc_FF96AC24:\n"
 567                  "MOV     R0, R2\n"
 568                  "MOV     R1, #1\n"
 569                  "BL      sub_FF968B2C\n"
 570  "loc_FF96AC30:\n"
 571                  "LDR     R12, [SP,#4]\n"
 572  "loc_FF96AC34:\n"
 573                  "ADD     R0, R12, #4\n"
 574                  "LDR     R1, [R12,#0x7C]\n"
 575                  "LDR     R2, [R12,#0x8C]\n"
 576                  "MOV     LR, PC\n"
 577                  "LDR     PC, [R12,#0x88]\n"
 578  "loc_FF96AC48:\n"
 579                  "CMP     R8, #1\n"
 580                  "BNE     loc_FF96AC70\n"
 581                  "LDR     R1, [SP,#4]\n"
 582                  "LDR     R3, [R1,#0x7C]\n"
 583                  "ADD     R3, R3, R3,LSL#1\n"
 584                  "ADD     R1, R1, R3,LSL#2\n"
 585                  "MOV     R0, R6\n"
 586                  "SUB     R1, R1, #8\n"
 587                  "BL      sub_FF9667D4\n"
 588                  "B       loc_FF96ACEC\n"
 589  "loc_FF96AC70:\n"
 590                  "LDR     R3, [SP,#4]\n"
 591                  "LDR     R2, [R3]\n"
 592                  "CMP     R2, #9\n"
 593                  "BNE     loc_FF96ACB8\n"
 594                  "MOV     R4, #0\n"
 595                  "MOV     R1, #1\n"
 596                  "MOV     R2, R1\n"
 597                  "MOV     R3, R1\n"
 598                  "MOV     R0, R4\n"
 599                  "STR     R4, [SP]\n"
 600                  "BL      sub_FF966718\n"
 601                  "MOV     R1, #1\n"
 602                  "MOV     R0, R4\n"
 603                  "MOV     R2, R1\n"
 604                  "MOV     R3, R1\n"
 605                  "STR     R4, [SP]\n"
 606                  "BL      sub_FF966970\n"
 607                  "B       loc_FF96ACEC\n"
 608  "loc_FF96ACB8:\n"
 609                  "MOV     R4, #1\n"
 610                  "MOV     R0, R4\n"
 611                  "MOV     R1, R4\n"
 612                  "MOV     R2, R4\n"
 613                  "MOV     R3, R4\n"
 614                  "STR     R4, [SP]\n"
 615                  "BL      sub_FF966718\n"
 616                  "MOV     R0, R4\n"
 617                  "MOV     R1, R0\n"
 618                  "MOV     R2, R0\n"
 619                  "MOV     R3, R0\n"
 620                  "STR     R4, [SP]\n"
 621                  "BL      sub_FF966970\n"
 622  "loc_FF96ACEC:\n"
 623                  "LDR     R2, =0x2C2E4\n"
 624                  "MOV     R3, #0\n"
 625                  "LDR     R0, [SP,#4]\n"
 626                  "STR     R3, [R2]\n"
 627                  "BL      sub_FF9661BC\n"
 628  "loc_FF96AD00:\n"
 629                  "LDR     R3, =0x2C28C\n"
 630                  "MOV     R2, #0\n"
 631                  "LDR     R0, [R3]\n"
 632                  "MOV     R1, R7\n"
 633                  "BL      sub_FFB1360C\n" //ReceiveMessageQueue
 634                  "LDR     R12, [SP,#4]\n"
 635                  "LDR     R2, [R12]\n"
 636                  "CMP     R2, #0x23\n"
 637                  "BNE     loc_FF96A800\n"
 638                  "MOV     R0, R12\n"
 639                  "BL      sub_FF9661BC\n"
 640                  "LDR     R3, =0x2C288\n"
 641                  "MOV     R1, #1\n"
 642                  "LDR     R0, [R3]\n"
 643                  "BL      sub_FFB12EF4\n" //SetEventFlag
 644                  "BL      sub_FFB14BD0\n"
 645                  "ADD     SP, SP, #0x20\n"
 646                  "LDMFD   SP!, {R4-R8,PC}\n"
 647  );
 648 }
 649 
 650 void __attribute__((naked,noinline)) sub_FF967798_my(){
 651  asm volatile(
 652                  "STMFD   SP!, {R4-R6,LR}\n"
 653                  "LDR     R3, =0x2C288\n"
 654                  "MOV     R4, R0\n"
 655                  "MOV     R1, #0x3E\n"
 656                  "LDR     R0, [R3]\n"
 657                  "BL      sub_FFB13090\n" //ClearEventFlag
 658                  "MOV     R1, #0\n"
 659                  "LDRSH   R0, [R4,#4]\n"
 660                  "BL      sub_FF9662F0\n"
 661                  "MOV     R6, R0\n"
 662                  "LDRSH   R0, [R4,#6]\n"
 663                  "BL      sub_FF966458\n"
 664                  "LDRSH   R0, [R4,#8]\n"
 665                  "BL      sub_FF9664F4\n"
 666                  "LDRSH   R0, [R4,#0xA]\n"
 667                  "BL      sub_FF966590\n"
 668                  "LDRSH   R0, [R4,#0xC]\n"
 669                  "BL      sub_FF96662C\n"
 670                  "LDR     R3, [R4]\n"
 671                  "CMP     R3, #9\n"
 672                  "MOV     R5, R0\n"
 673                  "MOVEQ   R5, #0\n"
 674                  "MOVEQ   R6, R5\n"
 675                  "CMP     R6, #1\n"
 676                  "BNE     loc_FF96781C\n"
 677                  "MOV     R2, #2\n"
 678                  "LDRSH   R0, [R4,#4]\n"
 679                  "LDR     R1, =0xFF966210\n"
 680                  "BL      sub_FFAD9644\n"
 681                  "LDR     R2, =0x2C2D8\n"
 682                  "MOV     R3, #0\n"
 683                  "STR     R3, [R2]\n"
 684                  "B       loc_FF967820\n"
 685  "loc_FF96781C:\n"
 686                  "BL      sub_FF9666C8\n"
 687  "loc_FF967820:\n"
 688                  "STRH    R0, [R4,#4]\n"
 689                  "CMP     R5, #1\n"
 690                  "BNE     loc_FF967840\n"
 691                  "LDRSH   R0, [R4,#0xC]\n"
 692                  "LDR     R1, =0xFF9662D4\n"
 693                  "MOV     R2, #0x20\n"
 694                  "BL      sub_FF966ABC\n"
 695                  "B       loc_FF967844\n"
 696  "loc_FF967840:\n"
 697                  "BL      sub_FF966708\n"
 698  "loc_FF967844:\n"
 699                  "STRH    R0, [R4,#0xC]\n"
 700                  "LDRSH   R0, [R4,#6]\n"
 701                  "BL      sub_FF9304F8_my\n"  //------------>
 702                  "LDRSH   R0, [R4,#8]\n"
 703                  "MOV     R1, #1\n"
 704                  "BL      sub_FF9327AC\n"
 705                  "ADD     R0, R4, #8\n"
 706                  "MOV     R1, #0\n"
 707                  "BL      sub_FF93286C\n"
 708                  "LDRSH   R0, [R4,#0xE]\n"
 709                  "BL      sub_FF954890\n"
 710                  "CMP     R6, #1\n"
 711                  "BNE     loc_FF9678A8\n"
 712                  "LDR     R3, =0x2C288\n"
 713                  "MOV     R2, #0xBB0\n"
 714                  "LDR     R0, [R3]\n"
 715                  "MOV     R1, #2\n"
 716                  "ADD     R2, R2, #8\n"
 717                  "BL      sub_FFB12EE4\n"
 718                  "TST     R0, #1\n"
 719                  "BEQ     loc_FF9678A8\n"
 720                  "MOV     R1, #0x4A0\n"
 721                  "LDR     R0, =0xFF966168\n" //aExpdrv_c
 722                  "ADD     R1, R1, #3\n"
 723                  "BL      sub_FFB2071C\n" //DebugAssert
 724  "loc_FF9678A8:\n"
 725                  "CMP     R5, #1\n"
 726                  "LDMNEFD SP!, {R4-R6,PC}\n"
 727                  "LDR     R3, =0x2C288\n"
 728                  "MOV     R2, #0xBB0\n"
 729                  "LDR     R0, [R3]\n"
 730                  "MOV     R1, #0x20\n"
 731                  "ADD     R2, R2, #8\n"
 732                  "BL      sub_FFB12EE4\n"
 733                  "TST     R0, #1\n"
 734                  "LDMEQFD SP!, {R4-R6,PC}\n"
 735                  "MOV     R1, #0x4A0\n"
 736                  "LDR     R0, =0xFF966168\n" //aExpdrv_c
 737                  "ADD     R1, R1, #8\n"
 738                  "LDMFD   SP!, {R4-R6,LR}\n"
 739                  "B       sub_FFB2071C\n" //DebugAssert
 740  );
 741 }
 742 
 743 
 744 void __attribute__((naked,noinline)) sub_FF9304F8_my(){
 745  asm volatile(
 746                  "STMFD   SP!, {R4,LR}\n"
 747                  "LDR     R3, =0x63E4\n"
 748                  "LDR     R2, [R3]\n"
 749                  "MOV     R1, #0x168\n"
 750                  "MOV     R3, R0,LSL#16\n"
 751                  "CMP     R2, #1\n"
 752                  "ADD     R1, R1, #3\n"
 753                  "LDR     R0, =0xFF92FD14\n" //aShutter_c
 754                  "MOV     R4, R3,ASR#16\n"
 755                  "BEQ     loc_FF930524\n"
 756                  "BL      sub_FFB2071C\n" //DebugAssert
 757  "loc_FF930524:\n"
 758                  "MOV     R1, #0x170\n"
 759                  "CMN     R4, #0xC00\n"
 760                  "LDR     R3, =0x12E16\n"
 761                  "LDR     R0, =0xFF92FD14\n" //aShutter_c
 762                  "ADD     R1, R1, #1\n"
 763                  "LDREQSH R4, [R3]\n"
 764                  "LDRNE   R3, =0x12E16\n"
 765                  "CMN     R4, #0xC00\n"
 766                  "STRH    R4, [R3]\n"
 767                  "BNE     loc_FF930550\n"
 768                  "BL      sub_FFB2071C\n" //DebugAssert
 769  "loc_FF930550:\n"
 770                  "MOV     R0, R4\n"
 771              //  "BL      sub_FF931648\n"  // -
 772                  "BL      apex2us\n"       // +
 773                  "MOV     R4, R0\n"
 774                  "BL      sub_FF9BCB6C\n"
 775                  "MOV     R0, R4\n"
 776                  "BL      sub_FF9D6534\n"
 777                  "MOV     R1, #0x174\n"
 778                  "TST     R0, #1\n"
 779                  "ADD     R1, R1, #2\n"
 780                  "LDR     R0, =0xFF92FD14\n" //aShutter_c
 781                  "LDMEQFD SP!, {R4,PC}\n"
 782                  "LDMFD   SP!, {R4,LR}\n"
 783                  "B       sub_FFB2071C\n" //DebugAssert
 784  );
 785 }

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