1 #include "conf.h" 2 3 void change_video_tables(__attribute__ ((unused))int a, __attribute__ ((unused))int b){} 4 5 void set_quality(int *x){ // -17 highest; +12 lowest 6 if (conf.video_mode) 7 *x=12-((conf.video_quality-1)*(12+17)/(99-1)); 8 } 9 10 //** movie_record_task @ 0xFF963268 11 12 void __attribute__((naked,noinline)) movie_record_task( ) { 13 asm volatile ( 14 "STMFD SP!, {R2-R10,LR} \n" 15 "LDR R6, =0xFF962700 \n" 16 "LDR R7, =0xFF962C2C \n" //This function was used to take values for set_quality --> 17 "LDR R4, =0x64E0 \n" 18 "LDR R9, =0x69B \n" 19 "LDR R10, =0x2710 \n" 20 "MOV R8, #1 \n" 21 "MOV R5, #0 \n" 22 "loc_FF963288:\n" 23 "LDR R0, [R4, #0x24] \n" 24 "MOV R2, #0 \n" 25 "ADD R1, SP, #4 \n" 26 "BL sub_003F7218 \n" 27 "LDR R0, [R4, #0x2C] \n" 28 "CMP R0, #0 \n" 29 "LDRNE R0, [R4, #0xC] \n" 30 "CMPNE R0, #2 \n" 31 "LDRNE R0, [R4, #0x44] \n" 32 "CMPNE R0, #6 \n" 33 "BNE loc_FF9633AC \n" 34 "LDR R0, [SP, #4] \n" 35 "LDR R1, [R0] \n" 36 "SUB R1, R1, #2 \n" 37 "CMP R1, #0xB \n" 38 "ADDCC PC, PC, R1, LSL #2 \n" 39 "B loc_FF9633AC \n" 40 "B loc_FF96335C \n" //(01) 41 "B loc_FF963380 \n" //(02) 42 "B loc_FF963390 \n" //(03) 43 "B loc_FF963398 \n" //(04) 44 "B loc_FF963364 \n" //(05) 45 "B loc_FF9633A0 \n" //(06) 46 "B loc_FF963370 \n" //(07) 47 "B loc_FF9633AC \n" //(08) 48 "B loc_FF9633A8 \n" //(09) 49 "B loc_FF963328 \n" //(10) 50 "B loc_FF9632F8 \n" //(11) 51 "loc_FF9632F8:\n" //Jump Table entry 11 52 "STR R5, [R4, #0x40] \n" 53 "STR R5, [R4, #0x30] \n" 54 "STR R5, [R4, #0x34] \n" 55 "STRH R5, [R4, #6] \n" 56 "STR R6, [R4, #0xB4] \n" 57 "STR R7, [R4, #0xD0] \n" 58 "LDR R0, [R4, #0xC] \n" 59 "ADD R0, R0, #1 \n" 60 "STR R0, [R4, #0xC] \n" 61 "MOV R0, #6 \n" 62 "STR R0, [R4, #0x44] \n" 63 "B loc_FF963348 \n" 64 "loc_FF963328:\n" //Jump Table entry 10 65 "STR R5, [R4, #0x40] \n" 66 "STR R5, [R4, #0x30] \n" 67 "STR R6, [R4, #0xB4] \n" 68 "STR R7, [R4, #0xD0] \n" 69 "LDR R0, [R4, #0xC] \n" 70 "ADD R0, R0, #1 \n" 71 "STR R0, [R4, #0xC] \n" 72 "STR R8, [R4, #0x44] \n" 73 "loc_FF963348:\n" 74 "LDR R2, =0xFF961E60 \n" 75 "LDR R1, =0xABA5C \n" 76 "LDR R0, =0xFF961F74 \n" 77 "BL sub_FF84AEF4 \n" 78 "B loc_FF9633AC \n" 79 "loc_FF96335C:\n" //Jump Table entry 01 80 "BL unlock_optical_zoom \n" //added 81 "BL sub_FF962860 \n" 82 "B loc_FF9633AC \n" 83 "loc_FF963364:\n" //Jump Table entry 05 84 "LDR R1, [R4, #0xD0] \n" 85 "BLX R1 \n" 86 //begin patch 87 "LDR R0, =0x6564 \n" // added, 0x6568-0x4 taken from ""loc_FF963150:" see commented function below. 88 "BL set_quality \n" // added 89 //end patch 90 "B loc_FF9633AC \n" 91 "loc_FF963370:\n" //Jump Table entry 07 92 "LDR R1, [R0, #0x18] \n" 93 "LDR R0, [R0, #4] \n" 94 "BL sub_FFA82004 \n" 95 "B loc_FF9633AC \n" 96 "loc_FF963380:\n" //Jump Table entry 02 97 "LDR R0, [R4, #0x44] \n" 98 "CMP R0, #5 \n" 99 "STRNE R8, [R4, #0x34] \n" 100 "B loc_FF9633AC \n" 101 "loc_FF963390:\n" //Jump Table entry 03 102 "BL sub_FF962360 \n" 103 "B loc_FF9633AC \n" 104 "loc_FF963398:\n" //Jump Table entry 04 105 "BL sub_FF961FC0 \n" 106 "B loc_FF9633AC \n" 107 "loc_FF9633A0:\n" //Jump Table entry 06 108 "BL sub_FF961DEC \n" 109 "B loc_FF9633AC \n" 110 "loc_FF9633A8:\n" //Jump Table entry 09 111 "BL sub_FF963884 \n" 112 "loc_FF9633AC:\n" 113 "LDR R1, [SP, #4] \n" 114 "LDR R3, =0xFF961B4C \n" 115 "STR R5, [R1] \n" 116 "STR R9, [SP] \n" 117 "LDR R0, [R4, #0x28] \n" 118 "MOV R2, R10 \n" 119 "BL sub_003F7B90 \n" //RAM 120 "B loc_FF963288 \n" 121 ); 122 } 123 124 //This function was used to take values for set_quality 125 //** sub_FF9562C2C_my @ 0xFF962C2C 126 /* 127 void __attribute__((naked,noinline)) sub_FF962C2C_my() { 128 asm volatile ( 129 "STMFD SP!, {R4-R11,LR} \n" 130 "SUB SP, SP, #0x64 \n" 131 "MOV R9, #0 \n" 132 "LDR R6, =0x64E0 \n" 133 "STR R9, [SP, #0x54] \n" 134 "STR R9, [SP, #0x4C] \n" 135 "STR R9, [R6, #0xB8] \n" 136 "STR R9, [R6, #0xBC] \n" 137 "STR R9, [R6, #0xC0] \n" 138 "STR R9, [R6, #0xC4] \n" 139 "MOV R4, R0 \n" 140 "STR R9, [R6, #0xC8] \n" 141 "LDR R0, [R6, #0x44] \n" 142 "MOV R11, #4 \n" 143 "CMP R0, #3 \n" 144 "STREQ R11, [R6, #0x44] \n" 145 "LDR R0, [R6, #0xB4] \n" 146 "MOV R8, R9 \n" 147 "MOV R5, #1 \n" 148 "MOV R7, R9 \n" 149 "BLX R0 \n" 150 "LDR R0, [R6, #0x44] \n" 151 "CMP R0, #6 \n" 152 "BEQ loc_FF962CA0 \n" 153 "LDR R1, [R6, #0xC] \n" 154 "CMP R1, #2 \n" 155 "BNE loc_FF962CC8 \n" 156 "CMP R0, #5 \n" 157 "BEQ loc_FF962CD8 \n" 158 "loc_FF962CA0:\n" 159 "LDR R2, =0xFF962B00 \n" 160 "LDR R1, =0xFF962B64 \n" 161 "LDR R0, =0xFF962BC8 \n" 162 "MOV R7, #1 \n" 163 "ADD R3, SP, #0x30 \n" 164 "BL sub_FF84BA3C \n" 165 "LDR R0, [R6, #0x44] \n" 166 "CMP R0, #4 \n" 167 "MOVNE R5, #0 \n" 168 "B loc_FF962CE8 \n" 169 "loc_FF962CC8:\n" 170 "CMP R0, #4 \n" 171 "BEQ loc_FF962CE8 \n" 172 "CMP R1, #2 \n" 173 "BNE loc_FF962CE0 \n" 174 "loc_FF962CD8:\n" 175 "MOV R0, #0 \n" 176 "BL sub_FF84BAA8 \n" 177 "loc_FF962CE0:\n" 178 "ADD SP, SP, #0x64 \n" 179 "LDMFD SP!, {R4-R11,PC} \n" 180 "loc_FF962CE8:\n" 181 "LDRH R0, [R6, #6] \n" 182 "CMP R0, #3 \n" 183 "BNE loc_FF962D1C \n" 184 "LDR R0, [R6, #0xCC] \n" 185 "CMP R0, #0 \n" 186 "LDREQ R1, =0x8E8 \n" 187 "LDREQ R0, =0xFF961B4C \n" 188 "BLEQ _DebugAssert \n" 189 "LDR R0, [R6, #0x6C] \n" 190 "LDR R1, [R6, #0xCC] \n" 191 "BL sub_003FC934 \n" 192 "CMP R1, #0 \n" 193 "MOVNE R5, #0 \n" 194 "loc_FF962D1C:\n" 195 "LDR R0, [R6, #0x44] \n" 196 "CMP R0, #6 \n" 197 "CMPNE R0, #1 \n" 198 "CMPNE R0, #3 \n" 199 "BNE loc_FF962D60 \n" 200 "CMP R7, #1 \n" 201 "CMPEQ R5, #0 \n" 202 "BNE loc_FF962D60 \n" 203 "BL sub_FF84BA60 \n" 204 "LDR R0, [R6, #0x18] \n" 205 "MOV R1, #0x3E8 \n" 206 "BL _TakeSemaphore \n" 207 "CMP R0, #9 \n" 208 "BNE loc_FF9631CC \n" 209 "MOV R0, #0x90000 \n" 210 "BL sub_FF835FB4 \n" 211 "B loc_FF962CE0 \n" 212 "loc_FF962D60:\n" 213 "CMP R5, #1 \n" 214 "MOV R10, #1 \n" 215 "BNE loc_FF962D88 \n" 216 "ADD R3, SP, #0x4C \n" 217 "ADD R2, SP, #0x50 \n" 218 "ADD R1, SP, #0x54 \n" 219 "ADD R0, SP, #0x58 \n" 220 "BL sub_FFA820DC \n" 221 "MOVS R9, R0 \n" 222 "BNE loc_FF962DA4 \n" 223 "loc_FF962D88:\n" 224 "LDR R0, [R6, #0x34] \n" 225 "CMP R0, #1 \n" 226 "BNE loc_FF962F20 \n" 227 "LDR R0, [R6, #0x6C] \n" 228 "LDR R1, [R6, #0x48] \n" 229 "CMP R0, R1 \n" 230 "BCC loc_FF962F20 \n" 231 "loc_FF962DA4:\n" 232 "CMP R9, #0x80000001 \n" 233 "STREQ R11, [R6, #0x70] \n" 234 "BEQ loc_FF962DDC \n" 235 "CMP R9, #0x80000003 \n" 236 "STREQ R10, [R6, #0x70] \n" 237 "BEQ loc_FF962DDC \n" 238 "CMP R9, #0x80000005 \n" 239 "MOVEQ R0, #2 \n" 240 "BEQ loc_FF962DD8 \n" 241 "CMP R9, #0x80000007 \n" 242 "STRNE R8, [R6, #0x70] \n" 243 "BNE loc_FF962DDC \n" 244 "MOV R0, #3 \n" 245 "loc_FF962DD8:\n" 246 "STR R0, [R6, #0x70] \n" 247 "loc_FF962DDC:\n" 248 "LDR R0, [R6, #0xC] \n" 249 "CMP R0, #2 \n" 250 "BNE loc_FF962E40 \n" 251 "LDR R0, =0xFF962AF4 \n" 252 "MOV R1, #0 \n" 253 "BL sub_FFA4C0B0 \n" 254 "LDR R1, [R6, #0x64] \n" 255 "LDR R2, =0xABAA8 \n" 256 "ADD R3, SP, #0x5C \n" 257 "ADD R0, SP, #0x30 \n" 258 "STRD R0, [SP, #0x10] \n" 259 "STRD R2, [SP, #0x18] \n" 260 "LDR R1, [R6, #0x84] \n" 261 "LDR R2, [R6, #0x88] \n" 262 "MVN R3, #1 \n" 263 "ADD R0, SP, #0x60 \n" 264 "STMEA SP, {R0-R3} \n" 265 "MOV R3, #0 \n" 266 "LDR R0, =0xABB08 \n" 267 "MOV R2, R3 \n" 268 "MOV R1, #0x40 \n" 269 "BL sub_FFA4C004 \n" 270 "B loc_FF962E98 \n" 271 "loc_FF962E38:\n" 272 "MOV R1, #1 \n" 273 "B loc_FF963110 \n" 274 "loc_FF962E40:\n" 275 "BL sub_FF963954 \n" 276 "LDR R2, [R6, #0x64] \n" 277 "ADD R3, SP, #0x5C \n" 278 "MVN R1, #1 \n" 279 "MOV R0, #0 \n" 280 "ADD R5, SP, #0x1C \n" 281 "STMIA R5, {R0-R3} \n" 282 "LDR R3, [R4, #0x1C] \n" 283 "LDR R1, [R6, #0x84] \n" 284 "LDR R2, [R6, #0x88] \n" 285 "ADD R0, SP, #0x60 \n" 286 "ADD R4, SP, #0xC \n" 287 "STMIA R4, {R0-R3} \n" 288 "MOV R3, #0 \n" 289 "MOV R1, #0x40 \n" 290 "STMEA SP, {R1,R3} \n" 291 "MOV R2, #0 \n" 292 "STR R3, [SP, #8] \n" 293 "LDR R3, =0xABB08 \n" 294 "MOV R1, R2 \n" 295 "MOV R0, R2 \n" 296 "BL sub_FFA4ACF4 \n" 297 "loc_FF962E98:\n" 298 "LDR R0, [R6, #0x18] \n" 299 "LDR R1, [R6, #0x60] \n" 300 "BL _TakeSemaphore \n" 301 "CMP R0, #9 \n" 302 "BEQ loc_FF962E38 \n" 303 "LDR R0, [SP, #0x5C] \n" 304 "CMP R0, #0 \n" 305 "BEQ loc_FF962EC0 \n" 306 "loc_FF962EB8:\n" 307 "MOV R1, #1 \n" 308 "B loc_FF963128 \n" 309 "loc_FF962EC0:\n" 310 "LDR R0, [R6, #0xC] \n" 311 "MOV R4, #5 \n" 312 "CMP R0, #2 \n" 313 "MOV R0, #1 \n" 314 "BNE loc_FF962F0C \n" 315 "BL sub_FFA4C078 \n" 316 "BL sub_FFA4C094 \n" 317 "BL sub_FF84BA84 \n" 318 "MOV R0, #0 \n" 319 "BL sub_FF84BAA8 \n" 320 "BL sub_FF84BAD8 \n" 321 "STR R4, [R6, #0x44] \n" 322 "LDR R0, [R6, #0x64] \n" 323 "CMP R0, #1 \n" 324 "BLEQ sub_FFA4C0D4 \n" 325 "BL sub_FF963954 \n" 326 "BL sub_FF84BB34 \n" 327 "STR R10, [R6, #0x44] \n" 328 "B loc_FF962F18 \n" 329 "loc_FF962F0C:\n" 330 "BL sub_FFA4ADA0 \n" 331 "BL sub_FFA4ADE8 \n" 332 "STR R4, [R6, #0x44] \n" 333 "loc_FF962F18:\n" 334 "STR R8, [R6, #0x34] \n" 335 "B loc_FF962CE0 \n" 336 "loc_FF962F20:\n" 337 "CMP R5, #1 \n" 338 "BNE loc_FF9631C4 \n" 339 "STR R10, [R6, #0x38] \n" 340 "LDR R0, [R6, #0x6C] \n" 341 "LDR R11, [R4, #0xC] \n" 342 "CMP R0, #0 \n" 343 "LDRNE R9, [SP, #0x58] \n" 344 "LDRNE R10, [SP, #0x54] \n" 345 "BNE loc_FF963048 \n" 346 "LDR R0, [R6, #0xC] \n" 347 "CMP R0, #2 \n" 348 "BNE loc_FF962FA0 \n" 349 "LDR R0, =0xFF962AF4 \n" 350 "MOV R1, #0 \n" 351 "BL sub_FFA4C0B0 \n" 352 "LDR R1, [R6, #0x64] \n" 353 "LDR R2, =0xABAA8 \n" 354 "ADD R3, SP, #0x5C \n" 355 "ADD R0, SP, #0x30 \n" 356 "STRD R0, [SP, #0x10] \n" 357 "STRD R2, [SP, #0x18] \n" 358 "LDR R1, [R6, #0x84] \n" 359 "LDR R2, [R6, #0x88] \n" 360 "MVN R3, #0 \n" 361 "ADD R0, SP, #0x60 \n" 362 "STMEA SP, {R0-R3} \n" 363 "LDR R0, [SP, #0x58] \n" 364 "LDR R1, [SP, #0x54] \n" 365 "LDR R2, [SP, #0x50] \n" 366 "LDR R3, [SP, #0x4C] \n" 367 "BL sub_FFA4C004 \n" 368 "B loc_FF962FF4 \n" 369 "loc_FF962FA0:\n" 370 "LDR R0, [R4, #0x20] \n" 371 "LDR R2, [R6, #0x64] \n" 372 "ADD R3, SP, #0x5C \n" 373 "MVN R1, #0 \n" 374 "ADD R9, SP, #0x1C \n" 375 "STMIA R9, {R0-R3} \n" 376 "LDR R3, [R4, #0x1C] \n" 377 "LDR R1, [R6, #0x84] \n" 378 "LDR R2, [R6, #0x88] \n" 379 "ADD R0, SP, #0x60 \n" 380 "ADD R9, SP, #0xC \n" 381 "STMIA R9, {R0-R3} \n" 382 "LDR R1, [SP, #0x50] \n" 383 "LDR R2, [SP, #0x54] \n" 384 "LDR R3, [SP, #0x4C] \n" 385 "STMFA SP, {R1,R3} \n" 386 "STR R2, [SP] \n" 387 "LDMIB R4, {R0,R1} \n" 388 "LDR R3, [SP, #0x58] \n" 389 "MOV R2, R11 \n" 390 "BL sub_FFA4ACF4 \n" 391 "loc_FF962FF4:\n" 392 "LDR R0, [R6, #0x18] \n" 393 "LDR R1, [R6, #0x60] \n" 394 "BL _TakeSemaphore \n" 395 "CMP R0, #9 \n" 396 "BEQ loc_FF962E38 \n" 397 "LDR R0, [SP, #0x5C] \n" 398 "CMP R0, #0 \n" 399 "BNE loc_FF962EB8 \n" 400 "LDR R0, [R6, #0xC] \n" 401 "CMP R0, #2 \n" 402 "MOV R0, #1 \n" 403 "BNE loc_FF96302C \n" 404 "BL sub_FFA4C078 \n" 405 "B loc_FF963030 \n" 406 "loc_FF96302C:\n" 407 "BL sub_FFA4ADA0 \n" 408 "loc_FF963030:\n" 409 "STR R8, [R6, #0xC4] \n" 410 "LDR R0, [SP, #0x60] \n" 411 "LDR R1, [SP, #0x58] \n" 412 "ADD R9, R1, R0 \n" 413 "LDR R1, [SP, #0x54] \n" 414 "SUB R10, R1, R0 \n" 415 "loc_FF963048:\n" 416 "LDR R0, [R6, #0xC] \n" 417 "CMP R0, #2 \n" 418 "BNE loc_FF9630A8 \n" 419 "LDR R0, =0xFF9627DC \n" 420 "MOV R1, #0 \n" 421 "BL sub_FFA4C0B0 \n" 422 "LDR R1, [R6, #0x64] \n" 423 "LDR R2, =0xABAA8 \n" 424 "ADD R0, SP, #0x30 \n" 425 "ADD R3, SP, #0x5C \n" 426 "STRD R0, [SP, #0x10] \n" 427 "STRD R2, [SP, #0x18] \n" 428 "LDR R1, [R6, #0x84] \n" 429 "LDR R2, [R6, #0x88] \n" 430 "LDR R3, [R6, #0x68] \n" 431 "ADD R0, SP, #0x60 \n" 432 "STMEA SP, {R0-R3} \n" 433 "LDR R2, [SP, #0x50] \n" 434 "LDR R3, [SP, #0x4C] \n" 435 "MOV R1, R10 \n" 436 "MOV R0, R9 \n" 437 "BL sub_FFA4C004 \n" 438 "BL sub_FF84BA60 \n" 439 "B loc_FF9630F8 \n" 440 "loc_FF9630A8:\n" 441 "LDR R0, [R4, #0x20] \n" 442 "LDR R1, [R6, #0x68] \n" 443 "LDR R2, [R6, #0x64] \n" 444 "ADD R3, SP, #0x5C \n" 445 "ADD R12, SP, #0x1C \n" 446 "STMIA R12, {R0-R3} \n" 447 "LDR R3, [R4, #0x1C] \n" 448 "LDR R1, [R6, #0x84] \n" 449 "LDR R2, [R6, #0x88] \n" 450 "ADD R0, SP, #0x60 \n" 451 "ADD R12, SP, #0xC \n" 452 "STMIA R12, {R0-R3} \n" 453 "LDR R2, [SP, #0x50] \n" 454 "LDR R3, [SP, #0x4C] \n" 455 "STMFA SP, {R2,R3} \n" 456 "STR R10, [SP] \n" 457 "LDMIB R4, {R0,R1} \n" 458 "MOV R3, R9 \n" 459 "MOV R2, R11 \n" 460 "BL sub_FFA4ACF4 \n" 461 "loc_FF9630F8:\n" 462 "LDR R0, [R6, #0x18] \n" 463 "LDR R1, [R6, #0x60] \n" 464 "BL _TakeSemaphore \n" 465 "CMP R0, #9 \n" 466 "BNE loc_FF963118 \n" 467 "MOV R1, #0 \n" 468 "loc_FF963110:\n" 469 "MOV R0, #0x90000 \n" 470 "B loc_FF96312C \n" 471 "loc_FF963118:\n" 472 "LDR R0, [SP, #0x5C] \n" 473 "CMP R0, #0 \n" 474 "BEQ loc_FF963134 \n" 475 "MOV R1, #0 \n" 476 "loc_FF963128:\n" 477 "MOV R0, #0xA0000 \n" 478 "loc_FF96312C:\n" 479 "BL sub_FF962A84 \n" 480 "B loc_FF962CE0 \n" 481 "loc_FF963134:\n" 482 "LDR R0, [R6, #0xC] \n" 483 "CMP R0, #2 \n" 484 "MOV R0, #0 \n" 485 "BNE loc_FF96314C \n" 486 "BL sub_FFA4C078 \n" 487 "B loc_FF963150 \n" 488 "loc_FF96314C:\n" 489 "BL sub_FFA4ADA0 \n" 490 "loc_FF963150:\n" 491 "LDR R0, [SP, #0x58] \n" 492 "LDR R1, [SP, #0x60] \n" 493 "BL sub_FFA82304 \n" 494 "LDR R0, [R6, #0x68] \n" 495 "LDR R3, =0x6568 \n" // <- 0x6568 496 "ADD R1, R0, #1 \n" 497 "STR R1, [R6, #0x68] \n" 498 "LDR R0, [SP, #0x60] \n" 499 "SUB R2, R3, #4 \n" // <- -4 500 "BL sub_FFA7FB80 \n" 501 #if 0 502 "LDR R0, =0x6564 \n" // added, 0x6568-0x4 503 "BL set_quality \n" // added 504 #endif 505 "LDR R0, [R6, #0x64] \n" 506 "CMP R0, #1 \n" 507 "BNE loc_FF9631C4 \n" 508 "ADD R0, SP, #0x48 \n" 509 "BL sub_FFA4C134 \n" 510 "LDR R1, =0xABA78 \n" 511 "LDR R0, [R1, #4] \n" 512 "LDR R1, [R1] \n" 513 "SUB R2, R0, #0x400 \n" 514 "SUBS R2, R2, #0x38 \n" 515 "ADDEQ R0, R0, #8 \n" 516 "MOV R1, R1, LSR #4 \n" 517 "MOV R0, R0, LSR #4 \n" 518 "MUL R1, R0, R1 \n" 519 "LDR R0, [SP, #0x48] \n" 520 "BL sub_003FC934 \n" 521 "LDR R1, =0xABAA8 \n" 522 "STR R0, [SP, #0x48] \n" 523 "BL sub_FFA7FEA8 \n" 524 "loc_FF9631C4:\n" 525 "CMP R7, #1 \n" 526 "BNE loc_FF9631D8 \n" 527 "loc_FF9631CC:\n" 528 "BL sub_FF84BA84 \n" 529 "MOV R0, #1 \n" 530 "BL sub_FF84BAA8 \n" 531 "loc_FF9631D8:\n" 532 "CMP R5, #1 \n" 533 "LDRNEH R0, [R6, #6] \n" 534 "CMPNE R0, #3 \n" 535 "BNE loc_FF962CE0 \n" 536 "LDR R0, [R6, #0x6C] \n" 537 "ADD R0, R0, #1 \n" 538 "STR R0, [R6, #0x6C] \n" 539 "LDRH R1, [R6, #6] \n" 540 "CMP R1, #3 \n" 541 "LDRNE R1, [R6, #0x54] \n" 542 "MULNE R0, R1, R0 \n" 543 "LDRNE R1, [R6, #0x50] \n" 544 "BNE loc_FF963228 \n" 545 "LDR R1, [R6, #0x58] \n" 546 "CMP R1, #0x19 \n" 547 "LDRNE R1, =0x3E9 \n" 548 "MOVEQ R1, #0x3E8 \n" 549 "MUL R0, R1, R0 \n" 550 "LDRNE R1, =0x1770 \n" 551 "LDREQ R1, =0x1388 \n" 552 "loc_FF963228:\n" 553 "BL sub_003FC934 \n" //RAM 554 "MOV R4, R0 \n" 555 "BL sub_FFA82698 \n" 556 "LDR R0, [R6, #0x8C] \n" 557 "CMP R0, R4 \n" 558 "BNE loc_FF96324C \n" 559 "LDR R0, [R6, #0x3C] \n" 560 "CMP R0, #1 \n" 561 "BNE loc_FF963260 \n" 562 "loc_FF96324C:\n" 563 "LDR R1, [R6, #0x98] \n" 564 "MOV R0, R4 \n" 565 "BLX R1 \n" 566 "STR R4, [R6, #0x8C] \n" 567 "STR R8, [R6, #0x3C] \n" 568 "loc_FF963260:\n" 569 "STR R8, [R6, #0x38] \n" 570 "B loc_FF962CE0 \n" 571 ); 572 } 573 */