root/platform/s3is/sub/100a/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_FF96396C_my
  4. sub_FF965910_my
  5. sub_FF964B98_my

   1 #include "conf.h"
   2 
   3 int *video_quality = &conf.video_quality;
   4 int *video_mode    = &conf.video_mode;
   5 
   6 long def_table1[42]={
   7 0x2000, 0x38D, 0x788, 0xBE1, 0x10CB,0x1642,0x1C48,0x22F9, 0x2A79, 0x32AA, 0x3C01, 0x4637, 0x5190, 0x5E0E,
   8 0x5800, 0x9C5, 0x14B8,0x20C9,0x2E31,0x3D39,0x4DC9,0x6030, 0x74D1, 0x8B8D, 0xA509, 0xC160, 0xE054, 0x102AF,
   9 0x10000,0x1C6A,0x3C45,0x5F60,0x8661,0xB21A,0xE249,0x117D2,0x153D5,0x195F8,0x1E01C,0x2328E,0x28C99,0x2F08B
  10 };
  11 
  12 long def_table2[9]={0x1CCD,-0x2E1,-0x579,0x4F33,-0x7EB,-0xF0C,0xE666,-0x170A,-0x2BC6};
  13 
  14 long table1[42], table2[9];
  15 
  16 void change_video_tables(int a, int b){
  17  int i;
  18  for (i=0;i<42;i++) table1[i]=(def_table1[i]*a)/b;
  19  for (i=0;i<9; i++) table2[i]=(def_table2[i]*a)/b;
  20 }
  21 
  22 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};
  23 
  24 
  25 void __attribute__((naked,noinline)) movie_record_task(){
  26  asm volatile(
  27                 "STMFD   SP!, {R4,LR}\n"    
  28                 "SUB     SP, SP, #4\n"      
  29                 "MOV     R4, SP\n"          
  30                 "B       loc_FF963204\n"    
  31 "loc_FF96313C:\n"                           
  32                 "LDR     R3, =0x61140\n"    
  33                 "LDR     R2, [R3]\n"        
  34                 "CMP     R2, #0\n"          
  35                 "BNE     loc_FF9631CC\n"    
  36                 "SUB     R3, R12, #2\n"     
  37                 "CMP     R3, #9\n"          
  38                 "LDRLS   PC, [PC,R3,LSL#2]\n" 
  39                 "B       loc_FF9631CC\n"    
  40                 ".long loc_FF96318C\n"
  41                 ".long loc_FF9631A4\n"
  42                 ".long loc_FF9631AC\n"
  43                 ".long loc_FF9631B4\n"
  44                 ".long loc_FF963194\n"
  45                 ".long loc_FF9631BC\n"
  46                 ".long loc_FF96319C\n"
  47                 ".long loc_FF9631CC\n"
  48                 ".long loc_FF9631C4\n"
  49                 ".long loc_FF963184\n"
  50 "loc_FF963184:\n"                           
  51                                         
  52                 "BL      sub_FF9632B0\n"    
  53                 "B       loc_FF9631C8\n"    
  54 "loc_FF96318C:\n"                           
  55                                         
  56                 "BL      sub_FF9634C0\n"    
  57                 "B       loc_FF9631C8\n"    
  58 "loc_FF963194:\n"                           
  59                                         
  60                 "BL      sub_FF96396C_my\n"    //-------------->
  61                 "B       loc_FF9631C8\n"    
  62 "loc_FF96319C:\n"                           
  63                                         
  64                 "BL      sub_FF963DA0\n"    
  65                 "B       loc_FF9631C8\n"    
  66 "loc_FF9631A4:\n"                           
  67                                         
  68                 "BL      sub_FF963C04\n"    
  69                 "B       loc_FF9631C8\n"    
  70 "loc_FF9631AC:\n"                           
  71                                         
  72                 "BL      sub_FF964018\n"    
  73                 "B       loc_FF9631C8\n"    
  74 "loc_FF9631B4:\n"                           
  75                                         
  76                 "BL      sub_FF9641DC\n"    
  77                 "B       loc_FF9631C8\n"    
  78 "loc_FF9631BC:\n"                           
  79                                         
  80                 "BL      sub_FF963F30\n"    
  81                 "B       loc_FF9631C8\n"    
  82 "loc_FF9631C4:\n"                           
  83                                         
  84                 "BL      sub_FF963C54\n"    
  85 "loc_FF9631C8:\n"                           
  86                                         
  87                 "LDR     R1, [SP]\n"        
  88 "loc_FF9631CC:\n"                           
  89                                         
  90                 "LDR     R3, [R1]\n"        
  91                 "CMP     R3, #9\n"          
  92                 "BNE     loc_FF9631E4\n"    
  93                 "MOV     R0, R1\n"          
  94                 "BL      sub_FF964370\n" 
  95                 "LDR     R1, [SP]\n"        
  96 "loc_FF9631E4:\n"                           
  97                 "LDR     R3, =0x61074\n"    
  98                 "MOV     R2, #0\n"          
  99                 "LDR     R0, [R3]\n"        
 100                 "STR     R2, [R1]\n"        
 101                 "BL      sub_FF8208D4\n" 
 102                 "LDR     R3, =0x61220\n"    
 103                 "LDR     R0, [R3]\n"        
 104                 "BL      sub_FF821250\n"   
 105 "loc_FF963204:\n"                           
 106                 "LDR     R3, =0x61070\n"    
 107                 "MOV     R1, R4\n"          
 108                 "LDR     R0, [R3]\n"        
 109                 "MOV     R2, #0\n"          
 110                 "BL      sub_FF8204BC\n" 
 111                 "LDR     R3, =0x61220\n"    
 112                 "MOV     R1, #0\n"          
 113                 "LDR     R0, [R3]\n"        
 114                 "BL      sub_FF821068\n"   
 115                 "LDR     R0, [SP]\n"        
 116                 "LDR     R12, [R0]\n"       
 117                 "CMP     R12, #0xC\n"       
 118                 "MOV     R1, R0\n"          
 119                 "BNE     loc_FF96313C\n"    
 120                 "LDR     R3, =0x6106C\n"    
 121                 "LDR     R0, [R3]\n"        
 122                 "BL      sub_FF821250\n"   
 123                 "BL      sub_FF821A18\n"        
 124                 "ADD     SP, SP, #4\n"      
 125                 "LDMFD   SP!, {R4,PC}\n"    
 126  );
 127 }
 128 
 129 void __attribute__((naked,noinline)) sub_FF96396C_my(){
 130  asm volatile(
 131                 "STMFD   SP!, {R4-R11,LR}\n" 
 132                 "LDR     R5, =0x6115C\n"    
 133                 "SUB     SP, SP, #0x34\n"   
 134                 "LDR     R3, [R5]\n"        
 135                 "CMP     R3, #3\n"          
 136                 "MOV     R4, R0\n"          
 137                 "MOVEQ   R3, #4\n"          
 138                 "STREQ   R3, [R5]\n"        
 139                 "LDR     R3, =0x6120C\n"    
 140                 "MOV     LR, PC\n"          
 141                 "LDR     PC, [R3]\n"        
 142                 "LDR     R2, [R5]\n"        
 143                 "CMP     R2, #4\n"          
 144                 "BNE     loc_FF963B30\n"    
 145                 "ADD     R0, SP, #0x30\n"   
 146                 "ADD     R1, SP, #0x2C\n"   
 147                 "ADD     R2, SP, #0x28\n"   
 148                 "ADD     R3, SP, #0x24\n"   
 149                 "BL      sub_FF965910_my\n"       // -------------------->
 150                 "CMP     R0, #0\n"          
 151                 "BNE     loc_FF9639E8\n"    
 152                 "LDR     R3, =0x61148\n"    
 153                 "LDR     R2, [R3]\n"        
 154                 "CMP     R2, #1\n"          
 155                 "BNE     loc_FF9639FC\n"    
 156                 "LDR     R2, =0x611A0\n"    
 157                 "LDR     R1, =0x61174\n"    
 158                 "LDR     R12, [R2]\n"       
 159                 "LDR     R3, [R1]\n"        
 160                 "CMP     R12, R3\n"         
 161                 "BCC     loc_FF9639FC\n"    
 162 "loc_FF9639E8:\n"                           
 163                 "BL      sub_FF963B7C\n"    
 164                 "BL      sub_FF963D7C\n"    
 165                 "MOV     R3, #5\n"          
 166                 "STR     R3, [R5]\n"        
 167                 "B       loc_FF963B30\n"    
 168 "loc_FF9639FC:\n"                           
 169                                         
 170                 "LDR     R12, =0x611A8\n"   
 171                 "LDR     R11, =0x611B4\n"   
 172                 "LDMIB   R4, {R0-R2}\n"     
 173                 "LDR     R10, [R12]\n"      
 174                 "LDR     R7, [R11]\n"       
 175                 "LDR     R4, [SP,#0x2C]\n"  
 176                 "LDR     R5, [SP,#0x28]\n"  
 177                 "LDR     R6, [SP,#0x24]\n"  
 178                 "LDR     R8, =0x6114C\n"    
 179                 "LDR     R3, [SP,#0x30]\n"  
 180                 "ADD     R12, SP, #0x20\n"  
 181                 "ADD     LR, SP, #0x1C\n"   
 182                 "MOV     R9, #1\n"          
 183                 "STMEA   SP, {R4-R6,R12}\n" 
 184                 "STR     R10, [SP,#0x10]\n" 
 185                 "STR     R7, [SP,#0x14]\n"  
 186                 "STR     LR, [SP,#0x18]\n"  
 187                 "STR     R9, [R8]\n"        
 188                 "BL      sub_FF8984C8\n"    
 189                 "LDR     R3, =0x61064\n"    
 190                 "MOV     R1, #0x3E8\n"      
 191                 "LDR     R0, [R3]\n"        
 192                 "BL      sub_FF821068\n"   
 193                 "CMP     R0, #9\n"          
 194                 "BNE     loc_FF963A70\n"    
 195                 "BL      sub_FF966184\n"    
 196                 "LDR     R3, =0x6115C\n"    
 197                 "LDR     R0, =0xFF963954\n" 
 198                 "B       loc_FF963A88\n"    
 199 "loc_FF963A70:\n"                           
 200                 "LDR     R5, [SP,#0x1C]\n"  
 201                 "CMP     R5, #0\n"          
 202                 "BEQ     loc_FF963A94\n"    
 203                 "BL      sub_FF966184\n"    
 204                 "LDR     R3, =0x6115C\n"    
 205                 "LDR     R0, =0xFF963960\n" 
 206 "loc_FF963A88:\n"                           
 207                 "STR     R9, [R3]\n"        
 208                 "BL      sub_FF986B94\n"    
 209                 "B       loc_FF963B30\n"    
 210 "loc_FF963A94:\n"                           
 211                 "BL      sub_FF898634\n"    
 212                 "LDR     R0, [SP,#0x30]\n"  
 213                 "LDR     R1, [SP,#0x20]\n"  
 214                 "BL      sub_FF965E94\n"    
 215                 "LDR     R4, =0x611A0\n"    
 216                 "LDR     R3, [R4]\n"        
 217                 "ADD     R3, R3, #1\n"      
 218                 "LDR     R0, [SP,#0x20]\n"  
 219                 "MOV     R1, R11\n"         
 220                 "STR     R3, [R4]\n"        
 221                 "MOV     R2, R5\n"          
 222                 "BL      sub_FF964B98_my\n"   //----------------->
 223                 "LDR     R3, =0x611C0\n"    
 224                 "LDR     R1, [R4]\n"        
 225                 "LDR     R2, [R3]\n"        
 226                 "LDR     R12, =0x611BC\n"   
 227                 "MUL     R0, R2, R1\n"      
 228                 "LDR     R1, [R12]\n"       
 229                 "BL      sub_FFB4AF3C\n"       
 230                 "LDR     R7, =0x611B8\n"    
 231                 "LDR     R3, [R7]\n"        
 232                 "MOV     R4, R0\n"          
 233                 "CMP     R3, R4\n"          
 234                 "BNE     loc_FF963B08\n"    
 235                 "LDR     R6, =0x61150\n"    
 236                 "LDR     R3, [R6]\n"        
 237                 "CMP     R3, #1\n"          
 238                 "BNE     loc_FF963B24\n"    
 239                 "B       loc_FF963B0C\n"    
 240 "loc_FF963B08:\n"                           
 241                 "LDR     R6, =0x61150\n"    
 242 "loc_FF963B0C:\n"                           
 243                 "LDR     R3, =0x611F0\n"    
 244                 "MOV     R0, R4\n"          
 245                 "MOV     LR, PC\n"          
 246                 "LDR     PC, [R3]\n"        
 247                 "STR     R5, [R6]\n"        
 248                 "STR     R4, [R7]\n"        
 249 "loc_FF963B24:\n"                           
 250                 "LDR     R2, =0x6114C\n"    
 251                 "MOV     R3, #0\n"          
 252                 "STR     R3, [R2]\n"        
 253 "loc_FF963B30:\n"                           
 254                 "ADD     SP, SP, #0x34\n"   
 255                 "LDMFD   SP!, {R4-R11,PC}\n" 
 256  );
 257 }
 258 
 259 
 260 
 261 void __attribute__((naked,noinline)) sub_FF965910_my(){
 262  asm volatile(
 263                 "STMFD   SP!, {R4-R11,LR}\n" 
 264                 "LDR     R5, =0x61518\n"    
 265                 "SUB     SP, SP, #0x14\n"   
 266                 "LDR     LR, [R5]\n"        
 267                 "LDR     R12, =0x61530\n"   
 268                 "ADD     LR, LR, #1\n"      
 269                 "LDR     R4, [R12]\n"       
 270                 "STR     LR, [R5]\n"        
 271                 "LDR     R12, =0x615B4\n"   
 272                 "STR     R0, [SP,#0x10]\n"  
 273                 "STR     R1, [SP,#0xC]\n"   
 274                 "STR     R2, [SP,#8]\n"     
 275                 "STR     R3, [SP,#4]\n"     
 276                 "CMP     LR, R4\n"          
 277                 "LDR     R11, [R12]\n"      
 278                 "MOVHI   R0, #0x80000001\n" 
 279                 "BHI     loc_FF965E40\n"    
 280                 "LDR     R3, =0x61598\n"    
 281                 "MOV     R0, LR\n"          
 282                 "LDR     R1, [R3]\n"        
 283                 "BL      sub_FFB4B5CC\n"       
 284                 "CMP     R0, #1\n"          
 285                 "BNE     loc_FF965B40\n"    
 286                 "LDR     R0, =0x615BC\n"    
 287                 "LDR     R1, =0x61500\n"    
 288                 "LDR     R3, [R0]\n"        
 289                 "LDR     R2, [R1]\n"        
 290                 "CMP     R3, R2\n"          
 291                 "LDREQ   R3, =0x615B8\n"    
 292                 "LDREQ   R5, [R3]\n"        
 293                 "MOVNE   R5, R2\n"          
 294                 "LDR     R3, =0x61518\n"    
 295                 "LDR     R2, =0x61598\n"    
 296                 "LDR     R0, [R3]\n"        
 297                 "LDR     R1, [R2]\n"        
 298                 "BL      sub_FFB4AF3C\n"       
 299                 "LDR     R2, =0xAAAAAAAB\n" 
 300                 "ADD     R0, R0, #1\n"      
 301                 "UMULL   R1, R3, R2, R0\n"  
 302                 "MOV     R3, R3,LSR#1\n"    
 303                 "ADD     R3, R3, R3,LSL#1\n" 
 304                 "LDR     R2, =0x61508\n"    
 305                 "RSB     R0, R3, R0\n"      
 306                 "STR     R5, [R2,R0,LSL#2]\n" 
 307                 "LDR     R3, =0x614FC\n"    
 308                 "LDR     R2, [R3]\n"        
 309                 "CMP     R5, R2\n"          
 310                 "BHI     loc_FF9659F0\n"    
 311                 "LDR     R4, =0x61550\n"    
 312                 "LDR     R3, [R4]\n"        
 313                 "ADD     R3, R5, R3\n"      
 314                 "ADD     R3, R3, #8\n"      
 315                 "CMP     R2, R3\n"          
 316                 "BCS     loc_FF9659F4\n"    
 317 "loc_FF9659E8:\n"                           
 318                                         
 319                 "MOV     R0, #0x80000003\n" 
 320                 "B       loc_FF965E40\n"    
 321 "loc_FF9659F0:\n"                           
 322                 "LDR     R4, =0x61550\n"    
 323 "loc_FF9659F4:\n"                           
 324                 "LDR     R3, [R4]\n"        
 325                 "LDR     R2, =0x615BC\n"    
 326                 "ADD     R1, R5, R3\n"      
 327                 "LDR     R3, [R2]\n"        
 328                 "ADD     R2, R1, #8\n"      
 329                 "CMP     R2, R3\n"          
 330                 "BLS     loc_FF965A40\n"    
 331                 "LDR     R2, =0x615B8\n"    
 332                 "LDR     R0, =0x614FC\n"    
 333                 "RSB     R3, R3, R1\n"      
 334                 "LDR     R1, [R2]\n"        
 335                 "ADD     R3, R3, #8\n"      
 336                 "LDR     R2, [R0]\n"        
 337                 "ADD     R1, R1, R3\n"      
 338                 "CMP     R2, R1\n"          
 339                 "BCC     loc_FF9659E8\n"    
 340                 "LDR     R3, =0x61500\n"    
 341                 "STR     R1, [R3]\n"        
 342                 "B       loc_FF965A48\n"    
 343 "loc_FF965A40:\n"                           
 344                 "LDR     R3, =0x61500\n"    
 345                 "STR     R2, [R3]\n"        
 346 "loc_FF965A48:\n"                           
 347                 "LDR     R3, [R4]\n"        
 348                 "LDR     R12, =0x61568\n"   
 349                 "ADD     R3, R3, #0x18\n"   
 350                 "LDR     R2, [R12,#4]\n"    
 351                 "MOV     R0, R3\n"          
 352                 "MOV     R1, #0\n"          
 353                 "CMP     R1, R2\n"          
 354                 "BHI     loc_FF965C8C\n"    
 355                 "BNE     loc_FF965A78\n"    
 356                 "LDR     R3, [R12]\n"       
 357                 "CMP     R0, R3\n"          
 358                 "BHI     loc_FF965C8C\n"    
 359 "loc_FF965A78:\n"                           
 360                 "LDR     R4, [R4]\n"        
 361                 "LDR     LR, =0x61570\n"    
 362                 "STR     R4, [SP]\n"        
 363                 "LDR     R12, =0x61568\n"   
 364                 "LDR     R3, =0x61518\n"    
 365                 "LDMIA   LR, {R7,R8}\n"     
 366                 "LDMIA   R12, {R5,R6}\n"    
 367                 "LDR     R10, [R3]\n"       
 368                 "LDR     R2, =0x61598\n"    
 369                 "MOV     R3, R4\n"          
 370                 "MOV     R4, #0\n"          
 371                 "ADDS    R7, R7, R3\n"      
 372                 "ADC     R8, R8, R4\n"      
 373                 "LDR     R9, [R2]\n"        
 374                 "SUBS    R5, R5, R3\n"      
 375                 "SBC     R6, R6, R4\n"      
 376                 "MVN     R2, #0\n"          
 377                 "MVN     R1, #0x17\n"       
 378                 "ADDS    R5, R5, R1\n"      
 379                 "MOV     R4, #0\n"          
 380                 "MOV     R3, #0x18\n"       
 381                 "ADC     R6, R6, R2\n"      
 382                 "ADDS    R7, R7, R3\n"      
 383                 "ADC     R8, R8, R4\n"      
 384                 "STMIA   R12, {R5,R6}\n"    
 385                 "SUB     R0, R10, #1\n"     
 386                 "MOV     R1, R9\n"          
 387                 "STMIA   LR, {R7,R8}\n"     
 388                 "BL      sub_FFB4AF3C\n"       
 389                 "CMP     R10, #1\n"         
 390                 "MLA     R0, R9, R0, R0\n"  
 391                 "BEQ     loc_FF965B40\n"    
 392                 "SUB     R3, R0, #1\n"      
 393                 "MOV     R3, R3,LSL#4\n"    
 394                 "ADD     R4, R11, #0x10\n"  
 395                 "ADD     R5, R11, #0x14\n"  
 396                 "LDR     R1, [R5,R3]\n"     
 397                 "LDR     R2, [R4,R3]\n"     
 398                 "LDR     LR, =0x62773130\n" 
 399                 "ADD     R2, R2, R1\n"      
 400                 "MOV     R3, R0,LSL#4\n"    
 401                 "ADD     R2, R2, #8\n"      
 402                 "MOV     R0, #0\n"          
 403                 "ADD     R12, R11, #0xC\n"  
 404                 "ADD     R1, R11, #8\n"     
 405                 "STR     LR, [R1,R3]\n"     
 406                 "STR     R0, [R12,R3]\n"    
 407                 "STR     R2, [R4,R3]\n"     
 408                 "LDR     R0, [SP]\n"        
 409                 "STR     R0, [R5,R3]\n"     
 410 "loc_FF965B40:\n"                           
 411                                         
 412                 "LDR     R2, =0x61500\n"    
 413                 "LDR     R3, =0x615BC\n"    
 414                 "LDR     R1, [R2]\n"        
 415                 "LDR     R0, [R3]\n"        
 416                 "ADD     R3, R1, #9\n"      
 417                 "CMP     R3, R0\n"          
 418                 "BLS     loc_FF965B7C\n"    
 419                 "LDR     R2, =0x615B8\n"    
 420                 "LDR     R3, [R2]\n"        
 421                 "ADD     R3, R3, R1\n"      
 422                 "RSB     R3, R0, R3\n"      
 423                 "LDR     R0, [SP,#0x10]\n"  
 424                 "ADD     R3, R3, #8\n"      
 425                 "STR     R3, [R0]\n"        
 426                 "B       loc_FF965B88\n"    
 427 "loc_FF965B7C:\n"                           
 428                 "ADD     R3, R1, #8\n"      
 429                 "LDR     R1, [SP,#0x10]\n"  
 430                 "STR     R3, [R1]\n"        
 431 "loc_FF965B88:\n"                           
 432                 "LDR     R2, [SP,#0x10]\n"  
 433                 "LDR     R1, =0x61560\n"    
 434                 "LDR     R3, =0x615BC\n"    
 435                 "LDR     R12, [R2]\n"       
 436                 "LDR     R2, [R1]\n"        
 437                 "LDR     R0, [R3]\n"        
 438                 "ADD     R3, R12, R2\n"     
 439                 "CMP     R3, R0\n"          
 440                 "BLS     loc_FF965BDC\n"    
 441                 "LDR     R2, [SP,#0xC]\n"   
 442                 "RSB     R0, R12, R0\n"     
 443                 "STR     R0, [R2]\n"        
 444                 "LDR     R2, =0x615B8\n"    
 445                 "LDR     R3, [R1]\n"        
 446                 "LDR     R1, [R2]\n"        
 447                 "RSB     R3, R0, R3\n"      
 448                 "LDR     R0, [SP,#8]\n"     
 449                 "STR     R1, [R0]\n"        
 450                 "LDR     R1, [SP,#4]\n"     
 451                 "STR     R3, [R1]\n"        
 452                 "B       loc_FF965BF8\n"    
 453 "loc_FF965BDC:\n"                           
 454                 "LDR     R0, [SP,#0xC]\n"   
 455                 "STR     R2, [R0]\n"        
 456                 "LDR     R1, [SP,#4]\n"     
 457                 "MOV     R3, #0\n"          
 458                 "STR     R3, [R1]\n"        
 459                 "LDR     R2, [SP,#8]\n"     
 460                 "STR     R3, [R2]\n"        
 461 "loc_FF965BF8:\n"                           
 462                 "LDR     R0, =0x61500\n"    
 463                 "LDR     R1, =0x614FC\n"    
 464                 "LDR     R3, [R0]\n"        
 465                 "LDR     R2, [R1]\n"        
 466                 "CMP     R3, R2\n"          
 467                 "BHI     loc_FF965C24\n"    
 468                 "LDR     R0, [SP,#0xC]\n"   
 469                 "LDR     R3, [R0]\n"        
 470                 "ADD     R3, R12, R3\n"     
 471                 "CMP     R2, R3\n"          
 472                 "BCC     loc_FF9659E8\n"    
 473 "loc_FF965C24:\n"                           
 474                 "LDR     R1, [SP,#8]\n"     
 475                 "LDR     R2, [R1]\n"        
 476                 "CMP     R2, #0\n"          
 477                 "BEQ     loc_FF965C58\n"    
 478                 "LDR     R3, =0x614FC\n"    
 479                 "LDR     R1, [R3]\n"        
 480                 "CMP     R2, R1\n"          
 481                 "BHI     loc_FF965C58\n"    
 482                 "LDR     R0, [SP,#4]\n"     
 483                 "LDR     R3, [R0]\n"        
 484                 "ADD     R3, R2, R3\n"      
 485                 "CMP     R1, R3\n"          
 486                 "BCC     loc_FF9659E8\n"    
 487 "loc_FF965C58:\n"                           
 488                                         
 489                 "LDR     R3, =0x61560\n"    
 490                 "LDR     R0, =0x61568\n"    
 491                 "LDR     R2, [R3]\n"        
 492                 "LDR     R3, [R0,#4]\n"     
 493                 "ADD     R2, R2, #0x18\n"   
 494                 "MOV     R1, R2\n"          
 495                 "MOV     R2, #0\n"          
 496                 "CMP     R2, R3\n"          
 497                 "BHI     loc_FF965C8C\n"    
 498                 "BNE     loc_FF965C94\n"    
 499                 "LDR     R3, [R0]\n"        
 500                 "CMP     R1, R3\n"          
 501                 "BLS     loc_FF965C94\n"    
 502 "loc_FF965C8C:\n"                           
 503                                         
 504                 "MOV     R0, #0x80000005\n" 
 505                 "B       loc_FF965E40\n"    
 506 "loc_FF965C94:\n"                           
 507                                         
 508                 "LDR     R1, =0x61548\n"    
 509                 "LDR     R0, =0x61598\n"    
 510                 "LDR     R3, [R1]\n"        
 511                 "LDR     R2, [R0]\n"        
 512                 "ADD     R3, R3, R2,LSL#4\n" 
 513                 "ADD     R3, R3, R3,LSL#2\n" 
 514                 "LDR     R12, =0x61568\n"   
 515                 "MOV     R3, R3,LSL#1\n"    
 516                 "ADD     R3, R3, #0xA0\n"   
 517                 "LDR     R2, [R12,#4]\n"    
 518                 "MOV     R0, R3\n"          
 519                 "MOV     R1, #0\n"          
 520                 "CMP     R1, R2\n"          
 521                 "BHI     loc_FF965CDC\n"    
 522                 "BNE     loc_FF965D00\n"    
 523                 "LDR     R3, [R12]\n"       
 524                 "CMP     R0, R3\n"          
 525                 "BLS     loc_FF965D00\n"    
 526 "loc_FF965CDC:\n"                           
 527                 "LDR     R4, =0x61580\n"    
 528                 "LDR     R1, [R4]\n"        
 529                 "CMP     R1, #0\n"          
 530                 "BNE     loc_FF965D00\n"    
 531                 "MOV     R0, #0x3140\n"     
 532                 "ADD     R0, R0, #8\n"      
 533                 "BL      sub_FF98B0C4\n"    
 534                 "MOV     R3, #1\n"          
 535                 "STR     R3, [R4]\n"        
 536 "loc_FF965D00:\n"                           
 537                                         
 538                 "LDR     R1, =0x61548\n"    
 539                 "LDR     R0, =0x61598\n"    
 540                 "LDR     R2, [R1]\n"        
 541                 "LDR     R3, [R0]\n"        
 542                 "LDR     R0, =0x61570\n"    
 543                 "ADD     R2, R2, R3,LSL#4\n" 
 544                 "MVN     R3, #0x9F\n"       
 545                 "ADD     R2, R2, R2,LSL#2\n" 
 546                 "ADD     R3, R3, #0x40000000\n" 
 547                 "SUB     R3, R3, R2,LSL#1\n" 
 548                 "LDR     R1, [R0,#4]\n"     
 549                 "MOV     R4, R3\n"          
 550                 "MOV     R5, #0\n"          
 551                 "CMP     R1, R5\n"          
 552                 "BHI     loc_FF965D4C\n"    
 553                 "BNE     loc_FF965D70\n"    
 554                 "LDR     R3, [R0]\n"        
 555                 "CMP     R3, R4\n"          
 556                 "BLS     loc_FF965D70\n"    
 557 "loc_FF965D4C:\n"                           
 558                 "LDR     R4, =0x61580\n"    
 559                 "LDR     R1, [R4]\n"        
 560                 "CMP     R1, #0\n"          
 561                 "BNE     loc_FF965D70\n"    
 562                 "MOV     R0, #0x3140\n"     
 563                 "ADD     R0, R0, #8\n"      
 564                 "BL      sub_FF98B0C4\n"    
 565                 "MOV     R3, #1\n"          
 566                 "STR     R3, [R4]\n"        
 567 "loc_FF965D70:\n"                           
 568                                         
 569                 "LDR     R3, =0x61598\n"    
 570                 "LDR     R2, [R3]\n"        
 571                 "CMP     R2, #0x3C\n"       
 572                 "BNE     loc_FF965DA8\n"    
 573                 "LDR     R3, =0x615AA\n"    
 574                 "LDRH    R2, [R3]\n"        
 575                 "CMP     R2, #2\n"          
 576                 "BNE     loc_FF965DA8\n"    
 577                 "LDR     R3, =0x61518\n"    
 578                 "MOV     R2, #0x34800\n"    
 579                 "LDR     R1, [R3]\n"        
 580                 "ADD     R2, R2, #0x90\n"   
 581                 "CMP     R1, R2\n"          
 582                 "B       loc_FF965DD0\n"    
 583 "loc_FF965DA8:\n"                           
 584                                         
 585                 "LDR     R3, =0x61598\n"    
 586                 "LDR     R0, =0x61530\n"    
 587                 "LDR     R2, [R3]\n"        
 588                 "LDR     R12, =0x61518\n"   
 589                 "LDR     R1, [R0]\n"        
 590                 "ADD     R3, R2, R2,LSL#2\n" 
 591                 "ADD     R2, R2, R3,LSL#1\n" 
 592                 "LDR     R0, [R12]\n"       
 593                 "RSB     R1, R2, R1\n"      
 594                 "CMP     R0, R1\n"          
 595 "loc_FF965DD0:\n"                           
 596                 "BLS     loc_FF965DF8\n"    
 597                 "LDR     R4, =0x61580\n"    
 598                 "LDR     R1, [R4]\n"        
 599                 "CMP     R1, #0\n"          
 600                 "BNE     loc_FF965DF8\n"    
 601                 "MOV     R0, #0x3140\n"     
 602                 "ADD     R0, R0, #8\n"      
 603                 "BL      sub_FF98B0C4\n"    
 604                 "MOV     R3, #1\n"          
 605                 "STR     R3, [R4]\n"        
 606 "loc_FF965DF8:\n"                           
 607                                         
 608                 "LDR     R3, =0x61570\n"    
 609                 "LDR     R12, =0x61560\n"   
 610                 "LDMIA   R3, {R1,R2}\n"     
 611                 "LDR     R0, [R12]\n"       
 612                 "MOV     R4, #0\n"          
 613                 "MOV     R3, #0x18\n"       
 614                 "ADDS    R1, R1, R0\n"      
 615                 "ADC     R2, R2, #0\n"      
 616                 "ADDS    R1, R1, R3\n"      
 617                 "ADC     R2, R2, R4\n"      
 618                 "CMP     R2, #0\n"          
 619                 "BHI     loc_FF965E34\n"    
 620                 "BNE     loc_FF965E3C\n"    
 621                 "CMP     R1, #0x40000000\n" 
 622                // "BLS     loc_FF965E3C\n"    // -
 623 
 624                 "B       loc_FF965E3C\n"      // +
 625 
 626 "loc_FF965E34:\n"                           
 627                 "MOV     R0, #0x80000007\n" 
 628                 "B       loc_FF965E40\n"    
 629 "loc_FF965E3C:\n"                           
 630                                         
 631                 "MOV     R0, #0\n"          
 632 "loc_FF965E40:\n"                           
 633                                         
 634                 "ADD     SP, SP, #0x14\n"   
 635                 "LDMFD   SP!, {R4-R11,PC}\n" 
 636 
 637  );
 638 }
 639 
 640 
 641 void __attribute__((naked,noinline)) sub_FF964B98_my(){
 642  asm volatile(
 643                 "CMP     R2, #1\n"          
 644                 "STMFD   SP!, {R4-R8,R10,LR}\n" 
 645                 "MOV     R10, R0\n"         
 646                 "MOV     R8, R1\n"          
 647                 "MOVEQ   R3, #0x79\n"       
 648                 "STREQ   R3, [R8]\n"        
 649                 "LDMEQFD SP!, {R4-R8,R10,PC}\n" 
 650                 "LDR     R1, =0x61274\n"    
 651                 "LDR     R5, [R1]\n"        
 652                 "LDR     R3, =0x6127C\n"    
 653                 "CMP     R5, #0\n"          
 654                 "LDR     R0, [R3]\n"        
 655                 "BEQ     loc_FF964BE0\n"    
 656                 "LDR     R2, =0x61280\n"    
 657                 "LDR     R3, [R2]\n"        
 658                 "CMP     R3, #1\n"          
 659                 "BNE     loc_FF964BF4\n"    
 660                 "B       loc_FF964BE4\n"    
 661 "loc_FF964BE0:\n"                           
 662                 "LDR     R2, =0x61280\n"    
 663 "loc_FF964BE4:\n"                           
 664                 "MOV     R3, #0\n"          
 665                 "STR     R3, [R2]\n"        
 666                 "STR     R10, [R1]\n"       
 667                 "B       loc_FF964CB4\n"    
 668 "loc_FF964BF4:\n"                           
 669                 "LDR     R3, =0x61278\n"    
 670                 "LDR     R2, [R3]\n"        
 671                 "LDR     R7, =table1\n" // +  0xFF964984
 672                 "RSB     R3, R2, R2,LSL#3\n" 
 673                 "MOV     R4, R3,LSL#3\n"    
 674                 "LDR     R1, [R7,R4]\n"     
 675                 "ADD     R2, R2, R2,LSL#1\n" 
 676                 "LDR     R6, =table2\n"  // +  0xFF964A2C
 677                 "MOV     LR, R2,LSL#2\n"    
 678                 "RSB     R12, R1, R5\n"     
 679                 "LDR     R3, [R6,LR]\n"     
 680                 "CMP     R12, #0\n"         
 681                 "RSB     R1, R3, R5\n"      
 682                 "BLE     loc_FF964C60\n"    
 683                 "ADD     R3, R7, #4\n"      
 684                 "LDR     R2, [R3,R4]\n"     
 685                 "CMP     R2, R12\n"         
 686                 "ADDGE   R0, R0, #1\n"      
 687                 "BGE     loc_FF964C54\n"    
 688                 "ADD     R3, R7, #8\n"      
 689                 "LDR     R2, [R3,R4]\n"     
 690                 "CMP     R2, R12\n"         
 691                 "ADDGE   R0, R0, #2\n"      
 692                 "ADDLT   R0, R0, #3\n"      
 693 "loc_FF964C54:\n"                           
 694             //  "CMP     R0, #0xE\n"   // -     
 695             //  "MOVGE   R0, #0xE\n"   // -     
 696 
 697                 "CMP     R0, #0x1A\n"  // +      
 698                 "MOVGE   R0, #0x1A\n"  // +      
 699 
 700                 "B       loc_FF964C98\n"    
 701 "loc_FF964C60:\n"                           
 702                 "CMP     R1, #0\n"          
 703                 "BGE     loc_FF964C98\n"    
 704                 "ADD     R3, R6, #4\n"      
 705                 "LDR     R2, [R3,LR]\n"     
 706                 "CMP     R2, R1\n"          
 707                 "SUBLE   R0, R0, #1\n"      
 708                 "BLE     loc_FF964C90\n"    
 709                 "ADD     R3, R6, #8\n"      
 710                 "LDR     R2, [R3,LR]\n"     
 711                 "CMP     R2, R1\n"          
 712                 "SUBLE   R0, R0, #2\n"      
 713                 "SUBGT   R0, R0, #3\n"      
 714 "loc_FF964C90:\n"                           
 715                 "CMP     R0, #0\n"          
 716                 "MOVLT   R0, #0\n"          
 717 "loc_FF964C98:\n"                           
 718                                         
 719                 "LDR     R1, =0x6127C\n"    
 720                 "LDR     R3, [R1]\n"        
 721                 "CMP     R0, R3\n"          
 722                 "LDRNE   R2, =0x61280\n"    
 723                 "MOVNE   R3, #1\n"          
 724                 "STRNE   R0, [R1]\n"        
 725                 "STRNE   R3, [R2]\n"        
 726 "loc_FF964CB4:\n"                           
 727                 "LDR     R3, =0x6127C\n"    
 728             //  "LDR     R1, =0x65E0\n"     //-
 729                 "LDR     R1, =video_mode\n" //+
 730                 "LDR     R0, [R3]\n"        
 731                 "LDR     R2, =CompressionRateTable\n" //+ 0xFF964948
 732                 "LDR     R12, [R1]\n"
 733 
 734                 "LDR     R12, [R12]\n" //+
 735                                  
 736                 "LDR     LR, [R2,R0,LSL#2]\n" 
 737                 "LDR     R3, =0x61274\n"    
 738                 "CMP     R12, #1\n"         
 739                 "STR     R10, [R3]\n"       
 740                 "STR     LR, [R8]\n"        
 741            //   "MOVEQ   R3, #0xB\n"  //-     
 742 
 743                 "LDREQ   R3, =video_quality\n"  //+               
 744                 "LDREQ   R3, [R3]\n"      //+              
 745                 "LDREQ   R3, [R3]\n"      //+              
 746 
 747                 "STREQ   R3, [R8]\n"        
 748                 "LDMFD   SP!, {R4-R8,R10,PC}\n" 
 749  );
 750 }
 751 

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