root/platform/ixus230_elph310hs/sub/100b/movie_rec.c

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

DEFINITIONS

This source file includes following definitions.
  1. change_video_tables
  2. set_quality
  3. movie_record_task
  4. movie_time
  5. sub_FF185D98_my
  6. sub_FF2E321C_my

   1 #include "conf.h"
   2 
   3 void change_video_tables(int a, int b){
   4 }
   5 
   6 void  set_quality(int *x){ // -17 highest; +12 lowest
   7  if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1));
   8 }
   9 
  10 /*----------------------------------------------------------------------
  11         movie_record_task()
  12 -----------------------------------------------------------------------*/
  13 void __attribute__((naked,noinline)) movie_record_task() {
  14 // FF186748
  15     asm volatile (
  16         "    STMFD   SP!, {R2-R10,LR} \n" 
  17         "    LDR     R6, =0xFF1854B8 \n" 
  18         "    LDR     R7, =0xFF1861B4 \n" 
  19         "    LDR     R4, =0x6CC0 \n" 
  20         "    LDR     R9, =0x6D6 \n" 
  21         "    LDR     R10, =0x2710 \n" 
  22         "    MOV     R8, #1 \n" 
  23         "    MOV     R5, #0 \n" 
  24         "loc_FF186768:\n"
  25         "    LDR     R0, [R4, #0x24] \n" 
  26         "    MOV     R2, #0 \n" 
  27         "    ADD     R1, SP, #4 \n" 
  28         "    BL      sub_FF02B314 \n" 
  29         "    LDR     R0, [R4, #0x2C] \n" 
  30         "    CMP     R0, #0 \n" 
  31         "    LDRNE   R0, [R4, #0xC] \n" 
  32         "    CMPNE   R0, #2 \n" 
  33         "    LDRNE   R0, [R4, #0x44] \n" 
  34         "    CMPNE   R0, #6 \n" 
  35         "    BNE     loc_FF1868A4 \n" 
  36         "    LDR     R0, [SP, #4] \n" 
  37         "    LDR     R1, [R0] \n" 
  38         "    SUB     R1, R1, #2 \n" 
  39         "    CMP     R1, #0xD \n" 
  40         "    ADDCC   PC, PC, R1, LSL #2 \n" 
  41         "    B       loc_FF1868A4 \n" 
  42         "    B       loc_FF186844 \n" 
  43         "    B       loc_FF186868 \n" 
  44         "    B       loc_FF186878 \n" 
  45         "    B       loc_FF186880 \n" 
  46         "    B       loc_FF186888 \n" 
  47         "    B       loc_FF186890 \n" 
  48         "    B       loc_FF18684C \n" 
  49         "    B       loc_FF186898 \n" 
  50         "    B       loc_FF186858 \n" 
  51         "    B       loc_FF1868A4 \n" 
  52         "    B       loc_FF1868A0 \n" 
  53         "    B       loc_FF186810 \n" 
  54         "    B       loc_FF1867E0 \n" 
  55         "loc_FF1867E0:\n" // jump table entry 12
  56         "    STR     R5, [R4, #0x40] \n" 
  57         "    STR     R5, [R4, #0x30] \n" 
  58         "    STR     R5, [R4, #0x34] \n" 
  59         "    STRH    R5, [R4, #6] \n" 
  60         "    STR     R6, [R4, #0xD8] \n" 
  61         "    STR     R7, [R4, #0xF4] \n" 
  62         "    LDR     R0, [R4, #0xC] \n" 
  63         "    ADD     R0, R0, #1 \n" 
  64         "    STR     R0, [R4, #0xC] \n" 
  65         "    MOV     R0, #6 \n" 
  66         "    STR     R0, [R4, #0x44] \n" 
  67         "    B       loc_FF186830 \n" 
  68         "loc_FF186810:\n" // jump table entry 11
  69         "    STR     R5, [R4, #0x40] \n" 
  70         "    STR     R5, [R4, #0x30] \n" 
  71         "    STR     R6, [R4, #0xD8] \n" 
  72         "    STR     R7, [R4, #0xF4] \n" 
  73         "    LDR     R0, [R4, #0xC] \n" 
  74         "    ADD     R0, R0, #1 \n" 
  75         "    STR     R0, [R4, #0xC] \n" 
  76         "    STR     R8, [R4, #0x44] \n" 
  77         "loc_FF186830:\n"
  78         "    LDR     R2, =0xFF184A60 \n" 
  79         "    LDR     R1, =0xB1A28 \n" 
  80         "    LDR     R0, =0xFF184B74 \n" 
  81         "    BL      sub_FF045B24 \n" 
  82         "    B       loc_FF1868A4 \n" 
  83         "loc_FF186844:\n" // jump table entry 0
  84 //begin patch
  85         //"    BL      sub_FF185D98 \n" // original
  86         "    BL     movie_time\n"     //patched
  87 "label_A:\n"
  88 //end patch
  89         "    B       loc_FF1868A4 \n" 
  90         "loc_FF18684C:\n" // jump table entry 6
  91         "    LDR     R1, [R4, #0xF4] \n" 
  92         "    BLX     R1 \n" 
  93         "    LDR     R0, =0x6D48-4 \n" // added - found at FF1866A4
  94         "    BL      set_quality \n" // added
  95         "    B       loc_FF1868A4 \n" 
  96         "loc_FF186858:\n" // jump table entry 8
  97         "    LDR     R1, [R0, #0x18] \n" 
  98         "    LDR     R0, [R0, #4] \n" 
  99         "    BL      sub_FF2E4780 \n" 
 100         "    B       loc_FF1868A4 \n" 
 101         "loc_FF186868:\n" // jump table entry 1
 102         "    LDR     R0, [R4, #0x44] \n" 
 103         "    CMP     R0, #5 \n" 
 104         "    STRNE   R8, [R4, #0x34] \n" 
 105         "    B       loc_FF1868A4 \n" 
 106         "loc_FF186878:\n" // jump table entry 2
 107         "    BL      sub_FF18512C \n" 
 108         "    B       loc_FF1868A4 \n" 
 109         "loc_FF186880:\n" // jump table entry 3
 110         "    BL      sub_FF184E24 \n" 
 111         "    B       loc_FF1868A4 \n" 
 112         "loc_FF186888:\n" // jump table entry 4
 113         "    BL      sub_FF184BCC \n" 
 114         "    B       loc_FF1868A4 \n" 
 115         "loc_FF186890:\n" // jump table entry 5
 116         "    BL      sub_FF1847EC \n" 
 117         "    B       loc_FF1868A4 \n" 
 118         "loc_FF186898:\n" // jump table entry 7
 119         "    BL      sub_FF18476C \n" 
 120         "    B       loc_FF1868A4 \n" 
 121         "loc_FF1868A0:\n" // jump table entry 10
 122         "    BL      sub_FF186E1C \n" 
 123         "loc_FF1868A4:\n" // jump table default entry & 9
 124         "    LDR     R1, [SP, #4] \n" 
 125         "    LDR     R3, =0xFF1844C0 \n" // **"MovieRecorder.c"
 126         "    STR     R5, [R1] \n" 
 127         "    STR     R9, [SP] \n" 
 128         "    LDR     R0, [R4, #0x28] \n" 
 129         "    MOV     R2, R10 \n" 
 130         "    BL      sub_FF02BC8C \n" 
 131         "    B       loc_FF186768 \n" 
 132     );
 133 }
 134 
 135 void __attribute__((naked,noinline)) movie_time() {
 136     if( (int)conf.ext_video_time == 1 ) {
 137         asm volatile (
 138           "BL     sub_FF185D98_my\n"
 139           "B      label_A\n"
 140         );
 141     } else {
 142         asm volatile (
 143           "BL     sub_FF185D98\n"
 144           "B      label_A\n"
 145         );
 146     }
 147 }
 148 /*----------------------------------------------------------------------
 149         sub_FF185D98_my()
 150 -----------------------------------------------------------------------*/
 151 void __attribute__((naked,noinline)) sub_FF185D98_my() {
 152 // FF185D98
 153     asm volatile (
 154         "    STMFD   SP!, {R0-R8,LR} \n" 
 155         "    LDR     R6, =0x6CC0 \n" 
 156         "    MOV     R0, #0 \n" 
 157         "    STR     R0, [R6, #0x34] \n" 
 158         "    STR     R0, [R6, #0x38] \n" 
 159         "    ADD     R0, R6, #0 \n" 
 160         "    LDR     R0, [R0, #0x5C] \n" 
 161         "    LDRH    R1, [R6, #6] \n" 
 162         "    MOV     R3, #0x3E8 \n" 
 163         "    MUL     R0, R3, R0 \n" 
 164         "    CMP     R1, #0 \n" 
 165         "    MOV     R2, #1 \n" 
 166         "    BNE     loc_FF185DDC \n" 
 167         "    LDR     R1, [R6, #0x90] \n" 
 168         "    CMP     R1, #0 \n" 
 169         "    BNE     loc_FF185DEC \n" 
 170         "    B       loc_FF185DE4 \n" 
 171         "loc_FF185DDC:\n"
 172         "    CMP     R1, #3 \n" 
 173         "    BNE     loc_FF185DEC \n" 
 174         "loc_FF185DE4:\n"
 175         "    STR     R2, [R6, #0x48] \n" 
 176         "    B       loc_FF185DF8 \n" 
 177         "loc_FF185DEC:\n"
 178         "    MOV     R1, #0x3E8 \n" 
 179         "    BL      sub_FF3A2F90 \n" 
 180         "    STR     R0, [R6, #0x48] \n" 
 181         "loc_FF185DF8:\n"
 182         "    LDR     R4, =0xB1A5C \n" 
 183         "    MOV     R7, #2 \n" 
 184         "    LDR     R0, [R4, #8] \n" 
 185         "    CMP     R0, #0 \n" 
 186         "    BEQ     loc_FF185E60 \n" 
 187         "    LDR     R0, [R6, #0x58] \n" 
 188         "    MOV     R1, #4 \n" 
 189         "    CMP     R0, #0x18 \n" 
 190         "    BEQ     loc_FF185FF4 \n" 
 191         "    BGT     loc_FF185E3C \n" 
 192         "    CMP     R0, #0xA \n" 
 193         "    CMPNE   R0, #0xF \n" 
 194         "    STREQ   R7, [R4, #0x14] \n" 
 195         "    BEQ     loc_FF185E60 \n" 
 196         "    CMP     R0, #0x14 \n" 
 197         "    BNE     loc_FF185E54 \n" 
 198         "    B       loc_FF185FF4 \n" 
 199         "loc_FF185E3C:\n"
 200         "    CMP     R0, #0x1E \n" 
 201         "    BEQ     loc_FF185FF4 \n" 
 202         "    CMP     R0, #0x3C \n" 
 203         "    MOVEQ   R0, #8 \n" 
 204         "    STREQ   R0, [R4, #0x14] \n" 
 205         "    BEQ     loc_FF185E60 \n" 
 206         "loc_FF185E54:\n"
 207         "    LDR     R1, =0x7D9 \n" 
 208         "    LDR     R0, =0xFF1844C0 \n" // **"MovieRecorder.c"
 209         //"    BL      sub_FF00EDBC \n" // original
 210         "    BL      _DebugAssert \n" // patched
 211         "loc_FF185E60:\n"
 212         "    LDR     R2, =0x6CC2 \n" 
 213         "    LDR     R0, [R6, #0xB8] \n" 
 214         "    MOV     R3, #2 \n" 
 215         "    MOV     R1, #0xAA \n" 
 216         "    BL      sub_FF08A794 \n" 
 217         "    LDR     R2, =0x6CC4 \n" 
 218         "    LDR     R0, [R6, #0xB8] \n" 
 219         "    MOV     R3, #2 \n" 
 220         "    MOV     R1, #0xA9 \n" 
 221         "    BL      sub_FF08A794 \n" 
 222         "    LDR     R2, =0x6D10 \n" 
 223         "    LDR     R0, [R6, #0xB8] \n" 
 224         "    MOV     R3, #4 \n" 
 225         "    MOV     R1, #0xA2 \n" 
 226         "    BL      sub_FF08A794 \n" 
 227         "    LDR     R2, =0x6D14 \n" 
 228         "    LDR     R0, [R6, #0xB8] \n" 
 229         "    MOV     R3, #4 \n" 
 230         "    MOV     R1, #0xA3 \n" 
 231         "    BL      sub_FF08A794 \n" 
 232         "    LDR     R0, [R6, #0x90] \n" 
 233         "    CMP     R0, #0 \n" 
 234         "    LDRNE   R2, =0x6DC0 \n" 
 235         "    MOVNE   R1, #0 \n" 
 236         "    MOVNE   R0, #0xD \n" 
 237         "    BLNE    sub_FF084970 \n" 
 238         "    LDR     R0, [R6, #0x4C] \n" 
 239         "    LDR     R5, =0x6DC0 \n" 
 240         "    LDR     R8, =0xB1A44 \n" 
 241         "    CMP     R0, #2 \n" 
 242         "    CMPNE   R0, #3 \n" 
 243         "    BNE     loc_FF185F5C \n" 
 244         "    LDR     R0, [R6, #0x90] \n" 
 245         "    CMP     R0, #0 \n" 
 246         "    LDRNE   R0, =0x443FC000 \n" 
 247         "    STRNE   R0, [R5] \n" 
 248         "    BNE     loc_FF185F5C \n" 
 249         "    LDR     R0, =0x460B8600 \n" 
 250         "    LDR     R1, =0x10959E0 \n" 
 251         "    STR     R0, [R5] \n" 
 252         "    STR     R1, [R5, #4] \n" 
 253         "    LDMIA   R8, {R1,R2} \n" 
 254         "    STR     R0, [R6, #0xA0] \n" 
 255         "    MUL     R1, R2, R1 \n" 
 256         "    MOV     R2, #0 \n" 
 257         "    MOV     R3, R1, LSL #1 \n" 
 258         "    ADD     R1, R0, R3 \n" 
 259         "    STR     R3, [R6, #0x9C] \n" 
 260         "    STR     R1, [R6, #0xA4] \n" 
 261         "    STMEA   SP, {R1-R3} \n" 
 262         "    MOV     R3, R2 \n" 
 263         "    MOV     R2, #9 \n" 
 264         "    MOV     R1, #5 \n" 
 265         "    MOV     R0, #0x10 \n" 
 266         "    BL      sub_FF29930C \n" 
 267         "    LDR     R1, [R5] \n" 
 268         "    LDR     R0, [R6, #0x9C] \n" 
 269         "    ADD     R1, R1, R0, LSL #1 \n" 
 270         "    STR     R1, [R5] \n" 
 271         "    LDR     R1, [R5, #4] \n" 
 272         "    RSB     R0, R0, #0 \n" 
 273         "    ADD     R0, R1, R0, LSL #1 \n" 
 274         "    STR     R0, [R5, #4] \n" 
 275         "loc_FF185F5C:\n"
 276         "    LDR     R3, =0xFF185D64 \n" 
 277         "    LDMIA   R5, {R0,R1} \n" 
 278         "    STR     R3, [SP] \n" 
 279         "    LDR     R3, =0xB1A5C \n" 
 280         "    SUB     R2, R3, #0x18 \n" 
 281         //"    BL      sub_FF2E321C \n" // original
 282         "    BL      sub_FF2E321C_my \n" // patched
 283         "    LDR     R3, [R6, #0xB8] \n" 
 284         "    STR     R3, [SP] \n" 
 285         "    LDR     R0, [R6, #0x90] \n" 
 286         "    LDRD    R2, [R6, #0xF8] \n" 
 287         "    BL      sub_FF2E3658 \n" 
 288         "    LDR     R0, [R6, #0x64] \n" 
 289         "    LDR     R3, =0x6D48 \n" 
 290         "    AND     R1, R0, #0xFF \n" 
 291         "    LDR     R0, [R8] \n" 
 292         "    SUB     R2, R3, #4 \n" 
 293         "    BL      sub_FF2E11B8 \n" 
 294         "    LDRH    R0, [R6, #6] \n" 
 295         "    CMP     R0, #2 \n" 
 296         "    LDREQ   R0, =0xFF185A3C \n" 
 297         "    STREQ   R0, [R6, #0xF4] \n" 
 298         "    LDR     R0, [R6, #0x90] \n" 
 299         "    CMP     R0, #0 \n" 
 300         "    LDREQ   R1, =0xFF185670 \n" 
 301         "    STREQ   R1, [R6, #0xF4] \n" 
 302         "    LDR     R2, [R6, #0xC] \n" 
 303         "    LDR     R1, =0xFF3EC280 \n" 
 304         "    CMP     R2, #2 \n" 
 305         "    BNE     sub_FF185FFC \n" 
 306         "    LDR     R0, [R6, #0x4C] \n" 
 307         "    ADD     R0, R1, R0, LSL #3 \n" 
 308         "    LDR     R1, [R8, #0xC] \n" 
 309         "    LDR     R0, [R0, R1, LSL #2] \n" 
 310         "    BL      sub_FF29F37C \n" 
 311         "    LDR     R0, =0xFF185594 \n" 
 312         "    MOV     R1, #0 \n" 
 313         "    BL      sub_FF29F878 \n" 
 314         "    B       sub_FF186038 \n" 
 315         "loc_FF185FF4:\n"
 316         "    STR     R1, [R4, #0x14] \n" 
 317         "    B       loc_FF185E60 \n" 
 318     );
 319 }
 320 
 321 /*----------------------------------------------------------------------
 322         sub_FF2E321C_my()
 323 -----------------------------------------------------------------------*/
 324 void __attribute__((naked,noinline)) sub_FF2E321C_my() {
 325 // FF2E321C
 326     asm volatile (
 327         "    STMFD   SP!, {R0-R12,LR} \n" 
 328         "    MOV     R9, R0 \n" 
 329         "    LDR     R0, [R2, #0x10] \n" 
 330         "    LDR     R8, [SP, #0x38] \n" 
 331         "    CMP     R0, #0 \n" 
 332         "    LDREQ   R1, =0x346 \n" 
 333         "    LDREQ   R0, =0xFF2E20A0 \n" // **"MovWriter.c"
 334         "    MOV     R5, #0 \n" 
 335         "    MOV     R4, R2 \n" 
 336         "    MOV     R10, R3 \n" 
 337         "    MOV     R7, R5 \n" 
 338         "    BLEQ    sub_FF00EDBC \n" 
 339         "    LDR     R6, =0xC318 \n" 
 340         "    LDR     R0, [R4] \n" 
 341         "    MOV     R11, #0x1E \n" 
 342         "    STR     R0, [R6, #0xD0] \n" 
 343         "    LDR     R0, [R4, #4] \n" 
 344         "    STR     R0, [R6, #0xD4] \n" 
 345         "    LDR     R0, [R4, #0x10] \n" 
 346         "    STR     R0, [R6, #0xE0] \n" 
 347         "    LDR     R1, [R4, #8] \n" 
 348         "    LDR     R0, =0x7530 \n" 
 349         "    CMP     R1, #0xB \n" 
 350         "    ADDCC   PC, PC, R1, LSL #2 \n" 
 351         "    B       loc_FF2E3308 \n" 
 352         "    B       loc_FF2E32BC \n" 
 353         "    B       loc_FF2E32AC \n" 
 354         "    B       loc_FF2E32E4 \n" 
 355         "    B       loc_FF2E32F8 \n" 
 356         "    B       loc_FF2E3308 \n" 
 357         "    B       loc_FF2E3308 \n" 
 358         "    B       loc_FF2E3308 \n" 
 359         "    B       loc_FF2E3308 \n" 
 360         "    B       loc_FF2E32DC \n" 
 361         "    B       loc_FF2E32D4 \n" 
 362         "    B       loc_FF2E32C4 \n" 
 363         "loc_FF2E32AC:\n" // jump table entry 1
 364         "    LDR     R7, =0x5DC0 \n" 
 365         "    MOV     R0, #0x18 \n" 
 366         "    STR     R7, [R6, #0x12C] \n" 
 367         "    B       loc_FF2E32F0 \n" 
 368         "loc_FF2E32BC:\n" // jump table entry 0
 369         "    MOV     R7, R0 \n" 
 370         "    B       loc_FF2E32C8 \n" 
 371         "loc_FF2E32C4:\n" // jump table entry 10
 372         "    LDR     R7, =0x5DC \n" 
 373         "loc_FF2E32C8:\n"
 374         "    STR     R0, [R6, #0x12C] \n" 
 375         "    STR     R11, [R6, #0xD8] \n" 
 376         "    B       loc_FF2E3314 \n" 
 377         "loc_FF2E32D4:\n" // jump table entry 9
 378         "    LDR     R7, =0xBB8 \n" 
 379         "    B       loc_FF2E32C8 \n" 
 380         "loc_FF2E32DC:\n" // jump table entry 8
 381         "    LDR     R7, =0x1770 \n" 
 382         "    B       loc_FF2E32C8 \n" 
 383         "loc_FF2E32E4:\n" // jump table entry 2
 384         "    LDR     R7, =0x57600000 \n" // 2hrs, orignal 0x3A980
 385         "    STR     R0, [R6, #0x12C] \n" 
 386         "    MOV     R0, #240 \n" // original 0xF0
 387         "loc_FF2E32F0:\n"
 388         "    STR     R0, [R6, #0xD8] \n" 
 389         "    B       loc_FF2E3314 \n" 
 390         "loc_FF2E32F8:\n" // jump table entry 3
 391         "    STR     R0, [R6, #0x12C] \n" 
 392         "    LDR     R7, =0x28800000 \n" // 2hrs, original 0x1D4C0
 393         "    MOV     R0, #0x78 \n" // 120 fps (0x78 = dec 120)
 394         "    B       loc_FF2E32F0 \n" 
 395         "loc_FF2E3308:\n" // jump table default entry & 4-7
 396         "    LDR     R1, =0x377 \n" 
 397         "    LDR     R0, =0xFF2E20A0 \n" // **"MovWriter.c"
 398         //"    BL      sub_FF00EDBC \n" // original
 399         "    BL      _DebugAssert \n" // patched
 400         "loc_FF2E3314:\n"
 401         "    LDR     R0, [R6, #0xD8] \n" 
 402         "    LDR     R1, =7200 \n" // 2hrs, original 0xE0F
 403         "    MOV     R0, R0, LSR #1 \n" 
 404         "    STR     R0, [R6, #0xDC] \n" 
 405         "    LDR     R0, [R10] \n" 
 406         "    STR     R0, [R6, #0xE4] \n" 
 407         "    LDRH    R0, [R10, #0x10] \n" 
 408         "    STR     R0, [R6, #0xE8] \n" 
 409         "    LDR     R0, [R10, #4] \n" 
 410         "    STRH    R0, [R6, #2] \n" 
 411         "    LDR     R0, [R10, #8] \n" 
 412         "    STRH    R0, [R6, #4] \n" 
 413         "    LDR     R0, [R10, #0x14] \n" 
 414         "    STR     R0, [R6, #0xEC] \n" 
 415         "    STR     R8, [R6, #0x128] \n" 
 416         "    LDR     R0, [R6, #0xD0] \n" 
 417         "    CMP     R0, #0x140 \n" 
 418         "    MOVEQ   R0, #0x20000 \n" 
 419         "    MOVEQ   R5, #1 \n" 
 420         "    STREQ   R0, [R6, #0xAC] \n" 
 421         "    BEQ     loc_FF2E33A8 \n" 
 422         "    CMP     R0, #0x280 \n" 
 423         "    LDREQ   R0, =0x7A760 \n" 
 424         "    MOVEQ   R5, #2 \n" 
 425         "    STREQ   R0, [R6, #0xAC] \n" 
 426         "    BEQ     loc_FF2E33A8 \n" 
 427         "    CMP     R0, #0x500 \n" 
 428         "    LDREQ   R0, =0x11DA50 \n" 
 429         "    LDR     R1, =7200 \n" // 2hrs, original 0x257
 430         "    MOVEQ   R5, #4 \n" 
 431         "    STREQ   R0, [R6, #0xAC] \n" 
 432         "    BEQ     loc_FF2E33A8 \n" 
 433         "    CMP     R0, #0x780 \n" 
 434         "    BNE     loc_FF2E33B0 \n" 
 435         "    MOV     R0, #2097152 \n" // 10mins, original 0x200000
 436         "    MOV     R5, #5 \n" 
 437         "    STR     R0, [R6, #0xAC] \n" 
 438         "loc_FF2E33A8:\n"
 439         "    STR     R1, [R6, #0x4C] \n" 
 440         "    B       loc_FF2E33BC \n" 
 441         "loc_FF2E33B0:\n"
 442         "    LDR     R1, =0x39F \n" 
 443         "    LDR     R0, =0xFF2E20A0 \n" // **"MovWriter.c"
 444         //"    BL      sub_FF00EDBC \n" // original
 445         "    BL      _DebugAssert \n" // patched
 446         "loc_FF2E33BC:\n"
 447         "    LDR     R0, [R6, #0x4C] \n" 
 448         "    LDR     R1, =0x138D \n" 
 449         "    MUL     R0, R7, R0 \n" 
 450         "    BL      sub_FF3A2F90 \n" 
 451         "    ADD     R0, R0, #1 \n" 
 452         "    ADD     R0, R0, R0, LSL #2 \n" 
 453         "    STR     R0, [R6, #0x48] \n" 
 454         "    LDR     R8, [R4, #8] \n" 
 455         "    CMP     R8, #0xA \n" 
 456         "    CMPNE   R8, #9 \n" 
 457         "    CMPNE   R8, #8 \n" 
 458         "    BNE     loc_FF2E3400 \n" 
 459         "    LDR     R1, =0x3E9 \n" 
 460         "    MUL     R0, R1, R0 \n" 
 461         "    MOV     R1, R7 \n" 
 462         "    BL      sub_FF3A2F90 \n" 
 463         "    STR     R0, [R6, #0x4C] \n" 
 464         "loc_FF2E3400:\n"
 465         "    CMP     R8, #2 \n" 
 466         "    CMPNE   R8, #3 \n" 
 467         "    BNE     loc_FF2E3438 \n" 
 468         "    RSB     R0, R7, R7, LSL #4 \n" 
 469         "    LDR     R1, =0x3E9 \n" 
 470         "    MOV     R0, R0, LSL #1 \n" 
 471         "    STR     R11, [R6, #0x4C] \n" 
 472         "    BL      sub_FF3A2F90 \n" 
 473         "    LDR     R1, [R6, #0xE0] \n" 
 474         "    MOV     R7, R1 \n" 
 475         "    BL      sub_FF3A2F90 \n" 
 476         "    ADD     R0, R0, #1 \n" 
 477         "    MUL     R0, R7, R0 \n" 
 478         "    STR     R0, [R6, #0x48] \n" 
 479         "loc_FF2E3438:\n"
 480         "    LDR     R0, [R4, #0xC] \n" 
 481         "    LDR     R7, [R10, #0xC] \n" 
 482         "    ADDS    R1, R0, #0 \n" 
 483         "    MOV     R0, R7, LSR #1 \n" 
 484         "    STR     R7, [R6, #0x94] \n" 
 485         "    STR     R0, [R6, #0x98] \n" 
 486         "    ADD     R0, R9, #3 \n" 
 487         "    BIC     R0, R0, #3 \n" 
 488         "    STR     R0, [R6, #0xF4] \n" 
 489         "    LDR     R2, [R6, #0x48] \n" 
 490         "    MOVNE   R1, #1 \n" 
 491         "    MOV     R2, R2, LSL #2 \n" 
 492         "    ADD     R3, R0, R2 \n" 
 493         "    STR     R3, [R6, #0xF8] \n" 
 494         "    LDRH    R12, [R6, #4] \n" 
 495         "    LDR     R0, [SP, #4] \n" 
 496         "    ADD     R2, R2, R3 \n" 
 497         "    CMP     R12, #0 \n" 
 498         "    ADD     R0, R0, R9 \n" 
 499         "    BEQ     loc_FF2E35B8 \n" 
 500         "    STR     R2, [R6, #0xFC] \n" 
 501         "    LDR     R3, [R6, #0x4C] \n" 
 502         "    LDR     R9, =0x15E4BC \n" 
 503         "    ADD     R2, R2, R3, LSL #3 \n" 
 504         "    ADD     R2, R2, #0x1F \n" 
 505         "    BIC     R2, R2, #0x1F \n" 
 506         "    STR     R2, [R6, #0x100] \n" 
 507         "    LDR     R3, [R6, #0xAC] \n" 
 508         "    LDR     R11, =0xC498 \n" 
 509         "    ADD     R2, R2, R3 \n" 
 510         "    ADD     R3, R2, #0x100000 \n" 
 511         "    STR     R2, [R6, #0x78] \n" 
 512         "    SUB     R0, R0, R3 \n" 
 513         "    RSB     R2, R7, #0 \n" 
 514         "    ADD     R0, R0, R2, LSL #1 \n" 
 515         "    MOV     R0, R0, LSR #0xF \n" 
 516         "    MOV     R0, R0, LSL #0xF \n" 
 517         "    STR     R3, [R6, #0x104] \n" 
 518         "    ADD     R8, R3, R0 \n" 
 519         "    STR     R0, [R6, #0x110] \n" 
 520         "    STR     R8, [R6, #0x108] \n" 
 521         "    MOV     R2, #0 \n" 
 522         "    ADD     R10, R9, #0x10 \n" 
 523         "    STR     R8, [R6, #0x10C] \n" 
 524         "loc_FF2E34E8:\n"
 525         "    MLA     R0, R2, R7, R8 \n" 
 526         "    ADD     R12, R9, R2, LSL #3 \n" 
 527         "    ADD     R0, R0, #3 \n" 
 528         "    BIC     R0, R0, #3 \n" 
 529         "    STR     R0, [R11, R2, LSL #2] \n" 
 530         "    MOV     R0, #0 \n" 
 531         "    ADD     R6, R10, R2, LSL #3 \n" 
 532         "loc_FF2E3504:\n"
 533         "    STR     R3, [R12, R0, LSL #2] \n" 
 534         "    STR     R3, [R6, R0, LSL #2] \n" 
 535         "    ADD     R0, R0, #1 \n" 
 536         "    CMP     R0, #2 \n" 
 537         "    BLT     loc_FF2E3504 \n" 
 538         "    ADD     R2, R2, #1 \n" 
 539         "    CMP     R2, #2 \n" 
 540         "    BLT     loc_FF2E34E8 \n" 
 541         "    LDRH    R3, [R4, #0x14] \n" 
 542         "    LDR     R2, [R4, #8] \n" 
 543         "    MOV     R0, R5 \n" 
 544         "    BL      sub_FF0D5C48 \n" 
 545         "    LDR     R1, =0xC318 \n" 
 546         "    LDR     R2, [R1, #0x94] \n" 
 547         "    ADD     R0, R0, R2 \n" 
 548         "    STR     R0, [R1, #0x8C] \n" 
 549         "    LDMFD   SP!, {R0-R12,PC} \n" 
 550         
 551         "loc_FF2E35B8:\n"
 552         "    ADD     R2, R2, #0x1F \n" 
 553         "    BIC     R2, R2, #0x1F \n" 
 554         "    STR     R2, [R6, #0x100] \n" 
 555         "    LDR     R3, [R6, #0xAC] \n" 
 556         "    ADD     R2, R2, R3 \n" 
 557         "    SUB     R0, R0, R2 \n" 
 558         "    MOV     R0, R0, LSR #0xF \n" 
 559         "    MOV     R0, R0, LSL #0xF \n" 
 560         "    STR     R2, [R6, #0x104] \n" 
 561         "    STR     R0, [R6, #0x110] \n" 
 562         "    ADD     R0, R0, R2 \n" 
 563         "    STR     R0, [R6, #0x108] \n" 
 564         "    LDRH    R3, [R4, #0x14] \n" 
 565         "    MOV     R2, R8 \n" 
 566         "    MOV     R0, R5 \n" 
 567         "    BL      sub_FF0D5C48 \n" 
 568         "    STR     R0, [R6, #0x8C] \n" 
 569         "    LDMFD   SP!, {R0-R12,PC} \n" 
 570     );
 571 }

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