root/platform/ixusizoom_sd30/sub/100g/movie_rec.c

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

DEFINITIONS

This source file includes following definitions.
  1. change_video_tables
  2. movie_record_task
  3. sub_FF9422B0_my
  4. sub_FF943A70_my
  5. sub_FF942E38_my

   1 ///NOTE: this is not from ixus40! needs to be done!
   2 
   3 
   4 #include "conf.h"
   5 
   6 int *video_quality = &conf.video_quality;
   7 int *video_mode    = &conf.video_mode;
   8 
   9 long def_table1[56]={
  10 0x10000,0xC000,0x5800, 0x2000, 0x1C6A, 0x1550,0x9C5,  0x38D,  0x3C45, 0x2D34, 0x14B8, 0x788,  0x5F60, 0x4788,
  11 0x20C9, 0xBE1, 0x8661, 0x64C9, 0x2E31, 0x10CB,0xB21A, 0x8594, 0x3D39, 0x1642, 0xE249, 0xA9B8, 0x4DC9, 0x1C48,
  12 0x117D2,0xD1DF,0x6030, 0x22F9, 0x153D5,0xFEE1,0x74D1, 0x2A79, 0x195F8,0x1307C,0x8B8D, 0x32AA, 0x1E01C,0x16817,
  13 0xA509, 0x3C01,0x2328E,0x1A5ED,0xC160, 0x4637,0x28C99,0x1E975,0xE054, 0x5190, 0x2F08B,0x2346B,0x102AF,0x5E0E
  14 };
  15 
  16 long def_table2[12]={0xE666,0xACCD,0x4F33,0x1CCD,-0x170A,-0x1148,-0x7EB,-0x2E1,-0x2BC6,-0x20D5,-0xF0C,-0x579};
  17 
  18 long table1[56], table2[12];
  19 
  20 void change_video_tables(int a, int b){
  21  int i;
  22  for (i=0;i<56;i++) table1[i]=(def_table1[i]*a)/b;
  23  for (i=0;i<12;i++) table2[i]=(def_table2[i]*a)/b;
  24 }
  25 
  26 long CompressionRateTable[]={0x60, 0x5D, 0x5A, 0x57, 0x54, 0x51, 0x4D, 0x48, 0x42, 0x3B, 0x32, 0x29, 0x22, 0x1D, 0x17, 0x14, 0x10, 0xE, 0xB, 9, 7, 6, 5, 4, 3, 2, 1};
  27 
  28 
  29 void __attribute__((naked,noinline)) movie_record_task(){
  30  asm volatile(
  31     "STMFD   SP!, {R4,LR}\n"
  32     "SUB     SP, SP, #4\n"
  33     "MOV     R4, SP\n"
  34     "B       loc_FF941B6C\n"
  35   "loc_FF941ABC:\n"
  36     "LDR     R3, =0x7C970\n"
  37     "LDR     R2, [R3]\n"
  38     "CMP     R2, #0\n"
  39     "BNE     loc_FF941B58\n"
  40     "SUB     R3, R12, #1\n"
  41     "CMP     R3, #0xA\n"
  42     "LDRLS   PC, [PC,R3,LSL#2]\n"
  43     "B       loc_FF941B58\n"
  44     ".long loc_FF941B08\n"
  45     ".long loc_FF941B10\n"
  46     ".long loc_FF941B28\n"
  47     ".long loc_FF941B30\n"
  48     ".long loc_FF941B38\n"
  49     ".long loc_FF941B18\n"
  50     ".long loc_FF941B40\n"
  51     ".long loc_FF941B20\n"
  52     ".long loc_FF941B58\n"
  53     ".long loc_FF941B50\n"
  54     ".long loc_FF941B48\n"
  55   "loc_FF941B08:\n"
  56     "BL      sub_FF941BEC\n"
  57     "B       loc_FF941B54\n"
  58   "loc_FF941B10:\n"
  59     "BL      sub_FF941E20\n"
  60     "BL  unlock_optical_zoom\n"         //+
  61     "B       loc_FF941B54\n"
  62   "loc_FF941B18:\n"
  63     "BL      sub_FF9422B0_my\n"         //x
  64     "B       loc_FF941B54\n"
  65   "loc_FF941B20:\n"
  66     "BL      sub_FF942704\n"
  67     "B       loc_FF941B54\n"
  68   "loc_FF941B28:\n"
  69     "BL      sub_FF942528\n"
  70     "B       loc_FF941B54\n"
  71   "loc_FF941B30:\n"
  72     "BL      sub_FF942910\n"
  73     "B       loc_FF941B54\n"
  74   "loc_FF941B38:\n"
  75     "BL      sub_FF942AD4\n"
  76     "B       loc_FF941B54\n"
  77   "loc_FF941B40:\n"
  78     "BL      sub_FF9427C4\n"
  79     "B       loc_FF941B54\n"
  80   "loc_FF941B48:\n"
  81     "BL      sub_FF9428A4\n"
  82     "B       loc_FF941B54\n"
  83   "loc_FF941B50:\n"
  84     "BL      sub_FF942578\n"
  85   "loc_FF941B54:\n"
  86     "LDR     R1, [SP]\n"
  87   "loc_FF941B58:\n"
  88     "LDR     R3, =0x7C8A0\n"
  89     "MOV     R2, #0\n"
  90     "STR     R2, [R1]\n"
  91     "LDR     R0, [R3]\n"
  92     "BL      sub_FF8218F4\n"
  93   "loc_FF941B6C:\n"
  94     "LDR     R3, =0x7C89C\n"
  95     "MOV     R1, R4\n"
  96     "LDR     R0, [R3]\n"
  97     "MOV     R2, #0\n"
  98     "BL      sub_FF8214DC\n"
  99     "LDR     R0, [SP]\n"
 100     "LDR     R12, [R0]\n"
 101     "CMP     R12, #0xC\n"
 102     "MOV     R1, R0\n"
 103     "BNE     loc_FF941ABC\n"
 104     "LDR     R3, =0x7C894\n"
 105     "LDR     R0, [R3]\n"
 106     "BL      sub_FF8222B0\n"
 107     "BL      sub_FF822C6C\n"
 108     "ADD     SP, SP, #4\n"
 109     "LDMFD   SP!, {R4,PC}\n"
 110  );
 111 }
 112 
 113 
 114 void __attribute__((naked,noinline)) sub_FF9422B0_my(){
 115  asm volatile(
 116     "STMFD   SP!, {R4-R11,LR}\n"
 117     "LDR     R5, =0x7C98C\n"
 118     "SUB     SP, SP, #0x34\n"
 119     "LDR     R3, [R5]\n"
 120     "CMP     R3, #3\n"
 121     "MOV     R4, R0\n"
 122     "MOVEQ   R3, #4\n"
 123     "STREQ   R3, [R5]\n"
 124     "LDR     R3, =0x7CA34\n"
 125     "MOV     LR, PC\n"
 126     "LDR     PC, [R3]\n"
 127     "LDR     R2, [R5]\n"
 128     "CMP     R2, #4\n"
 129     "BNE     loc_FF94245C\n"
 130     "ADD     R0, SP, #0x30\n"
 131     "ADD     R1, SP, #0x2C\n"
 132     "ADD     R2, SP, #0x28\n"
 133     "ADD     R3, SP, #0x24\n"
 134     "BL      sub_FF943A70_my\n" //x
 135     "CMP     R0, #0\n"
 136     "BNE     loc_FF94232C\n"
 137     "LDR     R3, =0x7C978\n"
 138     "LDR     R2, [R3]\n"
 139     "CMP     R2, #1\n"
 140     "BNE     loc_FF942340\n"
 141     "LDR     R2, =0x7C9C8\n"
 142     "LDR     R1, =0x7C9A0\n"
 143     "LDR     R12, [R2]\n"
 144     "LDR     R3, [R1]\n"
 145     "CMP     R12, R3\n"
 146     "BCC     loc_FF942340\n"
 147   "loc_FF94232C:\n"
 148     "BL      sub_FF9424A0\n"
 149     "BL      sub_FF9426D4\n"
 150     "MOV     R3, #5\n"
 151     "STR     R3, [R5]\n"
 152     "B       loc_FF94245C\n"
 153   "loc_FF942340:\n"
 154     "LDR     R12, =0x7C9D0\n"
 155     "LDR     R11, =0x7C9DC\n"
 156     "LDMIB   R4, {R0-R2}\n"
 157     "LDR     R10, [R12]\n"
 158     "LDR     R7, [R11]\n"
 159     "LDR     R4, [SP,#0x2C]\n"
 160     "LDR     R5, [SP,#0x28]\n"
 161     "LDR     R6, [SP,#0x24]\n"
 162     "LDR     R8, =0x7C97C\n"
 163     "LDR     R3, [SP,#0x30]\n"
 164     "ADD     R12, SP, #0x20\n"
 165     "ADD     LR, SP, #0x1C\n"
 166     "MOV     R9, #1\n"
 167     "STMEA   SP, {R4-R6,R12}\n"
 168     "STR     R10, [SP,#0x10]\n"
 169     "STR     R7, [SP,#0x14]\n"
 170     "STR     LR, [SP,#0x18]\n"
 171     "STR     R9, [R8]\n"
 172     "BL      sub_FF898398\n"
 173     "LDR     R3, =0x7C894\n"
 174     "MOV     R1, #0x3E8\n"
 175     "LDR     R0, [R3]\n"
 176     "BL      sub_FF8220C8\n"
 177     "CMP     R0, #9\n"
 178     "BNE     loc_FF9423B4\n"
 179     "BL      sub_FF944230\n"
 180     "LDR     R3, =0x7C98C\n"
 181     "LDR     R0, =0xFF942298\n"
 182     "B       loc_FF9423CC\n"
 183   "loc_FF9423B4:\n"
 184     "LDR     R5, [SP,#0x1C]\n"
 185     "CMP     R5, #0\n"
 186     "BEQ     loc_FF9423D8\n"
 187     "BL      sub_FF944230\n"
 188     "LDR     R3, =0x7C98C\n"
 189     "LDR     R0, =0xFF9422A4\n"
 190   "loc_FF9423CC:\n"
 191     "STR     R9, [R3]\n"
 192     "BL      sub_FF9560F0\n"
 193     "B       loc_FF94245C\n"
 194   "loc_FF9423D8:\n"
 195     "BL      sub_FF89850C\n"
 196     "LDR     R0, [SP,#0x30]\n"
 197     "LDR     R1, [SP,#0x20]\n"
 198     "BL      sub_FF943F54\n"
 199     "LDR     R4, =0x7C9C8\n"
 200     "LDR     R3, [R4]\n"
 201     "ADD     R3, R3, #1\n"
 202     "LDR     R0, [SP,#0x20]\n"
 203     "MOV     R1, R11\n"
 204     "STR     R3, [R4]\n"
 205     "MOV     R2, R5\n"
 206     "BL      sub_FF942E38_my\n"
 207     "LDR     R3, =0x7C9B4\n"
 208     "LDR     R4, [R4]\n"
 209     "LDR     R1, [R3]\n"
 210     "MOV     R0, R4\n"
 211     "BL      sub_FFAC6374\n"
 212     "CMP     R0, #0\n"
 213     "BEQ     loc_FF942438\n"
 214     "LDR     R6, =0x7C980\n"
 215     "LDR     R3, [R6]\n"
 216     "CMP     R3, #1\n"
 217     "BNE     loc_FF942450\n"
 218     "B       loc_FF94243C\n"
 219   "loc_FF942438:\n"
 220     "LDR     R6, =0x7C980\n"
 221   "loc_FF94243C:\n"
 222     "MOV     R0, R4\n"
 223     "LDR     R3, =0x7CA10\n"
 224     "MOV     LR, PC\n"
 225     "LDR     PC, [R3]\n"
 226     "STR     R5, [R6]\n"
 227   "loc_FF942450:\n"
 228     "LDR     R2, =0x7C97C\n"
 229     "MOV     R3, #0\n"
 230     "STR     R3, [R2]\n"
 231   "loc_FF94245C:\n"
 232     "ADD     SP, SP, #0x34\n"
 233     "LDMFD   SP!, {R4-R11,PC}\n"
 234  );
 235 }
 236 
 237 
 238 
 239 
 240 
 241 void __attribute__((naked,noinline)) sub_FF943A70_my(){
 242  asm volatile(
 243         "STMFD   SP!, {R4-R11,LR}\n"
 244         "LDR     R5, =0x7CCDC\n"
 245         "SUB     SP, SP, #0x14\n"
 246         "LDR     LR, [R5]\n"
 247         "LDR     R12, =0x7CCF4\n"
 248         "ADD     LR, LR, #1\n"
 249         "LDR     R4, [R12]\n"
 250         "STR     LR, [R5]\n"
 251         "LDR     R12, =0x7CD70\n"
 252         "STR     R0, [SP,#0x10]\n"
 253         "STR     R1, [SP,#0xC]\n"
 254         "STR     R2, [SP,#8]\n"
 255         "STR     R3, [SP,#4]\n"
 256         "CMP     LR, R4\n"
 257         "LDR     R11, [R12]\n"
 258         "MOVHI   R0, #0x80000001\n"
 259         "BHI     loc_FF943F08\n"
 260         "LDR     R3, =0x7CD58\n"
 261         "MOV     R0, LR\n"
 262         "LDR     R1, [R3]\n"
 263         "BL      sub_FFAC6374\n"
 264         "CMP     R0, #1\n"
 265         "BNE     loc_FF943C90\n"
 266         "LDR     R0, =0x7CD78\n"
 267         "LDR     R1, =0x7CCC8\n"
 268         "LDR     R3, [R0]\n"
 269         "LDR     R2, [R1]\n"
 270         "CMP     R3, R2\n"
 271         "LDREQ   R3, =0x7CD74\n"
 272         "LDREQ   R5, [R3]\n"
 273         "MOVNE   R5, R2\n"
 274         "LDR     R3, =0x7CCDC\n"
 275         "LDR     R2, =0x7CD58\n"
 276         "LDR     R0, [R3]\n"
 277         "LDR     R1, [R2]\n"
 278         "BL      __udivsi3\n"
 279         "LDR     R3, =0x7CCD0\n"
 280         "ADD     R0, R0, #1\n"
 281         "AND     R0, R0, #1\n"
 282         "STR     R5, [R3,R0,LSL#2]\n"
 283         "LDR     R3, =0x7CCC4\n"
 284         "LDR     R2, [R3]\n"
 285         "CMP     R5, R2\n"
 286         "BHI     loc_FF943B40\n"
 287         "LDR     R4, =0x7CD14\n"
 288         "LDR     R3, [R4]\n"
 289         "ADD     R3, R5, R3\n"
 290         "ADD     R3, R3, #8\n"
 291         "CMP     R2, R3\n"
 292         "BCS     loc_FF943B44\n"
 293   "loc_FF943B38:\n"
 294         "MOV     R0, #0x80000003\n"
 295         "B       loc_FF943F08\n"
 296   "loc_FF943B40:\n"
 297         "LDR     R4, =0x7CD14\n"
 298   "loc_FF943B44:\n"
 299         "LDR     R3, [R4]\n"
 300         "LDR     R2, =0x7CD78\n"
 301         "ADD     R1, R5, R3\n"
 302         "LDR     R3, [R2]\n"
 303         "ADD     R2, R1, #8\n"
 304         "CMP     R2, R3\n"
 305         "BLS     loc_FF943B90\n"
 306         "LDR     R2, =0x7CD74\n"
 307         "LDR     R0, =0x7CCC4\n"
 308         "RSB     R3, R3, R1\n"
 309         "LDR     R1, [R2]\n"
 310         "ADD     R3, R3, #8\n"
 311         "LDR     R2, [R0]\n"
 312         "ADD     R1, R1, R3\n"
 313         "CMP     R2, R1\n"
 314         "BCC     loc_FF943B38\n"
 315         "LDR     R3, =0x7CCC8\n"
 316         "STR     R1, [R3]\n"
 317         "B       loc_FF943B98\n"
 318   "loc_FF943B90:\n"
 319         "LDR     R3, =0x7CCC8\n"
 320         "STR     R2, [R3]\n"
 321   "loc_FF943B98:\n"
 322         "LDR     R3, [R4]\n"
 323         "LDR     R12, =0x7CD28\n"
 324         "ADD     R3, R3, #0x18\n"
 325         "LDR     R2, [R12,#4]\n"
 326         "MOV     R0, R3\n"
 327         "MOV     R1, #0\n"
 328         "CMP     R1, R2\n"
 329         "BHI     loc_FF943DDC\n"
 330         "BNE     loc_FF943BC8\n"
 331         "LDR     R3, [R12]\n"
 332         "CMP     R0, R3\n"
 333         "BHI     loc_FF943DDC\n"
 334   "loc_FF943BC8:\n"
 335         "LDR     R4, [R4]\n"
 336         "LDR     LR, =0x7CD30\n"
 337         "STR     R4, [SP]\n"
 338         "LDR     R12, =0x7CD28\n"
 339         "LDR     R3, =0x7CCDC\n"
 340         "LDMIA   LR, {R7,R8}\n"
 341         "LDMIA   R12, {R5,R6}\n"
 342         "LDR     R10, [R3]\n"
 343         "LDR     R2, =0x7CD58\n"
 344         "MOV     R3, R4\n"
 345         "MOV     R4, #0\n"
 346         "ADDS    R7, R7, R3\n"
 347         "ADC     R8, R8, R4\n"
 348         "LDR     R9, [R2]\n"
 349         "SUBS    R5, R5, R3\n"
 350         "SBC     R6, R6, R4\n"
 351         "MVN     R2, #0\n"
 352         "MVN     R1, #0x17\n"
 353         "ADDS    R5, R5, R1\n"
 354         "MOV     R4, #0\n"
 355         "MOV     R3, #0x18\n"
 356         "ADC     R6, R6, R2\n"
 357         "ADDS    R7, R7, R3\n"
 358         "ADC     R8, R8, R4\n"
 359         "STMIA   R12, {R5,R6}\n"
 360         "SUB     R0, R10, #1\n"
 361         "MOV     R1, R9\n"
 362         "STMIA   LR, {R7,R8}\n"
 363         "BL      __udivsi3\n"
 364         "CMP     R10, #1\n"
 365         "MLA     R0, R9, R0, R0\n"
 366         "BEQ     loc_FF943C90\n"
 367         "SUB     R3, R0, #1\n"
 368         "MOV     R3, R3,LSL#4\n"
 369         "ADD     R4, R11, #0x10\n"
 370         "ADD     R5, R11, #0x14\n"
 371         "LDR     R1, [R5,R3]\n"
 372         "LDR     R2, [R4,R3]\n"
 373         "LDR     LR, =0x62773130\n"
 374         "ADD     R2, R2, R1\n"
 375         "MOV     R3, R0,LSL#4\n"
 376         "ADD     R2, R2, #8\n"
 377         "MOV     R0, #0\n"
 378         "ADD     R12, R11, #0xC\n"
 379         "ADD     R1, R11, #8\n"
 380         "STR     LR, [R1,R3]\n"
 381         "STR     R0, [R12,R3]\n"
 382         "STR     R2, [R4,R3]\n"
 383         "LDR     R0, [SP]\n"
 384         "STR     R0, [R5,R3]\n"
 385   "loc_FF943C90:\n"
 386         "LDR     R2, =0x7CCC8\n"
 387         "LDR     R3, =0x7CD78\n"
 388         "LDR     R1, [R2]\n"
 389         "LDR     R0, [R3]\n"
 390         "ADD     R3, R1, #9\n"
 391         "CMP     R3, R0\n"
 392         "BLS     loc_FF943CCC\n"
 393         "LDR     R2, =0x7CD74\n"
 394         "LDR     R3, [R2]\n"
 395         "ADD     R3, R3, R1\n"
 396         "RSB     R3, R0, R3\n"
 397         "LDR     R0, [SP,#0x10]\n"
 398         "ADD     R3, R3, #8\n"
 399         "STR     R3, [R0]\n"
 400         "B       loc_FF943CD8\n"
 401   "loc_FF943CCC:\n"
 402         "ADD     R3, R1, #8\n"
 403         "LDR     R1, [SP,#0x10]\n"
 404         "STR     R3, [R1]\n"
 405   "loc_FF943CD8:\n"
 406         "LDR     R2, [SP,#0x10]\n"
 407         "LDR     R1, =0x7CD24\n"
 408         "LDR     R3, =0x7CD78\n"
 409         "LDR     R12, [R2]\n"
 410         "LDR     R2, [R1]\n"
 411         "LDR     R0, [R3]\n"
 412         "ADD     R3, R12, R2\n"
 413         "CMP     R3, R0\n"
 414         "BLS     loc_FF943D2C\n"
 415         "LDR     R2, [SP,#0xC]\n"
 416         "RSB     R0, R12, R0\n"
 417         "STR     R0, [R2]\n"
 418         "LDR     R2, =0x7CD74\n"
 419         "LDR     R3, [R1]\n"
 420         "LDR     R1, [R2]\n"
 421         "RSB     R3, R0, R3\n"
 422         "LDR     R0, [SP,#8]\n"
 423         "STR     R1, [R0]\n"
 424         "LDR     R1, [SP,#4]\n"
 425         "STR     R3, [R1]\n"
 426         "B       loc_FF943D48\n"
 427   "loc_FF943D2C:\n"
 428         "LDR     R0, [SP,#0xC]\n"
 429         "STR     R2, [R0]\n"
 430         "LDR     R1, [SP,#4]\n"
 431         "MOV     R3, #0\n"
 432         "STR     R3, [R1]\n"
 433         "LDR     R2, [SP,#8]\n"
 434         "STR     R3, [R2]\n"
 435   "loc_FF943D48:\n"
 436         "LDR     R0, =0x7CCC8\n"
 437         "LDR     R1, =0x7CCC4\n"
 438         "LDR     R3, [R0]\n"
 439         "LDR     R2, [R1]\n"
 440         "CMP     R3, R2\n"
 441         "BHI     loc_FF943D74\n"
 442         "LDR     R0, [SP,#0xC]\n"
 443         "LDR     R3, [R0]\n"
 444         "ADD     R3, R12, R3\n"
 445         "CMP     R2, R3\n"
 446         "BCC     loc_FF943B38\n"
 447   "loc_FF943D74:\n"
 448         "LDR     R1, [SP,#8]\n"
 449         "LDR     R2, [R1]\n"
 450         "CMP     R2, #0\n"
 451         "BEQ     loc_FF943DA8\n"
 452         "LDR     R3, =0x7CCC4\n"
 453         "LDR     R1, [R3]\n"
 454         "CMP     R2, R1\n"
 455         "BHI     loc_FF943DA8\n"
 456         "LDR     R0, [SP,#4]\n"
 457         "LDR     R3, [R0]\n"
 458         "ADD     R3, R2, R3\n"
 459         "CMP     R1, R3\n"
 460         "BCC     loc_FF943B38\n"
 461   "loc_FF943DA8:\n"
 462         "LDR     R3, =0x7CD24\n"
 463         "LDR     R0, =0x7CD28\n"
 464         "LDR     R2, [R3]\n"
 465         "LDR     R3, [R0,#4]\n"
 466         "ADD     R2, R2, #0x18\n"
 467         "MOV     R1, R2\n"
 468         "MOV     R2, #0\n"
 469         "CMP     R2, R3\n"
 470         "BHI     loc_FF943DDC\n"
 471         "BNE     loc_FF943DE4\n"
 472         "LDR     R3, [R0]\n"
 473         "CMP     R1, R3\n"
 474         "BLS     loc_FF943DE4\n"
 475   "loc_FF943DDC:\n"
 476         "MOV     R0, #0x80000005\n"
 477         "B       loc_FF943F08\n"
 478   "loc_FF943DE4:\n"
 479         "LDR     R1, =0x7CD0C\n"
 480         "LDR     R0, =0x7CD58\n"
 481         "LDR     R3, [R1]\n"
 482         "LDR     R2, [R0]\n"
 483         "ADD     R3, R3, R2,LSL#4\n"
 484         "ADD     R3, R3, R3,LSL#2\n"
 485         "LDR     R12, =0x7CD28\n"
 486         "MOV     R3, R3,LSL#1\n"
 487         "ADD     R3, R3, #0xA0\n"
 488         "LDR     R2, [R12,#4]\n"
 489         "MOV     R0, R3\n"
 490         "MOV     R1, #0\n"
 491         "CMP     R1, R2\n"
 492         "BHI     loc_FF943E2C\n"
 493         "BNE     loc_FF943E50\n"
 494         "LDR     R3, [R12]\n"
 495         "CMP     R0, R3\n"
 496         "BLS     loc_FF943E50\n"
 497   "loc_FF943E2C:\n"
 498         "LDR     R4, =0x7CD40\n"
 499         "LDR     R1, [R4]\n"
 500         "CMP     R1, #0\n"
 501         "BNE     loc_FF943E50\n"
 502         "MOV     R0, #0x3140\n"
 503         "ADD     R0, R0, #8\n"
 504         "BL      sub_FF95A274\n"
 505         "MOV     R3, #1\n"
 506         "STR     R3, [R4]\n"
 507   "loc_FF943E50:\n"
 508         "LDR     R1, =0x7CD0C\n"
 509         "LDR     R0, =0x7CD58\n"
 510         "LDR     R2, [R1]\n"
 511         "LDR     R3, [R0]\n"
 512         "LDR     R0, =0x7CD30\n"
 513         "ADD     R2, R2, R3,LSL#4\n"
 514         "MVN     R3, #0x9F\n"
 515         "ADD     R2, R2, R2,LSL#2\n"
 516         "ADD     R3, R3, #0x40000000\n"
 517         "SUB     R3, R3, R2,LSL#1\n"
 518         "LDR     R1, [R0,#4]\n"
 519         "MOV     R4, R3\n"
 520         "MOV     R5, #0\n"
 521         "CMP     R1, R5\n"
 522         "BHI     loc_FF943E9C\n"
 523         "BNE     loc_FF943EC0\n"
 524         "LDR     R3, [R0]\n"
 525         "CMP     R3, R4\n"
 526         "BLS     loc_FF943EC0\n"
 527   "loc_FF943E9C:\n"
 528         "LDR     R4, =0x7CD40\n"
 529         "LDR     R1, [R4]\n"
 530         "CMP     R1, #0\n"
 531         "BNE     loc_FF943EC0\n"
 532         "MOV     R0, #0x3140\n"
 533         "ADD     R0, R0, #8\n"
 534         "BL      sub_FF95A274\n"
 535         "MOV     R3, #1\n"
 536         "STR     R3, [R4]\n"
 537   "loc_FF943EC0:\n"
 538         "LDR     R3, =0x7CD30\n"
 539         "LDR     R12, =0x7CD24\n"
 540         "LDMIA   R3, {R1,R2}\n"
 541         "LDR     R0, [R12]\n"
 542         "MOV     R4, #0\n"
 543         "MOV     R3, #0x18\n"
 544         "ADDS    R1, R1, R0\n"
 545         "ADC     R2, R2, #0\n"
 546         "ADDS    R1, R1, R3\n"
 547         "ADC     R2, R2, R4\n"
 548         "CMP     R2, #0\n"
 549         "BHI     loc_FF943EFC\n"
 550         "BNE     loc_FF943F04\n"
 551         "CMP     R1, #0x40000000\n"
 552         //"BLS     loc_FF943F04\n"      //-
 553         "B       loc_FF943F04\n"        //+
 554   "loc_FF943EFC:\n"
 555         "MOV     R0, #0x80000007\n"
 556         "B       loc_FF943F08\n"
 557   "loc_FF943F04:\n"
 558         "MOV     R0, #0\n"
 559   "loc_FF943F08:\n"
 560         "ADD     SP, SP, #0x14\n"
 561         "LDMFD   SP!, {R4-R11,PC}\n"
 562  );
 563 }
 564 
 565 void __attribute__((naked,noinline)) sub_FF942E38_my(){
 566  asm volatile(
 567         "CMP     R2, #1\n"
 568         "STMFD   SP!, {R4-R7,LR}\n"
 569         "MOV     R7, R0\n"
 570         "MOV     R6, R1\n"
 571         "MOVEQ   R3, #0x79\n"
 572         "STREQ   R3, [R6]\n"
 573         "LDMEQFD SP!, {R4-R7,PC}\n"
 574         "LDR     R12, =0x7CA40\n"
 575         "LDR     R0, [R12]\n"
 576         "LDR     R3, =0x7CA48\n"
 577         "CMP     R0, #0\n"
 578         "LDR     R1, [R3]\n"
 579         "BEQ     loc_FF942E80\n"
 580         "LDR     R2, =0x7CA4C\n"
 581         "LDR     R3, [R2]\n"
 582         "CMP     R3, #1\n"
 583         "BNE     loc_FF942E94\n"
 584         "B       loc_FF942E84\n"
 585   "loc_FF942E80:\n"
 586         "LDR     R2, =0x7CA4C\n"
 587   "loc_FF942E84:\n"
 588         "MOV     R3, #0\n"
 589         "STR     R3, [R2]\n"
 590         "STR     R7, [R12]\n"
 591         "B       loc_FF942F48\n"
 592   "loc_FF942E94:\n"
 593         "LDR     R3, =0x7CA44\n"
 594         "LDR     R2, [R3]\n"
 595         "LDR     R5, =table1\n" //x
 596         "MOV     LR, R2,LSL#2\n"
 597         "LDR     R3, [R5,LR]\n"
 598         "LDR     R4, =table2\n" //x
 599         "RSB     R12, R3, R0\n"
 600         "LDR     R2, [R4,LR]\n"
 601         "CMP     R12, #0\n"
 602         "RSB     R0, R2, R0\n"
 603         "BLE     loc_FF942EF4\n"
 604         "ADD     R3, R5, #0x14\n"
 605         "LDR     R2, [R3,LR]\n"
 606         "CMP     R2, R12\n"
 607         "ADDGE   R1, R1, #1\n"
 608         "BGE     loc_FF942EE8\n"
 609         "ADD     R3, R5, #0x28\n"
 610         "LDR     R2, [R3,LR]\n"
 611         "CMP     R2, R12\n"
 612         "ADDGE   R1, R1, #2\n"
 613         "ADDLT   R1, R1, #3\n"
 614   "loc_FF942EE8:\n"
 615         //"CMP     R1, #0xE\n"  //-
 616         //"MOVGE   R1, #0xE\n"  //-
 617         "CMP     R1, #0x1A\n"           //+
 618         "MOVGE   R1, #0x1A\n"           //+
 619 
 620         "B       loc_FF942F2C\n"
 621   "loc_FF942EF4:\n"
 622         "CMP     R0, #0\n"
 623         "BGE     loc_FF942F2C\n"
 624         "ADD     R3, R4, #0x14\n"
 625         "LDR     R2, [R3,LR]\n"
 626         "CMP     R2, R0\n"
 627         "SUBLE   R1, R1, #1\n"
 628         "BLE     loc_FF942F24\n"
 629         "ADD     R3, R4, #0x28\n"
 630         "LDR     R2, [R3,LR]\n"
 631         "CMP     R2, R0\n"
 632         "SUBLE   R1, R1, #2\n"
 633         "SUBGT   R1, R1, #3\n"
 634   "loc_FF942F24:\n"
 635         "CMP     R1, #0\n"
 636         "MOVLT   R1, #0\n"
 637   "loc_FF942F2C:\n"
 638         "LDR     R0, =0x7CA48\n"
 639         "LDR     R3, [R0]\n"
 640         "CMP     R1, R3\n"
 641         "LDRNE   R2, =0x7CA4C\n"
 642         "MOVNE   R3, #1\n"
 643         "STRNE   R1, [R0]\n"
 644         "STRNE   R3, [R2]\n"
 645   "loc_FF942F48:\n"
 646         "LDR     R3, =0x7CA48\n"
 647           "LDR     R1, =video_mode\n"                   //x
 648         "LDR     R0, [R3]\n"
 649         "LDR     R2, =CompressionRateTable\n"   //x
 650         "LDR     R12, [R1]\n"
 651         "LDR     R12, [R12]\n"                  //+   
 652         "LDR     LR, [R2,R0,LSL#2]\n"
 653         "LDR     R3, =0x7CA40\n"
 654         "CMP     R12, #1\n"
 655         "STR     R7, [R3]\n"
 656         "STR     LR, [R6]\n"
 657         //"MOVEQ   R3, #0xB\n"                  // -
 658         "LDREQ   R3, =video_quality\n"          // +
 659         "LDREQ   R3, [R3]\n"                    // +
 660         "LDREQ   R3, [R3]\n"                    // +
 661         "STREQ   R3, [R6]\n"
 662         "LDMFD   SP!, {R4-R7,PC}\n"
 663  );
 664 }

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