This source file includes following definitions.
- change_video_tables
- movie_record_task
- sub_FFD1C3E4_my
- sub_FFD1DB90_my
- sub_FFD1CF50_my
- sub_FFD1BFD4_my
- sub_FFD1D24C_my
1 #include "conf.h"
2
3 #undef LIFTEDMLIMIT_A420
4 #ifdef LIFTEDMLIMIT_A420
5 int liftedmlimit_a420 = LIFTEDMLIMIT_A420;
6 #if (LIFTEDMLIMIT_A420 != 1) && (LIFTEDMLIMIT_A420 != 2) && (LIFTEDMLIMIT_A420 != 3)
7 #error movie time limit is incorrect
8 #endif
9 #endif
10
11
12 int *video_quality = &conf.video_quality;
13 int *video_mode = &conf.video_mode;
14
15 long def_table1[9]={0x2000,0x38D,0x788,0x5800,0x9C5,0x14B8,0x10000,0x1C6A,0x3C45};
16 long def_table2[9]={0x1CCD,-0x2E1,-0x579,0x4F33,-0x7EB,-0xF0C,0xE666,-0x170A,-0x2BC6};
17
18 long table1[9], table2[9];
19
20 void change_video_tables(int a, int b){
21 int i;
22 for (i=0;i<9;i++) {table1[i]=(def_table1[i]*a)/b; table2[i]=(def_table2[i]*a)/b;}
23 }
24
25 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};
26
27
28 void __attribute__((naked,noinline)) movie_record_task(){
29 asm volatile(
30 " STMFD SP!, {R4,LR}\n"
31 " SUB SP, SP, #4\n"
32 " MOV R4, SP\n"
33 " B loc_FFD1BD84\n"
34 " loc_FFD1BCE0:\n"
35 " LDR R3, =0x72060\n"
36 " LDR R2, [R3]\n"
37 " CMP R2, #0\n"
38 " BNE loc_FFD1BD70\n"
39 " SUB R3, R12, #2\n"
40 " CMP R3, #9\n"
41 " LDRLS PC, [PC,R3,LSL#2]\n"
42 " B loc_FFD1BD70\n"
43 " .long loc_FFD1BD30\n"
44 " .long loc_FFD1BD48\n"
45 " .long loc_FFD1BD50\n"
46 " .long loc_FFD1BD58\n"
47 " .long loc_FFD1BD38\n"
48 " .long loc_FFD1BD60\n"
49 " .long loc_FFD1BD40\n"
50 " .long loc_FFD1BD70\n"
51 " .long loc_FFD1BD68\n"
52 " .long loc_FFD1BD28\n"
53 " loc_FFD1BD28:\n"
54 " BL sub_FFD1BE20\n"
55 " B loc_FFD1BD6C\n"
56 " loc_FFD1BD30:\n"
57 " BL unlock_optical_zoom\n"
58 " BL sub_FFD1BFD4_my\n"
59 " B loc_FFD1BD6C\n"
60 " loc_FFD1BD38:\n"
61 " BL sub_FFD1C3E4_my\n"
62 " B loc_FFD1BD6C\n"
63 " loc_FFD1BD40:\n"
64 " BL sub_FFD1C8C4\n"
65 " B loc_FFD1BD6C\n"
66 " loc_FFD1BD48:\n"
67 " BL sub_FFD1C6E0\n"
68 " B loc_FFD1BD6C\n"
69 " loc_FFD1BD50:\n"
70 " BL sub_FFD1CA30\n"
71 " B loc_FFD1BD6C\n"
72 " loc_FFD1BD58:\n"
73 " BL sub_FFD1CBF4\n"
74 " B loc_FFD1BD6C\n"
75 " loc_FFD1BD60:\n"
76 " BL sub_FFD1C94C\n"
77 " B loc_FFD1BD6C\n"
78 " loc_FFD1BD68:\n"
79 " BL sub_FFD1C730\n"
80 " loc_FFD1BD6C:\n"
81 " LDR R1, [SP]\n"
82 " loc_FFD1BD70:\n"
83 " LDR R3, =0x71F94\n"
84 " MOV R2, #0\n"
85 " STR R2, [R1]\n"
86 " LDR R0, [R3]\n"
87 " BL sub_FFC104DC\n"
88 " loc_FFD1BD84:\n"
89 " LDR R3, =0x71F90\n"
90 " MOV R1, R4\n"
91 " LDR R0, [R3]\n"
92 " MOV R2, #0\n"
93 " BL sub_FFC100C4\n"
94 " LDR R0, [SP]\n"
95 " LDR R12, [R0]\n"
96 " CMP R12, #0xC\n"
97 " MOV R1, R0\n"
98 " BNE loc_FFD1BCE0\n"
99 " LDR R3, =0x71F8C\n"
100 " LDR R0, [R3]\n"
101 " BL sub_FFC10E58\n"
102 " BL sub_FFC11620\n"
103 " ADD SP, SP, #4\n"
104 " LDMFD SP!, {R4,PC}\n"
105 );
106 }
107
108 void __attribute__((naked,noinline)) sub_FFD1C3E4_my(){
109 asm volatile(
110 " STMFD SP!, {R4-R11,LR}\n"
111 " LDR R5, =0x7207C\n"
112 " SUB SP, SP, #0x34\n"
113 " LDR R3, [R5]\n"
114 " CMP R3, #3\n"
115 " MOV R4, R0\n"
116 " MOVEQ R3, #4\n"
117 " STREQ R3, [R5]\n"
118 " LDR R3, =0x7212C\n"
119 " MOV LR, PC\n"
120 " LDR PC, [R3]\n"
121 " LDR R2, [R5]\n"
122 " CMP R2, #4\n"
123 " BNE loc_FFD1C5FC\n"
124 " ADD R0, SP, #0x58-0x28\n"
125 " ADD R1, SP, #0x58-0x2C\n"
126 " ADD R2, SP, #0x58-0x30\n"
127 " ADD R3, SP, #0x58-0x34\n"
128 " BL sub_FFD1DB90_my\n"
129 " CMP R0, #0\n"
130 " BNE loc_FFD1C460\n"
131 " LDR R3, =0x72068\n"
132 " LDR R2, [R3]\n"
133 " CMP R2, #1\n"
134 " BNE loc_FFD1C474\n"
135 " LDR R2, =0x720C0\n"
136 " LDR R1, =0x72094\n"
137 " LDR R12, [R2]\n"
138 " LDR R3, [R1]\n"
139 " CMP R12, R3\n"
140 " BCC loc_FFD1C474\n"
141 " loc_FFD1C460:\n"
142 " BL sub_FFD1C658\n"
143 " BL sub_FFD1C858\n"
144 " MOV R3, #5\n"
145 " STR R3, [R5]\n"
146 " B loc_FFD1C5FC\n"
147 " loc_FFD1C474:\n"
148 " LDR R12, =0x720C8\n"
149 " LDR R11, =0x720D4\n"
150 " LDMIB R4, {R0-R2}\n"
151 " LDR R10, [R12]\n"
152 " LDR R7, [R11]\n"
153 " LDR R4, [SP,#0x58-0x2C]\n"
154 " LDR R5, [SP,#0x58-0x30]\n"
155 " LDR R6, [SP,#0x58-0x34]\n"
156 " LDR R8, =0x7206C\n"
157 " LDR R3, [SP,#0x58-0x28]\n"
158 " ADD R12, SP, #0x58-0x38\n"
159 " ADD LR, SP, #0x58-0x3C\n"
160 " MOV R9, #1\n"
161 " STMEA SP, {R4-R6,R12}\n"
162 " STR R10, [SP,#0x58-0x48]\n"
163 " STR R7, [SP,#0x58-0x44]\n"
164 " STR LR, [SP,#0x58-0x40]\n"
165 " STR R9, [R8]\n"
166 " BL sub_FFC80EE4\n"
167 " LDR R3, =0x71F84\n"
168 " MOV R1, #0x3E8\n"
169 " LDR R0, [R3]\n"
170 " BL sub_FFC10C70\n"
171 " CMP R0, #9\n"
172 " BNE loc_FFD1C4E8\n"
173 " BL sub_FFD1E3A0\n"
174 " LDR R3, =0x7207C\n"
175 " LDR R0, =0xffd1c3cc\n"
176 " B loc_FFD1C500\n"
177 " loc_FFD1C4E8:\n"
178 " LDR R6, [SP,#0x58-0x3C]\n"
179 " CMP R6, #0\n"
180 " BEQ loc_FFD1C50C\n"
181 " BL sub_FFD1E3A0\n"
182 " LDR R3, =0x7207C\n"
183 " LDR R0, =0xffd1c3d8\n"
184 " loc_FFD1C500:\n"
185 " STR R9, [R3]\n"
186 " BL sub_FFD306E8\n"
187 " B loc_FFD1C5FC\n"
188 " loc_FFD1C50C:\n"
189 " BL sub_FFC81050\n"
190 " LDR R7, =0x720C0\n"
191 " LDR R0, [SP,#0x58-0x28]\n"
192 " LDR R1, [SP,#0x58-0x38]\n"
193 " BL sub_FFD1E0C4\n"
194 " LDR R3, [R7]\n"
195 " LDR R2, =0x720A8\n"
196 " ADD R3, R3, #1\n"
197 " LDR R1, [R2]\n"
198 " MOV R0, R3\n"
199 " STR R3, [R7]\n"
200 " BL sub_FFE96D9C\n"
201 " CMP R0, #0\n"
202 " BNE loc_FFD1C580\n"
203 " LDR R4, =0x72140\n"
204 " LDR R3, [R4]\n"
205 " LDR R2, =0x7208C\n"
206 " LDR R5, =0x72138\n"
207 " AND R3, R3, #1\n"
208 " LDR R0, [R5,R3,LSL#2]\n"
209 " LDR R1, [R2]\n"
210 " BL sub_FFD1DAD8\n"
211 " LDR R0, [R4]\n"
212 " AND R0, R0, #1\n"
213 " ADD R0, R5, R0,LSL#2\n"
214 " BL sub_FFD1DA84\n"
215 " LDR R3, [R4]\n"
216 " ADD R3, R3, #1\n"
217 " STR R3, [R4]\n"
218 " loc_FFD1C580:\n"
219 " LDR R0, [SP,#0x58-0x38]\n"
220 " MOV R1, R11\n"
221 " MOV R2, R6\n"
222 " BL sub_FFD1CF50_my\n"
223 " LDR R3, =0x720E0\n"
224 " LDR R1, [R7]\n"
225 " LDR R2, [R3]\n"
226 " LDR R12, =0x720DC\n"
227 " MUL R0, R2, R1\n"
228 " LDR R1, [R12]\n"
229 " BL sub_FFE9670C\n"
230 " LDR R7, =0x720D8\n"
231 " LDR R3, [R7]\n"
232 " MOV R4, R0\n"
233 " CMP R3, R4\n"
234 " BNE loc_FFD1C5D4\n"
235 " LDR R5, =0x72070\n"
236 " LDR R3, [R5]\n"
237 " CMP R3, #1\n"
238 " BNE loc_FFD1C5F0\n"
239 " B loc_FFD1C5D8\n"
240 " loc_FFD1C5D4:\n"
241 " LDR R5, =0x72070\n"
242 " loc_FFD1C5D8:\n"
243 " LDR R3, =0x72110\n"
244 " MOV R0, R4\n"
245 " MOV LR, PC\n"
246 " LDR PC, [R3]\n"
247 " STR R6, [R5]\n"
248 " STR R4, [R7]\n"
249 " loc_FFD1C5F0:\n"
250 " LDR R2, =0x7206C\n"
251 " MOV R3, #0\n"
252 " STR R3, [R2]\n"
253 " loc_FFD1C5FC:\n"
254 " ADD SP, SP, #0x34\n"
255 " LDMFD SP!, {R4-R11,PC}\n"
256 );
257 }
258
259 void __attribute__((naked,noinline)) sub_FFD1DB90_my(){
260 asm volatile(
261 " STMFD SP!, {R4-R11,LR}\n"
262 " LDR R5, =0x723E4\n"
263 " SUB SP, SP, #0x14\n"
264 " LDR LR, [R5]\n"
265 " LDR R12, =0x723FC\n"
266 " ADD LR, LR, #1\n"
267 " LDR R4, [R12]\n"
268 " STR LR, [R5]\n"
269 " LDR R12, =0x7247C\n"
270 " STR R0, [SP,#0x38-0x28]\n"
271 " STR R1, [SP,#0x38-0x2C]\n"
272 " STR R2, [SP,#0x38-0x30]\n"
273 " STR R3, [SP,#0x38-0x34]\n"
274 " CMP LR, R4\n"
275 " LDR R11, [R12]\n"
276 " MOVHI R0, #0x80000001\n"
277 " BHI loc_FFD1E078\n"
278 " LDR R3, =0x72460\n"
279 " MOV R0, LR\n"
280 " LDR R1, [R3]\n"
281 " BL sub_FFE96D9C\n"
282 " CMP R0, #1\n"
283 " BNE loc_FFD1DDB0\n"
284 " LDR R0, =0x72484\n"
285 " LDR R1, =0x723D0\n"
286 " LDR R3, [R0]\n"
287 " LDR R2, [R1]\n"
288 " CMP R3, R2\n"
289 " LDREQ R3, =0x72480\n"
290 " LDREQ R5, [R3]\n"
291 " MOVNE R5, R2\n"
292 " LDR R3, =0x723E4\n"
293 " LDR R2, =0x72460\n"
294 " LDR R0, [R3]\n"
295 " LDR R1, [R2]\n"
296 " BL sub_FFE9670C\n"
297 " LDR R3, =0x723D8\n"
298 " ADD R0, R0, #1\n"
299 " AND R0, R0, #1\n"
300 " STR R5, [R3,R0,LSL#2]\n"
301 " LDR R3, =0x723CC\n"
302 " LDR R2, [R3]\n"
303 " CMP R5, R2\n"
304 " BHI loc_FFD1DC60\n"
305 " LDR R4, =0x7241C\n"
306 " LDR R3, [R4]\n"
307 " ADD R3, R5, R3\n"
308 " ADD R3, R3, #8\n"
309 " CMP R2, R3\n"
310 " BCS loc_FFD1DC64\n"
311 " loc_FFD1DC58:\n"
312 " MOV R0, #0x80000003\n"
313 " B loc_FFD1E078\n"
314 " loc_FFD1DC60:\n"
315 " LDR R4, =0x7241C\n"
316 " loc_FFD1DC64:\n"
317 " LDR R3, [R4]\n"
318 " LDR R2, =0x72484\n"
319 " ADD R1, R5, R3\n"
320 " LDR R3, [R2]\n"
321 " ADD R2, R1, #8\n"
322 " CMP R2, R3\n"
323 " BLS loc_FFD1DCB0\n"
324 " LDR R2, =0x72480\n"
325 " LDR R0, =0x723CC\n"
326 " RSB R3, R3, R1\n"
327 " LDR R1, [R2]\n"
328 " ADD R3, R3, #8\n"
329 " LDR R2, [R0]\n"
330 " ADD R1, R1, R3\n"
331 " CMP R2, R1\n"
332 " BCC loc_FFD1DC58\n"
333 " LDR R3, =0x723D0\n"
334 " STR R1, [R3]\n"
335 " B loc_FFD1DCB8\n"
336 " loc_FFD1DCB0:\n"
337 " LDR R3, =0x723D0\n"
338 " STR R2, [R3]\n"
339 " loc_FFD1DCB8:\n"
340 " LDR R3, [R4]\n"
341 " LDR R12, =0x72430\n"
342 " ADD R3, R3, #0x18\n"
343 " LDR R2, [R12,#4]\n"
344 " MOV R0, R3\n"
345 " MOV R1, #0\n"
346 " CMP R1, R2\n"
347 " BHI loc_FFD1DEFC\n"
348 " BNE loc_FFD1DCE8\n"
349 " LDR R3, [R12]\n"
350 " CMP R0, R3\n"
351 " BHI loc_FFD1DEFC\n"
352 " loc_FFD1DCE8:\n"
353 " LDR R4, [R4]\n"
354 " LDR LR, =0x72438\n"
355 " STR R4, [SP,#0x38-0x38]\n"
356 " LDR R12, =0x72430\n"
357 " LDR R3, =0x723E4\n"
358 " LDMIA LR, {R7,R8}\n"
359 " LDMIA R12, {R5,R6}\n"
360 " LDR R10, [R3]\n"
361 " LDR R2, =0x72460\n"
362 " MOV R3, R4\n"
363 " MOV R4, #0\n"
364 " ADDS R7, R7, R3\n"
365 " ADC R8, R8, R4\n"
366 " LDR R9, [R2]\n"
367 " SUBS R5, R5, R3\n"
368 " SBC R6, R6, R4\n"
369 " MOV R2, #0xFFFFFFFF\n"
370 " MOV R1, #0xFFFFFFE8\n"
371 " ADDS R5, R5, R1\n"
372 " MOV R4, #0\n"
373 " MOV R3, #0x18\n"
374 " ADC R6, R6, R2\n"
375 " ADDS R7, R7, R3\n"
376 " ADC R8, R8, R4\n"
377 " STMIA R12, {R5,R6}\n"
378 " SUB R0, R10, #1\n"
379 " MOV R1, R9\n"
380 " STMIA LR, {R7,R8}\n"
381 " BL sub_FFE9670C\n"
382 " CMP R10, #1\n"
383 " MLA R0, R9, R0, R0\n"
384 " BEQ loc_FFD1DDB0\n"
385 " SUB R3, R0, #1\n"
386 " MOV R3, R3,LSL#4\n"
387 " ADD R4, R11, #0x10\n"
388 " ADD R5, R11, #0x14\n"
389 " LDR R1, [R5,R3]\n"
390 " LDR R2, [R4,R3]\n"
391 " LDR LR, =0x62773130\n"
392 " ADD R2, R2, R1\n"
393 " MOV R3, R0,LSL#4\n"
394 " ADD R2, R2, #8\n"
395 " MOV R0, #0\n"
396 " ADD R12, R11, #0xC\n"
397 " ADD R1, R11, #8\n"
398 " STR LR, [R1,R3]\n"
399 " STR R0, [R12,R3]\n"
400 " STR R2, [R4,R3]\n"
401 " LDR R0, [SP,#0x38-0x38]\n"
402 " STR R0, [R5,R3]\n"
403 " loc_FFD1DDB0:\n"
404 " LDR R2, =0x723D0\n"
405 " LDR R3, =0x72484\n"
406 " LDR R1, [R2]\n"
407 " LDR R0, [R3]\n"
408 " ADD R3, R1, #9\n"
409 " CMP R3, R0\n"
410 " BLS loc_FFD1DDEC\n"
411 " LDR R2, =0x72480\n"
412 " LDR R3, [R2]\n"
413 " ADD R3, R3, R1\n"
414 " RSB R3, R0, R3\n"
415 " LDR R0, [SP,#0x38-0x28]\n"
416 " ADD R3, R3, #8\n"
417 " STR R3, [R0]\n"
418 " B loc_FFD1DDF8\n"
419 " loc_FFD1DDEC:\n"
420 " ADD R3, R1, #8\n"
421 " LDR R1, [SP,#0x38-0x28]\n"
422 " STR R3, [R1]\n"
423 " loc_FFD1DDF8:\n"
424 " LDR R2, [SP,#0x38-0x28]\n"
425 " LDR R1, =0x7242C\n"
426 " LDR R3, =0x72484\n"
427 " LDR R12, [R2]\n"
428 " LDR R2, [R1]\n"
429 " LDR R0, [R3]\n"
430 " ADD R3, R12, R2\n"
431 " CMP R3, R0\n"
432 " BLS loc_FFD1DE4C\n"
433 " LDR R2, [SP,#0x38-0x2C]\n"
434 " RSB R0, R12, R0\n"
435 " STR R0, [R2]\n"
436 " LDR R2, =0x72480\n"
437 " LDR R3, [R1]\n"
438 " LDR R1, [R2]\n"
439 " RSB R3, R0, R3\n"
440 " LDR R0, [SP,#0x38-0x30]\n"
441 " STR R1, [R0]\n"
442 " LDR R1, [SP,#0x38-0x34]\n"
443 " STR R3, [R1]\n"
444 " B loc_FFD1DE68\n"
445 " loc_FFD1DE4C:\n"
446 " LDR R0, [SP,#0x38-0x2C]\n"
447 " STR R2, [R0]\n"
448 " LDR R1, [SP,#0x38-0x34]\n"
449 " MOV R3, #0\n"
450 " STR R3, [R1]\n"
451 " LDR R2, [SP,#0x38-0x30]\n"
452 " STR R3, [R2]\n"
453 " loc_FFD1DE68:\n"
454 " LDR R0, =0x723D0\n"
455 " LDR R1, =0x723CC\n"
456 " LDR R3, [R0]\n"
457 " LDR R2, [R1]\n"
458 " CMP R3, R2\n"
459 " BHI loc_FFD1DE94\n"
460 " LDR R0, [SP,#0x38-0x2C]\n"
461 " LDR R3, [R0]\n"
462 " ADD R3, R12, R3\n"
463 " CMP R2, R3\n"
464 " BCC loc_FFD1DC58\n"
465 " loc_FFD1DE94:\n"
466 " LDR R1, [SP,#0x38-0x30]\n"
467 " LDR R2, [R1]\n"
468 " CMP R2, #0\n"
469 " BEQ loc_FFD1DEC8\n"
470 " LDR R3, =0x723CC\n"
471 " LDR R1, [R3]\n"
472 " CMP R2, R1\n"
473 " BHI loc_FFD1DEC8\n"
474 " LDR R0, [SP,#0x38-0x34]\n"
475 " LDR R3, [R0]\n"
476 " ADD R3, R2, R3\n"
477 " CMP R1, R3\n"
478 " BCC loc_FFD1DC58\n"
479 " loc_FFD1DEC8:\n"
480 " LDR R3, =0x7242C\n"
481 " LDR R0, =0x72430\n"
482 " LDR R2, [R3]\n"
483 " LDR R3, [R0,#4]\n"
484 " ADD R2, R2, #0x18\n"
485 " MOV R1, R2\n"
486 " MOV R2, #0\n"
487 " CMP R2, R3\n"
488 " BHI loc_FFD1DEFC\n"
489 " BNE loc_FFD1DF04\n"
490 " LDR R3, [R0]\n"
491 " CMP R1, R3\n"
492 " BLS loc_FFD1DF04\n"
493 " loc_FFD1DEFC:\n"
494 " MOV R0, #0x80000005\n"
495 " B loc_FFD1E078\n"
496 " loc_FFD1DF04:\n"
497 " LDR R1, =0x72414\n"
498 " LDR R0, =0x72460\n"
499 " LDR R3, [R1]\n"
500 " LDR R2, [R0]\n"
501 " ADD R3, R3, R2,LSL#4\n"
502 " ADD R3, R3, R3,LSL#2\n"
503 " LDR R12, =0x72430\n"
504 " MOV R3, R3,LSL#1\n"
505 " ADD R3, R3, #0xA0\n"
506 " LDR R2, [R12,#4]\n"
507 " MOV R0, R3\n"
508 " MOV R1, #0\n"
509 " CMP R1, R2\n"
510 " BHI loc_FFD1DF4C\n"
511 " BNE loc_FFD1DF70\n"
512 " LDR R3, [R12]\n"
513 " CMP R0, R3\n"
514 " BLS loc_FFD1DF70\n"
515 " loc_FFD1DF4C:\n"
516 " LDR R4, =0x72448\n"
517 " LDR R1, [R4]\n"
518 " CMP R1, #0\n"
519 " BNE loc_FFD1DF70\n"
520 " MOV R0, #0x3140\n"
521 " ADD R0, R0, #0x8\n"
522 " BL sub_FFD34A8C\n"
523 " MOV R3, #1\n"
524 " STR R3, [R4]\n"
525 " loc_FFD1DF70:\n"
526 " LDR R1, =0x72414\n"
527 " LDR R0, =0x72460\n"
528 " LDR R2, [R1]\n"
529 " LDR R3, [R0]\n"
530 " LDR R0, =0x72438\n"
531 " ADD R2, R2, R3,LSL#4\n"
532 " MOV R3, #0xFFFFFF60\n"
533 " ADD R2, R2, R2,LSL#2\n"
534 " ADD R3, R3, #0x40000000\n"
535 " SUB R3, R3, R2,LSL#1\n"
536 " LDR R1, [R0,#4]\n"
537 " MOV R4, R3\n"
538 " MOV R5, #0\n"
539 " CMP R1, R5\n"
540 " BHI loc_FFD1DFBC\n"
541 " BNE loc_FFD1DFE0\n"
542 " LDR R3, [R0]\n"
543 " CMP R3, R4\n"
544 " BLS loc_FFD1DFE0\n"
545 " loc_FFD1DFBC:\n"
546 " LDR R4, =0x72448\n"
547 " LDR R1, [R4]\n"
548 " CMP R1, #0\n"
549 " BNE loc_FFD1DFE0\n"
550 " MOV R0, #0x3140\n"
551 " ADD R0, R0, #0x8\n"
552 " BL sub_FFD34A8C\n"
553 " MOV R3, #1\n"
554 " STR R3, [R4]\n"
555 " loc_FFD1DFE0:\n"
556 " LDR R3, =0x72460\n"
557 " LDR R0, =0x723FC\n"
558 " LDR R2, [R3]\n"
559 " LDR R12, =0x723E4\n"
560 " LDR R1, [R0]\n"
561 " ADD R3, R2, R2,LSL#2\n"
562 " ADD R2, R2, R3,LSL#1\n"
563 " LDR R0, [R12]\n"
564 " RSB R1, R2, R1\n"
565 " CMP R0, R1\n"
566 " BLS loc_FFD1E030\n"
567 " LDR R4, =0x72448\n"
568 " LDR R1, [R4]\n"
569 " CMP R1, #0\n"
570 " BNE loc_FFD1E030\n"
571 " MOV R0, #0x3140\n"
572 " ADD R0, R0, #0x8\n"
573 " BL sub_FFD34A8C\n"
574 " MOV R3, #1\n"
575 " STR R3, [R4]\n"
576 " loc_FFD1E030:\n"
577 " LDR R3, =0x72438\n"
578 " LDR R12, =0x7242C\n"
579 " LDMIA R3, {R1,R2}\n"
580 " LDR R0, [R12]\n"
581 " MOV R4, #0\n"
582 " MOV R3, #0x18\n"
583 " ADDS R1, R1, R0\n"
584 " ADC R2, R2, #0\n"
585 " ADDS R1, R1, R3\n"
586 " ADC R2, R2, R4\n"
587 " CMP R2, #0\n"
588 " BHI loc_FFD1E06C\n"
589 " BNE loc_FFD1E074\n"
590 " CMP R1, #0x40000000\n"
591 " B loc_FFD1E074\n"
592 " loc_FFD1E06C:\n"
593 " MOV R0, #0x80000007\n"
594 " B loc_FFD1E078\n"
595 " loc_FFD1E074:\n"
596 " MOV R0, #0\n"
597 " loc_FFD1E078:\n"
598 " ADD SP, SP, #0x14\n"
599 " LDMFD SP!, {R4-R11,PC}\n"
600 );
601 }
602
603 void __attribute__((naked,noinline)) sub_FFD1CF50_my(){
604 asm volatile(
605 " CMP R2, #1\n"
606 " STMFD SP!, {R4-R7,LR}\n"
607 " MOV R7, R0\n"
608 " MOV R6, R1\n"
609 " MOVEQ R3, #0x79\n"
610 " STREQ R3, [R6]\n"
611 " LDMEQFD SP!, {R4-R7,PC}\n"
612 " LDR R12, =0x72144\n"
613 " LDR R0, [R12]\n"
614 " LDR R3, =0x7214C\n"
615 " CMP R0, #0\n"
616 " LDR R1, [R3]\n"
617 " BEQ loc_FFD1CF98\n"
618 " LDR R2, =0x72150\n"
619 " LDR R3, [R2]\n"
620 " CMP R3, #1\n"
621 " BNE loc_FFD1CFAC\n"
622 " B loc_FFD1CF9C\n"
623 " loc_FFD1CF98:\n"
624 " LDR R2, =0x72150\n"
625 " loc_FFD1CF9C:\n"
626 " MOV R3, #0\n"
627 " STR R3, [R2]\n"
628 " STR R7, [R12]\n"
629 " B loc_FFD1D064\n"
630 " loc_FFD1CFAC:\n"
631 " LDR R2, =0x72148\n"
632 " LDR R3, [R2]\n"
633 " LDR R5, =table1\n"
634 " ADD R3, R3, R3,LSL#1\n"
635 " MOV LR, R3,LSL#2\n"
636 " LDR R2, [R5,LR]\n"
637 " LDR R4, =table2\n"
638 " RSB R12, R2, R0\n"
639 " LDR R3, [R4,LR]\n"
640 " CMP R12, #0\n"
641 " RSB R0, R3, R0\n"
642 " BLE loc_FFD1D010\n"
643 " ADD R3, R5, #4\n"
644 " LDR R2, [R3,LR]\n"
645 " CMP R2, R12\n"
646 " ADDGE R1, R1, #1\n"
647 " BGE loc_FFD1D004\n"
648 " ADD R3, R5, #8\n"
649 " LDR R2, [R3,LR]\n"
650 " CMP R2, R12\n"
651 " ADDGE R1, R1, #2\n"
652 " ADDLT R1, R1, #3\n"
653 " loc_FFD1D004:\n"
654 " CMP R1, #0x1a\n"
655 " MOVGE R1, #0x1a\n"
656 " B loc_FFD1D048\n"
657 " loc_FFD1D010:\n"
658 " CMP R0, #0\n"
659 " BGE loc_FFD1D048\n"
660 " ADD R3, R4, #4\n"
661 " LDR R2, [R3,LR]\n"
662 " CMP R2, R0\n"
663 " SUBLE R1, R1, #1\n"
664 " BLE loc_FFD1D040\n"
665 " ADD R3, R4, #8\n"
666 " LDR R2, [R3,LR]\n"
667 " CMP R2, R0\n"
668 " SUBLE R1, R1, #2\n"
669 " SUBGT R1, R1, #3\n"
670 " loc_FFD1D040:\n"
671 " CMP R1, #0\n"
672 " MOVLT R1, #0\n"
673 " loc_FFD1D048:\n"
674 " LDR R0, =0x7214C\n"
675 " LDR R3, [R0]\n"
676 " CMP R1, R3\n"
677 " LDRNE R2, =0x72150\n"
678 " MOVNE R3, #1\n"
679 " STRNE R1, [R0]\n"
680 " STRNE R3, [R2]\n"
681 " loc_FFD1D064:\n"
682 " LDR R3, =0x7214C\n"
683 " LDR R1, =video_mode\n"
684 " LDR R0, [R3]\n"
685 " LDR R2, =CompressionRateTable\n"
686 " LDR R12, [R1]\n"
687 " LDR R12, [R12]\n"
688 " LDR LR, [R2,R0,LSL#2]\n"
689 " LDR R3, =0x72144\n"
690 " CMP R12, #1\n"
691 " STR R7, [R3]\n"
692 " STR LR, [R6]\n"
693
694 " LDREQ R3, =video_quality\n"
695 " LDREQ R3, [R3]\n"
696 " LDREQ R3, [R3]\n"
697 " STREQ R3, [R6]\n"
698 " LDMFD SP!, {R4-R7,PC}\n"
699 );
700 }
701
702
703
704 void __attribute__((naked,noinline)) sub_FFD1BFD4_my(){
705 asm volatile(
706 " STMFD SP!, {R4-R11,LR}\n"
707 " LDR R3, =0x720A8\n"
708 " SUB SP, SP, #0x34\n"
709 " LDR R12, [R3]\n"
710 " LDR R2, =0x72068\n"
711 " LDR R1, =0x7206C\n"
712 " LDR R0, =0x72094\n"
713 " MOV R11, #0\n"
714 " STR R11, [R2]\n"
715 " STR R12, [R0]\n"
716 " STR R11, [R1]\n"
717 " SUB R3, R12, #0xA\n"
718 " CMP R3, #0x32\n"
719 " LDRLS PC, [PC,R3,LSL#2]\n"
720 " B loc_FFD1C0F4\n"
721 " .long loc_FFD1C0DC, loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4\n"
722 " .long loc_FFD1C0F4, loc_FFD1C0DC, loc_FFD1C0F4, loc_FFD1C0F4\n"
723 " .long loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0E4, loc_FFD1C0F4\n"
724 " .long loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4\n"
725 " .long loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4\n"
726 " .long loc_FFD1C0E4, loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4\n"
727 " .long loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4\n"
728 " .long loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4\n"
729 " .long loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4\n"
730 " .long loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4\n"
731 " .long loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4\n"
732 " .long loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0F4\n"
733 " .long loc_FFD1C0F4, loc_FFD1C0F4, loc_FFD1C0EC\n"
734 " loc_FFD1C0DC:\n"
735 " MOV R11, #2\n"
736 " B loc_FFD1C104\n"
737 " loc_FFD1C0E4:\n"
738 " MOV R11, #4\n"
739 " B loc_FFD1C104\n"
740 " loc_FFD1C0EC:\n"
741 " MOV R11, #8\n"
742 " B loc_FFD1C104\n"
743 " loc_FFD1C0F4:\n"
744 " MOV R1, #0x3AC\n"
745 " LDR R0, =0xFFD1B5A8\n"
746 " ADD R1, R1, #1\n"
747 " BL sub_FFC03AEC\n"
748 " loc_FFD1C104:\n"
749 " LDR R4, =0x72130\n"
750 " MOV R1, #0\n"
751 " MOV R2, R4\n"
752 " MOV R0, #8\n"
753 " BL sub_FFC0281C\n"
754 " LDR R5, =0x72088\n"
755 " LDR R1, =0x72090\n"
756 " LDR R3, [R5]\n"
757 " LDR R2, [R1]\n"
758 " MUL R12, R3, R2\n"
759 " LDR R2, =0x720A4\n"
760 " LDR R2, [R2]\n"
761 " LDR R1, [R4,#4]\n"
762 " LDR R5, =0x720A8\n"
763 " STR R2, [SP,#0x58-0x2C]\n"
764 " LDR LR, =0x72080\n"
765 " LDR R7, =0x720A0\n"
766 " LDR R3, =0x72074\n"
767 " LDR R2, [R7]\n"
768 " LDR R6, [R5]\n"
769 " LDR R9, [LR]\n"
770 " LDR R5, =0x72084\n"
771 " LDR LR, [R3]\n"
772 " LDR R7, =0x72088\n"
773 " LDR R3, =0x72090\n"
774 " LDR R0, [R4]\n"
775 " LDR R4, [R5]\n"
776 " LDRH R5, [R7]\n"
777 " LDRH R7, [R3]\n"
778 " LDR R3, =0x7208C\n"
779 " MOV R12, R12,LSL#13\n"
780 " LDR R8, [R3]\n"
781 " LDR R10, =0xFFD1C704\n"
782 " STR R4, [SP,#0x58-0x50]\n"
783 " LDR R4, =0x72098\n"
784 " LDR R3, [SP,#0x58-0x2C]\n"
785 " MOV R12, R12,LSR#16\n"
786 " STR R12, [SP,#0x58-0x48]\n"
787 " STR R5, [SP,#0x58-0x44]\n"
788 " STR R7, [SP,#0x58-0x40]\n"
789 " STR R4, [SP,#0x58-0x30]\n"
790 " STMEA SP, {R6,LR}\n"
791 " STR R9, [SP,#0x58-0x4C]\n"
792 " STR R11, [SP,#0x58-0x3C]\n"
793 " STR R8, [SP,#0x58-0x38]\n"
794 " STR R10, [SP,#0x58-0x34]\n"
795 " LDR R4, =0x720E4\n"
796 " BL sub_FFD1D24C_my\n"
797 " LDR R12, =0x720E8\n"
798 " LDR R3, =0x72108\n"
799 " LDR R0, [R4]\n"
800 " LDMIA R3, {R1,R2}\n"
801 " LDR R3, [R12]\n"
802 " BL sub_FFD1D550\n"
803 " LDR R7, =0x72074\n"
804 " LDR R5, =0x720A0\n"
805 " LDR R12, [R7]\n"
806 " LDR R0, [R5]\n"
807 " LDR R2, =0x720D4\n"
808 " MOV R3, #0\n"
809 " LDR R1, =0x720C8\n"
810 " STR R12, [SP]\n"
811 " BL sub_FFD1CE60\n"
812 " LDR R2, =0x7209C\n"
813 " LDR R1, =0x720EC\n"
814 " LDR R3, [R2]\n"
815 " LDR R0, [R1]\n"
816 " LDR R2, =0xFFD1B568\n"
817 " ADD R3, R3, R3,LSL#1\n"
818 " ADD R3, R3, R0\n"
819 " LDR R0, [R2,R3,LSL#2]\n"
820 " MOV R1, #1\n"
821 " BL sub_FFC80EA0\n"
822 " LDR R0, =0xFFD1C3B4\n"
823 " MOV R1, #0\n"
824 " BL sub_FFC810C8\n"
825 " MOV R0, #0\n"
826 " BL sub_FFC1D0C8\n"
827 " TST R0, #1\n"
828 " BEQ loc_FFD1C250\n"
829 " LDR R0, =0xFFD1B5A8\n"
830 " MOV R1, #0x3E0\n"
831 " BL sub_FFC03AEC\n"
832 " loc_FFD1C250:\n"
833 " LDR R3, =0x5DE0\n"
834 " MOV R7, #1\n"
835 " LDR R0, =0xFFD1C8AC\n"
836 " MOV R1, #0\n"
837 " STR R7, [R3]\n"
838 " BL sub_FFC1D0D8\n"
839 " LDR R3, =0x71F84\n"
840 " MOV R1, #0x1E\n"
841 " LDR R0, [R3]\n"
842 " BL sub_FFC10C70\n"
843 " CMP R0, #9\n"
844 " BNE loc_FFD1C290\n"
845 " MOV R1, #0x3E4\n"
846 " LDR R0, =0xFFD1B5A8\n"
847 " ADD R1, R1, R7\n"
848 " BL sub_FFC03AEC\n"
849 " loc_FFD1C290:\n"
850 " LDR R3, =0x72088\n"
851 " LDR R1, =0x72090\n"
852 " LDR R4, =0x72084\n"
853 " LDR R2, [R1]\n"
854 " LDR R0, [R4]\n"
855 " LDR R1, [R3]\n"
856 " BL nullsub\n"
857 " ADD R5, SP, #0x30\n"
858 " MOV R0, R5\n"
859 " BL sub_FFD1DA84\n"
860 " LDR R3, =0x7208C\n"
861 " LDR R0, [SP,#0x30]\n"
862 " LDR R1, [R3]\n"
863 " BL nullsub\n"
864 " LDR R4, =0x72140\n"
865 " LDR R3, [SP,#0x30]\n"
866 " LDR R6, =0x72138\n"
867 " MOV R0, R5\n"
868 " STR R3, [R6]\n"
869 " STR R7, [R4]\n"
870 " BL sub_FFD1DA84\n"
871 " LDR R5, =0x7208C\n"
872 " LDR R0, [SP,#0x30]\n"
873 " LDR R1, [R5]\n"
874 " BL nullsub\n"
875 " LDR R3, [R4]\n"
876 " LDR R0, [SP,#0x30]\n"
877 " LDR R5, =0x7212C\n"
878 " LDR R12, =0xFFD1C80C\n"
879 " LDR LR, =0x7207C\n"
880 " ADD R2, R3, #1\n"
881 " MOV R1, #2\n"
882 " AND R3, R3, #1\n"
883 " STR R0, [R6,R3,LSL#2]\n"
884 " STR R2, [R4]\n"
885 " STR R12, [R5]\n"
886 " STR R1, [LR]\n"
887 " ADD SP, SP, #0x34\n"
888 " LDMFD SP!, {R4-R11,PC}\n"
889 " nullsub: MOV PC, LR\n"
890 );
891 }
892
893 void __attribute__((naked,noinline)) sub_FFD1D24C_my(){
894 asm volatile(
895 " STMFD SP!, {R4-R11,LR}\n"
896 " MOV R9, R2\n"
897 " LDR R2, =0x7245C\n"
898 " SUB SP, SP, #8\n"
899 " LDRSH R12, [SP,#0x3C]\n"
900 " LDRSH LR, [SP,#0x2C+0x1C]\n"
901 " LDR R11, [SP,#0x2C]\n"
902 " LDRSH R8, [SP,#0x2C+0x14]\n"
903 " LDRSH R7, [SP,#0x2C+0x18]\n"
904 " STR R3, [R2]\n"
905 " LDR R2, [SP,#0x2C+0x8]\n"
906 " LDR R3, =0x72464\n"
907 " STR R2, [R3]\n"
908 " LDR R3, [SP,#0x2C+0xC]\n"
909 " LDR R4, =0x72468\n"
910 " LDR R6, =0x72470\n"
911 " STR R3, [R4]\n"
912 " LDR R2, =0x72472\n"
913 " LDR R3, =0x72474\n"
914 " MOV R12, R12,LSL#16\n"
915 " MOV LR, LR,LSL#16\n"
916 " LDR R5, =0x7246C\n"
917 " MOV R12, R12,LSR#16\n"
918 " MOV LR, LR,LSR#16\n"
919 " STR R12, [R5]\n"
920 " STRH R8, [R6]\n"
921 " STR LR, [R3]\n"
922 " STRH R7, [R2]\n"
923 " LDR R12, [SP,#0x2C+0x24]\n"
924 " LDR R10, =0x72498\n"
925 " LDR R2, =0x72458\n"
926 " LDR R3, =0x72460\n"
927 " CMP R9, #0x400\n"
928 " STR R9, [R2]\n"
929 " STR R12, [R10]\n"
930 " STR R11, [R3]\n"
931 " MOV R4, R0\n"
932 " MOV R6, R1\n"
933 " BNE loc_FFD1D320\n"
934 " ADD R2, R11, R11,LSL#1\n"
935 " RSB R2, R2, R2,LSL#4\n"
936 " LDR R12, =0x723FC\n"
937 " LDR R7, =0x7242C\n"
938 " MOV R0, R2,LSL#2\n"
939 " MOV R3, #0xb40\n"
940 " MOV R1, #0x80000\n"
941 " STR R1, [R7]\n"
942 " ADD R3, R3, #8\n"
943 " STR R0, [R12]\n"
944 " MOV R12, #3\n"
945 " ADD R2, R3, R2,LSL#6\n"
946 " STR R12, [SP,#0x2C-0x28]\n"
947 " B loc_FFD1D3F0\n"
948 " loc_FFD1D320:\n"
949 " CMP R9, #0x280\n"
950 " BNE loc_FFD1D360\n"
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967 #ifdef LIFTEDMLIMIT_A420
968 "LDR R7, =liftedmlimit_a420\n"
969 "LDR R3, =0xE100\n"
970 "MUL R3, R7, R3\n"
971 "RSB R8, R11, R11, LSL#4\n"
972 "RSB R2, R8, R8, LSL#4\n"
973 "MUL R2, R7, R2\n"
974 #else
975 "RSB R8, R11, R11, LSL#4\n"
976 "MOV R3, #0xE100\n"
977 "RSB R2, R8, R8, LSL#4\n"
978 #endif
979 " ADD R3, R3, #8\n"
980 " LDR R7, =0x7242C\n"
981 " LDR R12, =0x723FC\n"
982
983 "MOV R0, R2, LSL#4\n"
984 " MOV R1, #0x40000\n"
985
986 "ADD R2, R3, R2, LSL#8\n"
987 " MOV R3, #2\n"
988 " STR R1, [R7]\n"
989 " STR R0, [R12]\n"
990 " STR R3, [SP,#0x2C-0x28]\n"
991 " B loc_FFD1D3F0\n"
992 " loc_FFD1D360:\n"
993 " CMP R9, #0x140\n"
994 " BNE loc_FFD1D3BC\n"
995
996
997
998 #ifdef LIFTEDMLIMIT_A420
999 "LDR R7, =liftedmlimit_a420\n"
1000 "LDR R3, =0xE100\n"
1001 "MUL R3, R7, R3\n"
1002 "RSB R8, R11, R11, LSL#4\n"
1003 "RSB R2, R8, R8, LSL#4\n"
1004 "MUL R2, R7, R2\n"
1005 #else
1006 "RSB R8, R11, R11, LSL#4\n"
1007 "MOV R3, #0xE100\n"
1008 "RSB R2, R8, R8, LSL#4\n"
1009 #endif
1010 " ADD R3, R3, #8\n"
1011 " LDR R7, =0x7242C\n"
1012 " LDR R12, =0x723FC\n"
1013
1014 "MOV R0, R2, LSL#4\n"
1015 " MOV R1, #0x20000\n"
1016
1017 "ADD R2, R3, R2, LSL#8\n"
1018 " CMP R11, #0x3C\n"
1019 " MOV R3, #1\n"
1020 " STR R1, [R7]\n"
1021 " STR R0, [R12]\n"
1022 " STR R3, [SP,#0x2C-0x28]\n"
1023 " BNE loc_FFD1D3F0\n"
1024
1025
1026
1027
1028
1029
1030
1031
1032 "MOV R3, R8,LSL#2\n"
1033 "MOV R2, #0xE400\n"
1034 "STR R3, [R12]\n"
1035 "ADD R2, R2, #0xC8\n"
1036 " B loc_FFD1D3F0\n"
1037 " loc_FFD1D3BC:\n"
1038 " ADD R2, R11, R11,LSL#1\n"
1039 " RSB R2, R2, R2,LSL#4\n"
1040 " LDR R12, =0x723FC\n"
1041 " LDR R7, =0x7242C\n"
1042 " MOV R0, R2,LSL#2\n"
1043 " MOV R1, #0x10000\n"
1044 " STR R1, [R7]\n"
1045 " MOV R3, #0xb40\n"
1046 " STR R0, [R12]\n"
1047 " MOV R12, #0\n"
1048 " ADD R3, R3, #8\n"
1049 " STR R12, [SP,#0x2C-0x28]\n"
1050 " ADD R2, R3, R2,LSL#6\n"
1051 " loc_FFD1D3F0:\n"
1052 " ADD LR, R4, #0xF\n"
1053 " LDR R3, [SP,#0x4C]\n"
1054 " BIC LR, LR, #0xF\n"
1055 " ADD LR, LR, #8\n"
1056 " ADD R5, LR, R2\n"
1057 " LDR R1, [R7]\n"
1058 " MOV R2, R3,LSL#1\n"
1059 " LDR R3, [SP,#0x2C+0x28]\n"
1060 " ADD R12, R4, R6\n"
1061 " STR R1, [R3]\n"
1062 " LDR R3, [SP,#0x2C+0x4]\n"
1063 " RSB R12, R5, R12\n"
1064 " RSB R12, R2, R12\n"
1065 " SUBS R3, R3, #0\n"
1066 " MOVNE R3, #1\n"
1067 " SUB R12, R12, #0x10\n"
1068 " STR R3, [SP]\n"
1069 " BIC R12, R12, #0x7F00\n"
1070 " LDR R3, =0x7248C\n"
1071 " BIC R12, R12, #0xFF\n"
1072 " STR R12, [R3]\n"
1073 " LDR R6, =0x7247C\n"
1074 " LDR R3, =0x72484\n"
1075 " ADD R4, R5, R12\n"
1076 " STR LR, [R6]\n"
1077 " STR R4, [R3]\n"
1078 " LDR R12, [SP,#0x4C]\n"
1079 " LDR R11, =0x72480\n"
1080 " LDR R10, =0x72488\n"
1081 " LDR R3, =0x7241C\n"
1082 " MOV R0, R4\n"
1083 " MOV R1, #0x80\n"
1084 " STR R12, [R3]\n"
1085 " STR R5, [R11]\n"
1086 " ADD R2, R2, #0x10\n"
1087 " STR R4, [R10]\n"
1088 " BL sub_FFC7FE44\n"
1089 " LDR R10, [R10]\n"
1090 " LDR R9, [R11]\n"
1091 " LDR LR, =0x62773130\n"
1092 " LDR R12, =0x723D8\n"
1093 " LDR R0, =0x7241C\n"
1094 " MOV R1, #0\n"
1095 " loc_FFD1D49C:\n"
1096 " LDR R3, [R0]\n"
1097 " ADD R3, R3, #8\n"
1098 " MUL R2, R3, R1\n"
1099 " STR LR, [R10,R2]\n"
1100 " STR R9, [R12,R1,LSL#2]\n"
1101 " LDR R3, [R0]\n"
1102 " ADD R1, R1, #1\n"
1103 " ADD R2, R10, R2\n"
1104 " CMP R1, #1\n"
1105 " STR R3, [R2,#4]\n"
1106 " BLE loc_FFD1D49C\n"
1107 " LDR R3, =0x72460\n"
1108 " LDR R1, [SP]\n"
1109 " LDR R2, [R3]\n"
1110 " LDR R0, [SP,#0x2C-0x28]\n"
1111 " BL sub_FFCFBE50\n"
1112 " LDR R3, =0x7241C\n"
1113 " LDR R2, [R3]\n"
1114 " LDR R1, =0x72414\n"
1115 " ADD R0, R0, R2\n"
1116 " STR R0, [R1]\n"
1117 " ADD SP, SP, #8\n"
1118 " LDMFD SP!, {R4-R11,PC}\n"
1119 );
1120 }
1121