This source file includes following definitions.
- boot
- sub_FF810354_my
- sub_FF811178_my
- sub_FF815E34_my
- taskcreate_Startup_my
- task_Startup_my
- taskcreatePhySw_my
- init_file_modules_task
- sub_FF889414_my
- sub_FF86B730_my
- sub_FF86B364_my
- sub_FF86B060_my
- JogDial_task_my
- movie_record_task
- sub_FF94A89C_my
- capt_seq_task
- sub_FF94FE74_my
- sub_FF877278_my
- exp_drv_task
- sub_FF8B7A94_my
- sub_FF8AA1F0_my
1
2
3
4
5 void __attribute__((naked,noinline)) boot( ) {
6 asm volatile (
7 " LDR R1, =0xC0410000 \n"
8 " MOV R0, #0 \n"
9 " STR R0, [R1] \n"
10 " MOV R1, #0x78 \n"
11 " MCR p15, 0, R1, c1, c0 \n"
12 " MOV R1, #0 \n"
13 " MCR p15, 0, R1, c7, c10, 4 \n"
14 " MCR p15, 0, R1, c7, c5 \n"
15 " MCR p15, 0, R1, c7, c6 \n"
16 " MOV R0, #0x3D \n"
17 " MCR p15, 0, R0, c6, c0 \n"
18 " MOV R0, #0xC000002F \n"
19 " MCR p15, 0, R0, c6, c1 \n"
20 " MOV R0, #0x33 \n"
21 " MCR p15, 0, R0, c6, c2 \n"
22 " MOV R0, #0x40000033 \n"
23 " MCR p15, 0, R0, c6, c3 \n"
24 " MOV R0, #0x80000017 \n"
25 " MCR p15, 0, R0, c6, c4 \n"
26 " LDR R0, =0xFF80002D \n"
27 " MCR p15, 0, R0, c6, c5 \n"
28 " MOV R0, #0x34 \n"
29 " MCR p15, 0, R0, c2, c0 \n"
30 " MOV R0, #0x34 \n"
31 " MCR p15, 0, R0, c2, c0, 1 \n"
32 " MOV R0, #0x34 \n"
33 " MCR p15, 0, R0, c3, c0 \n"
34 " LDR R0, =0x3333330 \n"
35 " MCR p15, 0, R0, c5, c0, 2 \n"
36 " LDR R0, =0x3333330 \n"
37 " MCR p15, 0, R0, c5, c0, 3 \n"
38 " MRC p15, 0, R0, c1, c0 \n"
39 " ORR R0, R0, #0x1000 \n"
40 " ORR R0, R0, #4 \n"
41 " ORR R0, R0, #1 \n"
42 " MCR p15, 0, R0, c1, c0 \n"
43 " MOV R1, #0x80000006 \n"
44 " MCR p15, 0, R1, c9, c1 \n"
45 " MOV R1, #6 \n"
46 " MCR p15, 0, R1, c9, c1, 1 \n"
47 " MRC p15, 0, R1, c1, c0 \n"
48 " ORR R1, R1, #0x50000 \n"
49 " MCR p15, 0, R1, c1, c0 \n"
50 " LDR R2, =0xC0200000 \n"
51 " MOV R1, #1 \n"
52 " STR R1, [R2, #0x10C] \n"
53 " MOV R1, #0xFF \n"
54 " STR R1, [R2, #0xC] \n"
55 " STR R1, [R2, #0x1C] \n"
56 " STR R1, [R2, #0x2C] \n"
57 " STR R1, [R2, #0x3C] \n"
58 " STR R1, [R2, #0x4C] \n"
59 " STR R1, [R2, #0x5C] \n"
60 " STR R1, [R2, #0x6C] \n"
61 " STR R1, [R2, #0x7C] \n"
62 " STR R1, [R2, #0x8C] \n"
63 " STR R1, [R2, #0x9C] \n"
64 " STR R1, [R2, #0xAC] \n"
65 " STR R1, [R2, #0xBC] \n"
66 " STR R1, [R2, #0xCC] \n"
67 " STR R1, [R2, #0xDC] \n"
68 " STR R1, [R2, #0xEC] \n"
69 " STR R1, [R2, #0xFC] \n"
70 " LDR R1, =0xC0400008 \n"
71 " LDR R2, =0x430005 \n"
72 " STR R2, [R1] \n"
73 " MOV R1, #1 \n"
74 " LDR R2, =0xC0243100 \n"
75 " STR R2, [R1] \n"
76 " LDR R2, =0xC0242010 \n"
77 " LDR R1, [R2] \n"
78 " ORR R1, R1, #1 \n"
79 " STR R1, [R2] \n"
80 " LDR R0, =0xFFC0281C \n"
81 " LDR R1, =0x1900 \n"
82 " LDR R3, =0x208F0 \n"
83 "loc_FF81013C:\n"
84 " CMP R1, R3 \n"
85 " LDRCC R2, [R0], #4 \n"
86 " STRCC R2, [R1], #4 \n"
87 " BCC loc_FF81013C \n"
88 " LDR R1, =0x153E84 \n"
89 " MOV R2, #0 \n"
90 "loc_FF810154:\n"
91 " CMP R3, R1 \n"
92 " STRCC R2, [R3], #4 \n"
93 " BCC loc_FF810154 \n"
94 " B sub_FF810354 \n"
95 );
96 }
97
98
99
100
101 void __attribute__((naked,noinline)) sub_FF810354_my( ) {
102 asm volatile (
103 " LDR R0, =0xFF8103CC \n"
104 " MOV R1, #0 \n"
105 " LDR R3, =0xFF810404 \n"
106 "loc_FF810360:\n"
107 " CMP R0, R3 \n"
108 " LDRCC R2, [R0], #4 \n"
109 " STRCC R2, [R1], #4 \n"
110 " BCC loc_FF810360 \n"
111 " LDR R0, =0xFF810404 \n"
112 " MOV R1, #0x4B0 \n"
113 " LDR R3, =0xFF810618 \n"
114 "loc_FF81037C:\n"
115 " CMP R0, R3 \n"
116 " LDRCC R2, [R0], #4 \n"
117 " STRCC R2, [R1], #4 \n"
118 " BCC loc_FF81037C \n"
119 " MOV R0, #0xD2 \n"
120 " MSR CPSR_cxsf, R0 \n"
121 " MOV SP, #0x1000 \n"
122 " MOV R0, #0xD3 \n"
123 " MSR CPSR_cxsf, R0 \n"
124 " MOV SP, #0x1000 \n"
125 " LDR R0, =0x6C4 \n"
126 " LDR R2, =0xEEEEEEEE \n"
127 " MOV R3, #0x1000 \n"
128 "loc_FF8103B0:\n"
129 " CMP R0, R3 \n"
130 " STRCC R2, [R0], #4 \n"
131 " BCC loc_FF8103B0 \n"
132 " BL sub_FF811178 \n"
133 );
134 }
135
136
137
138
139 void __attribute__((naked,noinline)) sub_FF811178_my( ) {
140 asm volatile (
141 " STR LR, [SP, #-4]! \n"
142 " SUB SP, SP, #0x74 \n"
143 " MOV R0, SP \n"
144 " MOV R1, #0x74 \n"
145 " BL sub_FFB3A5D8 \n"
146 " MOV R0, #0x53000 \n"
147 " STR R0, [SP, #4] \n"
148 " LDR R0, =0x153E84 \n"
149 " LDR R2, =0x339C00 \n"
150 " LDR R1, =0x3324A8 \n"
151 " STR R0, [SP, #8] \n"
152 " SUB R0, R1, R0 \n"
153 " ADD R3, SP, #0xC \n"
154 " STR R2, [SP] \n"
155 " STMIA R3, {R0-R2} \n"
156 " MOV R0, #0x22 \n"
157 " STR R0, [SP, #0x18] \n"
158 " MOV R0, #0x68 \n"
159 " STR R0, [SP, #0x1C] \n"
160 " LDR R0, =0x19B \n"
161 " LDR R1, =0xFF815E34 \n"
162 " STR R0, [SP, #0x20] \n"
163 " MOV R0, #0x96 \n"
164 " STR R0, [SP, #0x24] \n"
165 " MOV R0, #0x78 \n"
166 " STR R0, [SP, #0x28] \n"
167 " MOV R0, #0x64 \n"
168 " STR R0, [SP, #0x2C] \n"
169 " MOV R0, #0 \n"
170 " STR R0, [SP, #0x30] \n"
171 " STR R0, [SP, #0x34] \n"
172 " MOV R0, #0x10 \n"
173 " STR R0, [SP, #0x5C] \n"
174 " MOV R0, #0x800 \n"
175 " STR R0, [SP, #0x60] \n"
176 " MOV R0, #0xA0 \n"
177 " STR R0, [SP, #0x64] \n"
178 " MOV R0, #0x280 \n"
179 " STR R0, [SP, #0x68] \n"
180 " MOV R0, SP \n"
181 " MOV R2, #0 \n"
182 " BL sub_FF8133E4 \n"
183 );
184 }
185
186
187
188
189 void __attribute__((naked,noinline)) sub_FF815E34_my( ) {
190 asm volatile (
191 " STMFD SP!, {R4,LR} \n"
192 " BL sub_FF810B08 \n"
193 " BL sub_FF81A148 \n"
194 " CMP R0, #0 \n"
195 " LDRLT R0, =0xFF815F48 \n"
196 " BLLT sub_FF815F28 \n"
197 " BL sub_FF815A70 \n"
198 " CMP R0, #0 \n"
199 " LDRLT R0, =0xFF815F50 \n"
200 " BLLT sub_FF815F28 \n"
201 " LDR R0, =0xFF815F60 \n"
202 " BL sub_FF815B58 \n"
203 " CMP R0, #0 \n"
204 " LDRLT R0, =0xFF815F68 \n"
205 " BLLT sub_FF815F28 \n"
206 " LDR R0, =0xFF815F60 \n"
207 " BL sub_FF813BE0 \n"
208 " CMP R0, #0 \n"
209 " LDRLT R0, =0xFF815F7C \n"
210 " BLLT sub_FF815F28 \n"
211 " BL sub_FF819B5C \n"
212 " CMP R0, #0 \n"
213 " LDRLT R0, =0xFF815F88 \n"
214 " BLLT sub_FF815F28 \n"
215 " BL sub_FF81165C \n"
216 " CMP R0, #0 \n"
217 " LDRLT R0, =0xFF815F94 \n"
218 " BLLT sub_FF815F28 \n"
219 " LDMFD SP!, {R4,LR} \n"
220 " B sub_FF81F868 \n"
221 );
222 }
223
224
225
226
227 void __attribute__((naked,noinline)) taskcreate_Startup_my( ) {
228 asm volatile (
229 " STMFD SP!, {R3-R5,LR} \n"
230 " BL sub_FF833344 \n"
231 " BL sub_FF83A224 \n"
232 " CMP R0, #0 \n"
233 " BNE loc_FF81F8B0 \n"
234 " LDR R4, =0xC0220000 \n"
235 " LDR R0, [R4, #0x12C] \n"
236 " TST R0, #1 \n"
237 " MOVEQ R0, #0x12C \n"
238 " BLEQ sub_FF83865C \n"
239 " BL sub_FF833340 \n"
240 " CMP R0, #0 \n"
241 " BNE loc_FF81F8B0 \n"
242 " BL sub_FF8329DC \n"
243 " MOV R0, #0x44 \n"
244 " STR R0, [R4, #0x1C] \n"
245 " BL sub_FF832BC8 \n"
246 "loc_FF81F8AC:\n"
247 " B loc_FF81F8AC \n"
248 "loc_FF81F8B0:\n"
249 " BL sub_FF83334C \n"
250 " BL sub_FF833348 \n"
251 " BL sub_FF8384D4 \n"
252 " LDR R1, =0x38E000 \n"
253 " MOV R0, #0 \n"
254 " BL sub_FF83891C \n"
255 " BL sub_FF8386C8 \n"
256 " MOV R3, #0 \n"
257 " STR R3, [SP] \n"
258 " LDR R3, =0xFF81F804 \n"
259 " MOV R2, #0 \n"
260 " MOV R1, #0x19 \n"
261 " LDR R0, =0xFF81F8F8 \n"
262 " BL sub_FF81E5B4 \n"
263 " MOV R0, #0 \n"
264 " LDMFD SP!, {R3-R5,PC} \n"
265 "dword_FF81F8F0 DCD 0xC0220000 \n"
266 "dword_FF81F8F4 DCD 0x38E000 \n"
267 "dword_FF81F8F8 DCD 0x72617453 \n"
268 "dword_FF81F8FC DCD 0x707574 \n"
269 "dword_FF81F900 DCD 0xE92D4011 \n"
270 "dword_FF81F904 DCD 0xE24DD01C \n"
271 "dword_FF81F908 DCD 0xE28D1004 \n"
272 "dword_FF81F90C DCD 0xE28F0F75 \n"
273 "dword_FF81F910 DCD 0xEB005712 \n"
274 "dword_FF81F914 DCD 0xE3700001 \n"
275 );
276 }
277
278
279
280
281 void __attribute__((naked,noinline)) task_Startup_my( ) {
282 asm volatile (
283 " STMFD SP!, {R4,LR} \n"
284 " BL sub_FF816490 \n"
285 " BL sub_FF834440 \n"
286 " BL sub_FF832670 \n"
287 " BL sub_FF83A264 \n"
288 " BL sub_FF83A448 \n"
289 " BL sub_FF83A2F8 \n"
290 " BL sub_FF83A5F0 \n"
291 " BL sub_FF83136C \n"
292 " BL sub_FF83A478 \n"
293 " BL sub_FF837C78 \n"
294 " BL sub_FF83A5F4 \n"
295 " BL sub_FF833230 \n"
296 " BL sub_FF835FFC \n"
297 " BL sub_FF83A60C \n"
298 " BL sub_FF8306A4 \n"
299 " BL sub_FF831FC8 \n"
300 " BL sub_FF83A000 \n"
301 " BL sub_FF832624 \n"
302 " BL sub_FF831ED4 \n"
303 " BL sub_FF8313A0 \n"
304 " BL sub_FF83B090 \n"
305 " BL sub_FF831EAC \n"
306 );
307 }
308
309
310
311
312 void __attribute__((naked,noinline)) taskcreatePhySw_my( ) {
313 asm volatile (
314 " STMFD SP!, {R3-R5,LR} \n"
315 " LDR R4, =0x1C38 \n"
316 " LDR R0, [R4, #0x10] \n"
317 " CMP R0, #0 \n"
318 " BNE sub_FF833264 \n"
319 " MOV R3, #0 \n"
320 " STR R3, [SP] \n"
321 " LDR R3, =0xFF8331FC \n"
322 " MOV R2, #0x800 \n"
323 );
324 }
325
326
327
328
329 void __attribute__((naked,noinline)) init_file_modules_task( ) {
330 asm volatile (
331 " STMFD SP!, {R4-R6,LR} \n"
332 " BL sub_FF8893E8 \n"
333 " LDR R5, =0x5006 \n"
334 " MOVS R4, R0 \n"
335 " MOVNE R1, #0 \n"
336 " MOVNE R0, R5 \n"
337 " BLNE sub_FF88E804 \n"
338 " BL sub_FF889414 \n"
339 );
340 }
341
342
343
344
345 void __attribute__((naked,noinline)) sub_FF889414_my( ) {
346 asm volatile (
347 " STMFD SP!, {R4,LR} \n"
348 " MOV R0, #3 \n"
349 " BL sub_FF873370 \n"
350 " BL sub_FF87B04C \n"
351 );
352 }
353
354
355
356
357 void __attribute__((naked,noinline)) sub_FF86B730_my( ) {
358 asm volatile (
359 " STMFD SP!, {R4-R8,LR} \n"
360 " MOV R8, R0 \n"
361 " BL sub_FF86B6B0 \n"
362 " LDR R1, =0x49160 \n"
363 " MOV R6, R0 \n"
364 " ADD R4, R1, R0, LSL #7 \n"
365 " LDR R0, [R4, #0x6C] \n"
366 " CMP R0, #4 \n"
367 " LDREQ R1, =0x804 \n"
368 " LDREQ R0, =0xFF86B1FC \n"
369 " BLEQ sub_FF81E88C \n"
370 " MOV R1, R8 \n"
371 " MOV R0, R6 \n"
372 " BL sub_FF86AF50 \n"
373 " LDR R0, [R4, #0x38] \n"
374 " BL sub_FF86BD4C \n"
375 " CMP R0, #0 \n"
376 " STREQ R0, [R4, #0x6C] \n"
377 " MOV R0, R6 \n"
378 " BL sub_FF86AFE0 \n"
379 " MOV R0, R6 \n"
380 " BL sub_FF86B364 \n"
381 );
382 }
383
384
385
386
387 void __attribute__((naked,noinline)) sub_FF86B364_my( ) {
388 asm volatile (
389 " STMFD SP!, {R4-R6,LR} \n"
390 " MOV R5, R0 \n"
391 " LDR R0, =0x49160 \n"
392 " ADD R4, R0, R5, LSL #7 \n"
393 " LDR R0, [R4, #0x6C] \n"
394 " TST R0, #2 \n"
395 " MOVNE R0, #1 \n"
396 " LDMNEFD SP!, {R4-R6,PC} \n"
397 " LDR R0, [R4, #0x38] \n"
398 " MOV R1, R5 \n"
399 " BL sub_FF86B060 \n"
400 " CMP R0, #0 \n"
401 );
402 }
403
404
405
406
407 void __attribute__((naked,noinline)) sub_FF86B060_my( ) {
408 asm volatile (
409 " STMFD SP!, {R4-R10,LR} \n"
410 " MOV R9, R0 \n"
411 " LDR R0, =0x49160 \n"
412 " MOV R8, #0 \n"
413 " ADD R5, R0, R1, LSL #7 \n"
414 " LDR R0, [R5, #0x3C] \n"
415 " MOV R7, #0 \n"
416 " CMP R0, #7 \n"
417 " MOV R6, #0 \n"
418 " ADDLS PC, PC, R0, LSL #2 \n"
419 " B loc_FF86B1B8 \n"
420 " B loc_FF86B0C4 \n"
421 " B loc_FF86B0AC \n"
422 " B loc_FF86B0AC \n"
423 " B loc_FF86B0AC \n"
424 " B loc_FF86B0AC \n"
425 " B loc_FF86B1B0 \n"
426 " B loc_FF86B0AC \n"
427 " B loc_FF86B0AC \n"
428 "loc_FF86B0AC:\n"
429 " MOV R2, #0 \n"
430 " MOV R1, #0x200 \n"
431 " MOV R0, #2 \n"
432 " BL sub_FF883468 \n"
433 " MOVS R4, R0 \n"
434 " BNE loc_FF86B0CC \n"
435 "loc_FF86B0C4:\n"
436 " MOV R0, #0 \n"
437 " LDMFD SP!, {R4-R10,PC} \n"
438 "loc_FF86B0CC:\n"
439 " LDR R12, [R5, #0x50] \n"
440 " MOV R3, R4 \n"
441 " MOV R2, #1 \n"
442 " MOV R1, #0 \n"
443 " MOV R0, R9 \n"
444 " BLX R12 \n"
445 " CMP R0, #1 \n"
446 " BNE loc_FF86B0F8 \n"
447 " MOV R0, #2 \n"
448 " BL sub_FF8835B4 \n"
449 " B loc_FF86B0C4 \n"
450 "loc_FF86B0F8:\n"
451 " LDR R1, [R5, #0x64] \n"
452 " MOV R0, R9 \n"
453 " BLX R1 \n"
454 " LDRB R1, [R4, #0x1C9] \n"
455 " LDRB R3, [R4, #0x1C8] \n"
456 " LDRB R12, [R4, #0x1CC] \n"
457 " MOV R1, R1, LSL #0x18 \n"
458 " ORR R1, R1, R3, LSL #0x10 \n"
459 " LDRB R3, [R4, #0x1C7] \n"
460 " LDRB R2, [R4, #0x1BE] \n"
461 " LDRB LR, [R4, #0x1FF] \n"
462 " ORR R1, R1, R3, LSL #8 \n"
463 " LDRB R3, [R4, #0x1C6] \n"
464 " CMP R2, #0 \n"
465 " CMPNE R2, #0x80 \n"
466 " ORR R1, R1, R3 \n"
467 " LDRB R3, [R4, #0x1CD] \n"
468 " MOV R3, R3, LSL #0x18 \n"
469 " ORR R3, R3, R12, LSL #0x10 \n"
470 " LDRB R12, [R4, #0x1CB] \n"
471 " ORR R3, R3, R12, LSL #8 \n"
472 " LDRB R12, [R4, #0x1CA] \n"
473 " ORR R3, R3, R12 \n"
474 " LDRB R12, [R4, #0x1FE] \n"
475 " BNE loc_FF86B184 \n"
476 " CMP R0, R1 \n"
477 " BCC loc_FF86B184 \n"
478 " ADD R2, R1, R3 \n"
479 " CMP R2, R0 \n"
480 " CMPLS R12, #0x55 \n"
481 " CMPEQ LR, #0xAA \n"
482 " MOVEQ R7, R1 \n"
483 " MOVEQ R6, R3 \n"
484 " MOVEQ R4, #1 \n"
485 " BEQ loc_FF86B188 \n"
486 "loc_FF86B184:\n"
487 " MOV R4, R8 \n"
488 "loc_FF86B188:\n"
489 " MOV R0, #2 \n"
490 " BL sub_FF8835B4 \n"
491 " CMP R4, #0 \n"
492 " BNE loc_FF86B1C4 \n"
493 " LDR R1, [R5, #0x64] \n"
494 " MOV R7, #0 \n"
495 " MOV R0, R9 \n"
496 " BLX R1 \n"
497 " MOV R6, R0 \n"
498 " B loc_FF86B1C4 \n"
499 "loc_FF86B1B0:\n"
500 " MOV R6, #0x40 \n"
501 " B loc_FF86B1C4 \n"
502 "loc_FF86B1B8:\n"
503 " LDR R1, =0x568 \n"
504 " LDR R0, =0xFF86B1FC \n"
505 " BL sub_FF81E88C \n"
506 "loc_FF86B1C4:\n"
507 " STR R7, [R5, #0x44]! \n"
508 " STMIB R5, {R6,R8} \n"
509 " MOV R0, #1 \n"
510 " LDMFD SP!, {R4-R10,PC} \n"
511 Error: [undefined instr 28B8] Undefined instruction j
512 );
513 }
514
515
516
517
518 void __attribute__((naked,noinline)) JogDial_task_my( ) {
519 asm volatile (
520 " STMFD SP!, {R4-R11,LR} \n"
521 " SUB SP, SP, #0x2C \n"
522 " BL sub_FF85B358 \n"
523 " LDR R1, =0x23E4 \n"
524 " LDR R8, =0xFFB40564 \n"
525 " MOV R0, #0 \n"
526 " ADD R2, SP, #0x14 \n"
527 " ADD R3, SP, #0x18 \n"
528 " ADD R10, SP, #0xC \n"
529 " ADD R9, SP, #0x10 \n"
530 " MOV R7, #0 \n"
531 "loc_FF85AFDC:\n"
532 " ADD R3, SP, #0x18 \n"
533 " ADD R12, R3, R0, LSL #1 \n"
534 " ADD R2, SP, #0x14 \n"
535 " STRH R7, [R12] \n"
536 " ADD R12, R2, R0, LSL #1 \n"
537 " STRH R7, [R12] \n"
538 " STR R7, [R9, R0, LSL #2] \n"
539 " STR R7, [R10, R0, LSL #2] \n"
540 " ADD R0, R0, #1 \n"
541 " CMP R0, #1 \n"
542 " BLT loc_FF85AFDC \n"
543 "loc_FF85B008:\n"
544 " LDR R0, =0x23E4 \n"
545 " MOV R2, #0 \n"
546 " LDR R0, [R0, #8] \n"
547 " ADD R1, SP, #4 \n"
548 " BL sub_FF837F08 \n"
549 " TST R0, #1 \n"
550 " LDRNE R1, =0x226 \n"
551 " LDRNE R0, =0xFF85B28C \n"
552 " BLNE sub_FF81E88C \n"
553 " LDR R0, [SP, #4] \n"
554 " AND R4, R0, #0xFF \n"
555 " AND R0, R0, #0xFF00 \n"
556 " CMP R0, #0x100 \n"
557 " BEQ loc_FF85B08C \n"
558 " CMP R0, #0x200 \n"
559 " BEQ loc_FF85B0C4 \n"
560 " CMP R0, #0x300 \n"
561 " BEQ loc_FF85B2D8 \n"
562 " CMP R0, #0x400 \n"
563 " BNE loc_FF85B008 \n"
564 " CMP R4, #0 \n"
565 " LDRNE R1, =0x2CA \n"
566 " LDRNE R0, =0xFF85B28C \n"
567 " BLNE sub_FF81E88C \n"
568 " LDR R2, =0xFFB40550 \n"
569 " ADD R0, R4, R4, LSL #2 \n"
570 " LDR R1, [R2, R0, LSL #2] \n"
571 " STR R7, [R1] \n"
572 " MOV R1, #1 \n"
573 " ADD R0, R2, R0, LSL #2 \n"
574 "loc_FF85B080:\n"
575 " LDR R0, [R0, #8] \n"
576 " STR R1, [R0] \n"
577 " B loc_FF85B008 \n"
578 "loc_FF85B08C:\n"
579 " LDR R5, =0x23F4 \n"
580 " LDR R0, [R5, R4, LSL #2] \n"
581 " BL sub_FF838EA0 \n"
582 " LDR R2, =0xFF85AF3C \n"
583 " ADD R1, R2, #0 \n"
584 " ORR R3, R4, #0x200 \n"
585 " MOV R0, #0x28 \n"
586 " BL sub_FF838DBC \n"
587 " TST R0, #1 \n"
588 " CMPNE R0, #0x15 \n"
589 " STR R0, [R10, R4, LSL #2] \n"
590 " BEQ loc_FF85B008 \n"
591 " LDR R1, =0x23B \n"
592 " B loc_FF85B27C \n"
593 "loc_FF85B0C4:\n"
594 " LDR R1, =0xFFB40550 \n"
595 " ADD R0, R4, R4, LSL #2 \n"
596 " STR R0, [SP, #0x28] \n"
597 " ADD R0, R1, R0, LSL #2 \n"
598 " STR R0, [SP, #0x24] \n"
599 " LDR R0, [R0, #4] \n"
600 " LDR R0, [R0] \n"
601 " MOV R2, R0, ASR #0x10 \n"
602 " ADD R0, SP, #0x18 \n"
603 " ADD R0, R0, R4, LSL #1 \n"
604 " STR R0, [SP, #0x20] \n"
605 " STRH R2, [R0] \n"
606 " ADD R0, SP, #0x14 \n"
607 " ADD R0, R0, R4, LSL #1 \n"
608 " STR R0, [SP, #0x1C] \n"
609 " LDRSH R3, [R0] \n"
610 " SUB R0, R2, R3 \n"
611 " CMP R0, #0 \n"
612 " BEQ loc_FF85B234 \n"
613 " MOV R1, R0 \n"
614 " RSBLT R0, R0, #0 \n"
615 " MOVLE R5, #0 \n"
616 " MOVGT R5, #1 \n"
617 " CMP R0, #0xFF \n"
618 " BLS loc_FF85B150 \n"
619 " CMP R1, #0 \n"
620 " RSBLE R0, R3, #0xFF \n"
621 " ADDLE R0, R0, #0x7F00 \n"
622 " ADDLE R0, R0, R2 \n"
623 " RSBGT R0, R2, #0xFF \n"
624 " ADDGT R0, R0, #0x7F00 \n"
625 " ADDGT R0, R0, R3 \n"
626 " ADD R0, R0, #0x8000 \n"
627 " ADD R0, R0, #1 \n"
628 " EOR R5, R5, #1 \n"
629 "loc_FF85B150:\n"
630 " STR R0, [SP, #8] \n"
631 " LDR R0, [R9, R4, LSL #2] \n"
632 " CMP R0, #0 \n"
633 " BEQ loc_FF85B1A0 \n"
634 " LDR R1, =0xFFB40548 \n"
635 " ADD R1, R1, R4, LSL #3 \n"
636 " LDR R1, [R1, R5, LSL #2] \n"
637 " CMP R1, R0 \n"
638 " BEQ loc_FF85B1BC \n"
639 " ADD R11, R4, R4, LSL #1 \n"
640 " ADD R6, R8, R11, LSL #2 \n"
641 " LDRB R0, [R6, #9] \n"
642 " CMP R0, #1 \n"
643 " LDREQ R0, [R6, #4] \n"
644 " BLEQ sub_FF890684 \n"
645 " LDRB R0, [R6, #8] \n"
646 " CMP R0, #1 \n"
647 " BNE loc_FF85B1BC \n"
648 " LDR R0, [R8, R11, LSL #2] \n"
649 " B loc_FF85B1B8 \n"
650 "loc_FF85B1A0:\n"
651 " ADD R0, R4, R4, LSL #1 \n"
652 " ADD R1, R8, R0, LSL #2 \n"
653 " LDRB R1, [R1, #8] \n"
654 " CMP R1, #1 \n"
655 " BNE loc_FF85B1BC \n"
656 " LDR R0, [R8, R0, LSL #2] \n"
657 "loc_FF85B1B8:\n"
658 " BL sub_FF890684 \n"
659 "loc_FF85B1BC:\n"
660 " LDR R0, =0xFFB40548 \n"
661 " LDR R1, [SP, #8] \n"
662 " ADD R6, R0, R4, LSL #3 \n"
663 " LDR R0, [R6, R5, LSL #2] \n"
664 " BL sub_FF890590 \n"
665 " LDR R0, [R6, R5, LSL #2] \n"
666 " STR R0, [R9, R4, LSL #2] \n"
667 " LDR R0, [SP, #0x20] \n"
668 " LDR R1, [SP, #0x1C] \n"
669 " LDRH R0, [R0] \n"
670 " STRH R0, [R1] \n"
671 " ADD R0, R4, R4, LSL #1 \n"
672 " ADD R0, R8, R0, LSL #2 \n"
673 " LDRB R0, [R0, #9] \n"
674 " CMP R0, #1 \n"
675 " BNE loc_FF85B234 \n"
676 " LDR R5, =0x23F4 \n"
677 " LDR R0, [R5, R4, LSL #2] \n"
678 " BL sub_FF838EA0 \n"
679 " LDR R2, =0xFF85AF48 \n"
680 " ADD R1, R2, #0 \n"
681 " ORR R3, R4, #0x300 \n"
682 " MOV R0, #0x1F4 \n"
683 " BL sub_FF838DBC \n"
684 " TST R0, #1 \n"
685 " CMPNE R0, #0x15 \n"
686 " STR R0, [R5, R4, LSL #2] \n"
687 " LDRNE R0, =0xFF85B28C \n"
688 " MOVNE R1, #0x2A4 \n"
689 " BLNE sub_FF81E88C \n"
690 "loc_FF85B234:\n"
691 " ADD R0, R4, R4, LSL #1 \n"
692 " ADD R0, R8, R0, LSL #2 \n"
693 " LDRB R0, [R0, #0xA] \n"
694 " CMP R0, #1 \n"
695 " BNE loc_FF85B2BC \n"
696 " LDR R0, =0x23E4 \n"
697 " LDR R0, [R0, #0xC] \n"
698 " CMP R0, #0 \n"
699 " BEQ loc_FF85B2BC \n"
700 " LDR R2, =0xFF85AF3C \n"
701 " ADD R1, R2, #0 \n"
702 " ORR R3, R4, #0x400 \n"
703 " BL sub_FF838DBC \n"
704 " TST R0, #1 \n"
705 " CMPNE R0, #0x15 \n"
706 " STR R0, [R10, R4, LSL #2] \n"
707 " BEQ loc_FF85B008 \n"
708 " LDR R1, =0x2AF \n"
709 "loc_FF85B27C:\n"
710 " LDR R0, =0xFF85B28C \n"
711 " BL sub_FF81E88C \n"
712 " B loc_FF85B008 \n"
713 "dword_FF85B288 DCD 0x23E4 \n"
714 "dword_FF85B28C DCD 0x44676F4A \n"
715 "dword_FF85B290 DCD 0x2E6C6169 \n"
716 "dword_FF85B294 DCD 0x63 \n"
717 "dword_FF85B298 DCD 0x23F4 \n"
718 "dword_FF85B29C DCD 0xC0240000 \n"
719 "dword_FF85B2A0 DCD 0xFFB40564 \n"
720 "dword_FF85B2A4 DCD 0x226 \n"
721 "dword_FF85B2A8 DCD 0x2CA \n"
722 "dword_FF85B2AC DCD 0xFFB40550 \n"
723 "dword_FF85B2B0 DCD 0x23B \n"
724 "dword_FF85B2B4 DCD 0xFFB40548 \n"
725 "dword_FF85B2B8 DCD 0x2AF \n"
726 "loc_FF85B2BC:\n"
727 " LDR R1, =0xFFB40550 \n"
728 " LDR R0, [SP, #0x28] \n"
729 " LDR R0, [R1, R0, LSL #2] \n"
730 " STR R7, [R0] \n"
731 " LDR R0, [SP, #0x24] \n"
732 " MOV R1, #1 \n"
733 " B loc_FF85B080 \n"
734 "loc_FF85B2D8:\n"
735 " LDR R0, [R9, R4, LSL #2] \n"
736 " CMP R0, #0 \n"
737 " MOVEQ R1, #0x2BC \n"
738 " LDREQ R0, =0xFF85B28C \n"
739 " BLEQ sub_FF81E88C \n"
740 " ADD R0, R4, R4, LSL #1 \n"
741 " ADD R0, R8, R0, LSL #2 \n"
742 " LDR R0, [R0, #4] \n"
743 " BL sub_FF890684 \n"
744 " STR R7, [R9, R4, LSL #2] \n"
745 " B loc_FF85B008 \n"
746 " STMFD SP!, {R3-R5,LR} \n"
747 " LDR R4, =0x23E4 \n"
748 " LDR R0, [R4, #4] \n"
749 " CMP R0, #0 \n"
750 " BNE sub_FF85B338 \n"
751 " MOV R3, #0 \n"
752 " STR R3, [SP] \n"
753 );
754 }
755
756
757
758
759 void __attribute__((naked,noinline)) movie_record_task( ) {
760 asm volatile (
761 " STMFD SP!, {R2-R8,LR} \n"
762 " LDR R7, =0x2710 \n"
763 " LDR R4, =0x67A8 \n"
764 " MOV R6, #0 \n"
765 " MOV R5, #1 \n"
766 "loc_FF94AF1C:\n"
767 " LDR R0, [R4, #0x18] \n"
768 " MOV R2, #0 \n"
769 " ADD R1, SP, #4 \n"
770 " BL sub_FF837F08 \n"
771 " LDR R0, [R4, #0x20] \n"
772 " CMP R0, #0 \n"
773 " BNE loc_FF94AFEC \n"
774 " LDR R0, [SP, #4] \n"
775 " LDR R1, [R0] \n"
776 " SUB R1, R1, #2 \n"
777 " CMP R1, #9 \n"
778 " ADDLS PC, PC, R1, LSL #2 \n"
779 " B loc_FF94AFEC \n"
780 " B loc_FF94AFA0 \n"
781 " B loc_FF94AFC0 \n"
782 " B loc_FF94AFD0 \n"
783 " B loc_FF94AFD8 \n"
784 " B loc_FF94AFA8 \n"
785 " B loc_FF94AFE0 \n"
786 " B loc_FF94AFB0 \n"
787 " B loc_FF94AFEC \n"
788 " B loc_FF94AFE8 \n"
789 " B loc_FF94AF78 \n"
790 "loc_FF94AF78:\n"
791 " LDR R0, =0xFF94AC1C \n"
792 " STR R6, [R4, #0x34] \n"
793 " STR R0, [R4, #0x9C] \n"
794 " LDR R2, =0xFF94A150 \n"
795 " LDR R1, =0x7B1D0 \n"
796 " LDR R0, =0xFF94A234 \n"
797 " STR R6, [R4, #0x24] \n"
798 " BL sub_FF8E1A58 \n"
799 " STR R5, [R4, #0x38] \n"
800 " B loc_FF94AFEC \n"
801 "loc_FF94AFA0:\n"
802 " BL sub_FF94AD24 \n"
803 " B loc_FF94AFEC \n"
804 "loc_FF94AFA8:\n"
805 " BL sub_FF94A89C \n"
806 " B loc_FF94AFEC \n"
807 "loc_FF94AFB0:\n"
808 " LDR R1, [R0, #0x18] \n"
809 " LDR R0, [R0, #4] \n"
810 " BL sub_FFA967A4 \n"
811 " B loc_FF94AFEC \n"
812 "loc_FF94AFC0:\n"
813 " LDR R0, [R4, #0x38] \n"
814 " CMP R0, #5 \n"
815 " STRNE R5, [R4, #0x28] \n"
816 " B loc_FF94AFEC \n"
817 "loc_FF94AFD0:\n"
818 " BL sub_FF94A59C \n"
819 " B loc_FF94AFEC \n"
820 "loc_FF94AFD8:\n"
821 " BL sub_FF94A280 \n"
822 " B loc_FF94AFEC \n"
823 "loc_FF94AFE0:\n"
824 " BL sub_FF94A0DC \n"
825 " B loc_FF94AFEC \n"
826 "loc_FF94AFE8:\n"
827 " BL sub_FF94B158 \n"
828 "loc_FF94AFEC:\n"
829 " LDR R1, [SP, #4] \n"
830 " MOV R3, #0x460 \n"
831 " STR R6, [R1] \n"
832 " STR R3, [SP] \n"
833 " LDR R0, [R4, #0x1C] \n"
834 " LDR R3, =0xFF949F3C \n"
835 " MOV R2, R7 \n"
836 " BL sub_FF83885C \n"
837 " B loc_FF94AF1C \n"
838 );
839 }
840
841
842
843
844 void __attribute__((naked,noinline)) sub_FF94A89C_my( ) {
845 asm volatile (
846 " STMFD SP!, {R4-R8,LR} \n"
847 " SUB SP, SP, #0x40 \n"
848 " MOV R7, #0 \n"
849 " LDR R6, =0x67A8 \n"
850 " MOV R4, R0 \n"
851 " STR R7, [SP, #0x30] \n"
852 " STR R7, [SP, #0x28] \n"
853 " LDR R0, [R6, #0x38] \n"
854 " MOV R8, #4 \n"
855 " CMP R0, #3 \n"
856 " STREQ R8, [R6, #0x38] \n"
857 " LDR R0, [R6, #0x9C] \n"
858 " BLX R0 \n"
859 " LDR R0, [R6, #0x38] \n"
860 " CMP R0, #4 \n"
861 " BNE loc_FF94AA0C \n"
862 " ADD R3, SP, #0x28 \n"
863 " ADD R2, SP, #0x2C \n"
864 " ADD R1, SP, #0x30 \n"
865 " ADD R0, SP, #0x34 \n"
866 " BL sub_FFA96840 \n"
867 " CMP R0, #0 \n"
868 " MOV R5, #1 \n"
869 " BNE loc_FF94A918 \n"
870 " LDR R1, [R6, #0x28] \n"
871 " CMP R1, #1 \n"
872 " BNE loc_FF94AA14 \n"
873 " LDR R1, [R6, #0x4C] \n"
874 " LDR R2, [R6, #0x3C] \n"
875 " CMP R1, R2 \n"
876 " BCC loc_FF94AA14 \n"
877 "loc_FF94A918:\n"
878 " CMP R0, #0x80000001 \n"
879 " STREQ R8, [R6, #0x50] \n"
880 " BEQ loc_FF94A950 \n"
881 " CMP R0, #0x80000003 \n"
882 " STREQ R5, [R6, #0x50] \n"
883 " BEQ loc_FF94A950 \n"
884 " CMP R0, #0x80000005 \n"
885 " MOVEQ R0, #2 \n"
886 " BEQ loc_FF94A94C \n"
887 " CMP R0, #0x80000007 \n"
888 " STRNE R7, [R6, #0x50] \n"
889 " BNE loc_FF94A950 \n"
890 " MOV R0, #3 \n"
891 "loc_FF94A94C:\n"
892 " STR R0, [R6, #0x50] \n"
893 "loc_FF94A950:\n"
894 " LDR R0, =0x7B204 \n"
895 " LDR R0, [R0, #8] \n"
896 " CMP R0, #0 \n"
897 " BEQ loc_FF94A968 \n"
898 " BL sub_FF85CDE0 \n"
899 " B loc_FF94A96C \n"
900 "loc_FF94A968:\n"
901 " BL sub_FF94A0DC \n"
902 "loc_FF94A96C:\n"
903 " LDR R0, [R4, #0x1C] \n"
904 " ADD R4, SP, #0x18 \n"
905 " ADD R3, SP, #0x38 \n"
906 " MVN R2, #1 \n"
907 " MOV R1, #0 \n"
908 " STMIA R4, {R0-R3} \n"
909 " LDR R2, [R6, #0x64] \n"
910 " LDR R3, [R6, #0x68] \n"
911 " ADD R1, SP, #0x3C \n"
912 " ADD R4, SP, #8 \n"
913 " MOV R0, #0 \n"
914 " STMIA R4, {R0-R3} \n"
915 " MOV R3, #0 \n"
916 " MOV R2, #0x40 \n"
917 " STRD R2, [SP] \n"
918 " LDR R3, =0x7B21C \n"
919 " MOV R2, #0 \n"
920 " MOV R1, #0 \n"
921 " BL sub_FFA53528 \n"
922 " LDR R0, [R6, #0x10] \n"
923 " MOV R1, #0x3E8 \n"
924 " BL sub_FF838324 \n"
925 " CMP R0, #9 \n"
926 " BNE loc_FF94A9DC \n"
927 "loc_FF94A9CC:\n"
928 " BL sub_FFA96D14 \n"
929 " MOV R0, #1 \n"
930 " STR R5, [R6, #0x38] \n"
931 " B loc_FF94AB3C \n"
932 "loc_FF94A9DC:\n"
933 " LDR R0, [SP, #0x38] \n"
934 " CMP R0, #0 \n"
935 " BEQ loc_FF94A9F8 \n"
936 "loc_FF94A9E8:\n"
937 " BL sub_FFA96D14 \n"
938 " MOV R0, #1 \n"
939 " STR R5, [R6, #0x38] \n"
940 " B loc_FF94AB68 \n"
941 "loc_FF94A9F8:\n"
942 " MOV R0, #1 \n"
943 " BL sub_FFA535D0 \n"
944 " BL sub_FFA5360C \n"
945 " MOV R0, #5 \n"
946 " STR R0, [R6, #0x38] \n"
947 "loc_FF94AA0C:\n"
948 " ADD SP, SP, #0x40 \n"
949 " LDMFD SP!, {R4-R8,PC} \n"
950 "loc_FF94AA14:\n"
951 " LDR R12, [SP, #0x30] \n"
952 " CMP R12, #0 \n"
953 " BEQ loc_FF94ABC4 \n"
954 " STR R5, [R6, #0x2C] \n"
955 " LDR R0, [R6, #0x4C] \n"
956 " LDR R8, [R4, #0xC] \n"
957 " CMP R0, #0 \n"
958 " LDRNE LR, [SP, #0x34] \n"
959 " BNE loc_FF94AAC0 \n"
960 " LDR R0, [R4, #0x1C] \n"
961 " LDR R1, [R4, #0x20] \n"
962 " ADD R3, SP, #0x38 \n"
963 " MVN R2, #0 \n"
964 " ADD LR, SP, #0x18 \n"
965 " STMIA LR, {R0-R3} \n"
966 " LDR R0, [SP, #0x28] \n"
967 " LDR R2, [R6, #0x64] \n"
968 " LDR R3, [R6, #0x68] \n"
969 " ADD R1, SP, #0x3C \n"
970 " ADD LR, SP, #8 \n"
971 " STMIA LR, {R0-R3} \n"
972 " LDR R3, [SP, #0x2C] \n"
973 " STR R12, [SP] \n"
974 " STR R3, [SP, #4] \n"
975 " LDMIB R4, {R0,R1} \n"
976 " LDR R3, [SP, #0x34] \n"
977 " MOV R2, R8 \n"
978 " BL sub_FFA53528 \n"
979 " LDR R0, [R6, #0x10] \n"
980 " MOV R1, #0x3E8 \n"
981 " BL sub_FF838324 \n"
982 " CMP R0, #9 \n"
983 " BEQ loc_FF94A9CC \n"
984 " LDR R0, [SP, #0x38] \n"
985 " CMP R0, #0 \n"
986 " BNE loc_FF94A9E8 \n"
987 " MOV R0, #1 \n"
988 " BL sub_FFA535D0 \n"
989 " LDR R0, [SP, #0x3C] \n"
990 " LDR R1, [SP, #0x34] \n"
991 " ADD LR, R1, R0 \n"
992 " LDR R1, [SP, #0x30] \n"
993 " SUB R12, R1, R0 \n"
994 "loc_FF94AAC0:\n"
995 " LDR R2, [R6, #0x48] \n"
996 " LDR R0, [R4, #0x1C] \n"
997 " LDR R1, [R4, #0x20] \n"
998 " ADD R3, SP, #0x38 \n"
999 " STR R0, [SP, #0x18] \n"
1000 " STR R1, [SP, #0x1C] \n"
1001 " STR R3, [SP, #0x24] \n"
1002 " STR R2, [SP, #0x20] \n"
1003 " LDR R2, [R6, #0x64] \n"
1004 " LDR R3, [R6, #0x68] \n"
1005 " LDR R0, [SP, #0x28] \n"
1006 " STR R3, [SP, #0x14] \n"
1007 " LDR R3, [SP, #0x2C] \n"
1008 " ADD R1, SP, #0x3C \n"
1009 " STR R2, [SP, #0x10] \n"
1010 " STR R3, [SP, #4] \n"
1011 " STR R1, [SP, #0xC] \n"
1012 " STR R12, [SP] \n"
1013 " STR R0, [SP, #8] \n"
1014 " LDMIB R4, {R0,R1} \n"
1015 " MOV R3, LR \n"
1016 " MOV R2, R8 \n"
1017 " BL sub_FFA53528 \n"
1018 " LDR R0, [R6, #0x10] \n"
1019 " MOV R1, #0x3E8 \n"
1020 " BL sub_FF838324 \n"
1021 " CMP R0, #9 \n"
1022 " BNE loc_FF94AB50 \n"
1023 " BL sub_FFA96D14 \n"
1024 " MOV R0, #0 \n"
1025 " STR R5, [R6, #0x38] \n"
1026 "loc_FF94AB3C:\n"
1027 " BL sub_FFA535D0 \n"
1028 " MOV R0, #0xC \n"
1029 " BL sub_FF8835B4 \n"
1030 " MOV R0, #0x90000 \n"
1031 " B loc_FF94AB78 \n"
1032 "loc_FF94AB50:\n"
1033 " LDR R0, [SP, #0x38] \n"
1034 " CMP R0, #0 \n"
1035 " BEQ loc_FF94AB8C \n"
1036 " BL sub_FFA96D14 \n"
1037 " MOV R0, #0 \n"
1038 " STR R5, [R6, #0x38] \n"
1039 "loc_FF94AB68:\n"
1040 " BL sub_FFA535D0 \n"
1041 " MOV R0, #0xC \n"
1042 " BL sub_FF8835B4 \n"
1043 " MOV R0, #0xA0000 \n"
1044 "loc_FF94AB78:\n"
1045 " BL sub_FF890C4C \n"
1046 " LDR R1, [R6, #0x8C]! \n"
1047 " LDR R0, [R6, #0xC] \n"
1048 " BLX R1 \n"
1049 " B loc_FF94AA0C \n"
1050 "loc_FF94AB8C:\n"
1051 " MOV R0, #0 \n"
1052 " BL sub_FFA535D0 \n"
1053 " LDR R0, [SP, #0x34] \n"
1054 " LDR R1, [SP, #0x3C] \n"
1055 " BL sub_FFA96A6C \n"
1056 " LDR R0, [R6, #0x48] \n"
1057 " LDR R3, =0x6810 \n"
1058 " ADD R1, R0, #1 \n"
1059 " STR R1, [R6, #0x48] \n"
1060 " STR R3, [SP] \n"
1061 " LDR R0, [SP, #0x3C] \n"
1062 " SUB R3, R3, #4 \n"
1063 " MOV R2, #0xF \n"
1064 " BL sub_FFA94BF0 \n"
1065 "loc_FF94ABC4:\n"
1066 " LDR R0, [R6, #0x4C] \n"
1067 " ADD R0, R0, #1 \n"
1068 " STR R0, [R6, #0x4C] \n"
1069 " LDR R1, [R6, #0x74] \n"
1070 " MUL R0, R1, R0 \n"
1071 " LDR R1, [R6, #0x70] \n"
1072 " BL sub_FFB3C89C \n"
1073 " MOV R4, R0 \n"
1074 " BL sub_FFA96D4C \n"
1075 " LDR R1, [R6, #0x6C] \n"
1076 " CMP R1, R4 \n"
1077 " BNE loc_FF94AC00 \n"
1078 " LDR R0, [R6, #0x30] \n"
1079 " CMP R0, #1 \n"
1080 " BNE loc_FF94AC14 \n"
1081 "loc_FF94AC00:\n"
1082 " LDR R1, [R6, #0x80] \n"
1083 " MOV R0, R4 \n"
1084 " BLX R1 \n"
1085 " STR R4, [R6, #0x6C] \n"
1086 " STR R7, [R6, #0x30] \n"
1087 "loc_FF94AC14:\n"
1088 " STR R7, [R6, #0x2C] \n"
1089 " B loc_FF94AA0C \n"
1090 " BX LR \n"
1091 );
1092 }
1093
1094
1095
1096
1097 void __attribute__((naked,noinline)) capt_seq_task( ) {
1098 asm volatile (
1099 " STMFD SP!, {R3-R9,LR} \n"
1100 " LDR R6, =0x2B04 \n"
1101 " LDR R4, =0x4A5C8 \n"
1102 " MOV R9, #1 \n"
1103 " MOV R7, #0 \n"
1104 "loc_FF876E84:\n"
1105 " LDR R0, [R6, #4] \n"
1106 " MOV R2, #0 \n"
1107 " MOV R1, SP \n"
1108 " BL sub_FF837F08 \n"
1109 " TST R0, #1 \n"
1110 " BEQ loc_FF876EB0 \n"
1111 " LDR R1, =0x5B3 \n"
1112 " LDR R0, =0xFF8769B0 \n"
1113 " BL sub_FF81E88C \n"
1114 " BL sub_FF81E844 \n"
1115 " LDMFD SP!, {R3-R9,PC} \n"
1116 "loc_FF876EB0:\n"
1117 " LDR R0, [SP] \n"
1118 " LDR R1, [R0] \n"
1119 " CMP R1, #0x1F \n"
1120 " ADDLS PC, PC, R1, LSL #2 \n"
1121 " B loc_FF877154 \n"
1122 " B loc_FF876F44 \n"
1123 " B loc_FF876FA8 \n"
1124 " B loc_FF876FE4 \n"
1125 " B loc_FF876FF8 \n"
1126 " B loc_FF876FF0 \n"
1127 " B loc_FF877000 \n"
1128 " B loc_FF877008 \n"
1129 " B loc_FF877010 \n"
1130 " B loc_FF877068 \n"
1131 " B loc_FF877090 \n"
1132 " B loc_FF877074 \n"
1133 " B loc_FF877080 \n"
1134 " B loc_FF877088 \n"
1135 " B loc_FF877098 \n"
1136 " B loc_FF8770A0 \n"
1137 " B loc_FF8770A8 \n"
1138 " B loc_FF8770B0 \n"
1139 " B loc_FF8770B8 \n"
1140 " B loc_FF8770C4 \n"
1141 " B loc_FF8770CC \n"
1142 " B loc_FF8770D4 \n"
1143 " B loc_FF8770DC \n"
1144 " B loc_FF8770E4 \n"
1145 " B loc_FF8770F0 \n"
1146 " B loc_FF8770F8 \n"
1147 " B loc_FF877100 \n"
1148 " B loc_FF877108 \n"
1149 " B loc_FF877110 \n"
1150 " B loc_FF877118 \n"
1151 " B loc_FF877120 \n"
1152 " B loc_FF87712C \n"
1153 " B loc_FF877160 \n"
1154 "loc_FF876F44:\n"
1155 " BL sub_FF8777F4 \n"
1156 " BL sub_FF874C6C \n"
1157 " LDR R0, [R4, #0x24] \n"
1158 " CMP R0, #0 \n"
1159 " BEQ loc_FF877160 \n"
1160 " BL sub_FF87668C \n"
1161 " MOV R5, R0 \n"
1162 " LDR R0, [R4, #0x24] \n"
1163 " CMP R0, #0 \n"
1164 " BEQ loc_FF876F8C \n"
1165 " MOV R0, #0xC \n"
1166 " BL sub_FF87BB14 \n"
1167 " TST R0, #1 \n"
1168 " STRNE R9, [R6, #0x10] \n"
1169 " LDRNE R0, [R5, #8] \n"
1170 " ORRNE R0, R0, #0x40000000 \n"
1171 " STRNE R0, [R5, #8] \n"
1172 " BNE loc_FF877160 \n"
1173 "loc_FF876F8C:\n"
1174 " MOV R0, R5 \n"
1175 " BL sub_FF876930 \n"
1176 " MOV R0, R5 \n"
1177 " BL sub_FF94FE74 \n"
1178 " TST R0, #1 \n"
1179 " STRNE R9, [R6, #0x10] \n"
1180 " B loc_FF877160 \n"
1181 "loc_FF876FA8:\n"
1182 " LDR R0, [R4, #0x24] \n"
1183 " CMP R0, #0 \n"
1184 " BNE loc_FF876FD4 \n"
1185 " MOV R0, #0xC \n"
1186 " BL sub_FF87BB14 \n"
1187 " TST R0, #1 \n"
1188 " LDRNE R0, [SP] \n"
1189 " MOVNE R1, #1 \n"
1190 " LDRNE R2, [R0, #0xC] \n"
1191 " MOVNE R0, #1 \n"
1192 " BNE loc_FF877060 \n"
1193 "loc_FF876FD4:\n"
1194 " LDR R0, [SP] \n"
1195 " BL sub_FF877278 \n"
1196 "loc_FF876FDC:\n"
1197 " STR R7, [R4, #0x24] \n"
1198 " B loc_FF877160 \n"
1199 "loc_FF876FE4:\n"
1200 " MOV R0, #1 \n"
1201 " BL sub_FF877A50 \n"
1202 " B loc_FF877160 \n"
1203 "loc_FF876FF0:\n"
1204 " BL sub_FF877430 \n"
1205 " B loc_FF876FDC \n"
1206 "loc_FF876FF8:\n"
1207 " BL sub_FF8777D4 \n"
1208 " B loc_FF876FDC \n"
1209 "loc_FF877000:\n"
1210 " BL sub_FF8777DC \n"
1211 " B loc_FF877160 \n"
1212 "loc_FF877008:\n"
1213 " BL sub_FF877970 \n"
1214 " B loc_FF87706C \n"
1215 "loc_FF877010:\n"
1216 " LDR R5, [R0, #0xC] \n"
1217 " BL sub_FF8777E4 \n"
1218 " MOV R0, R5 \n"
1219 " BL sub_FF94EB30 \n"
1220 " TST R0, #1 \n"
1221 " MOV R8, R0 \n"
1222 " BNE loc_FF877050 \n"
1223 " BL sub_FF888CD8 \n"
1224 " STR R0, [R5, #0x18] \n"
1225 " MOV R0, R5 \n"
1226 " BL sub_FF94FD8C \n"
1227 " MOV R0, R5 \n"
1228 " BL sub_FF95018C \n"
1229 " MOV R8, R0 \n"
1230 " LDR R0, [R5, #0x18] \n"
1231 " BL sub_FF888EEC \n"
1232 "loc_FF877050:\n"
1233 " BL sub_FF8777D4 \n"
1234 " MOV R2, R5 \n"
1235 " MOV R1, #9 \n"
1236 " MOV R0, R8 \n"
1237 "loc_FF877060:\n"
1238 " BL sub_FF875158 \n"
1239 " B loc_FF877160 \n"
1240 "loc_FF877068:\n"
1241 " BL sub_FF8779D0 \n"
1242 "loc_FF87706C:\n"
1243 " BL sub_FF874C6C \n"
1244 " B loc_FF877160 \n"
1245 "loc_FF877074:\n"
1246 " LDR R0, [R4, #0x54] \n"
1247 " BL sub_FF877DE0 \n"
1248 " B loc_FF877160 \n"
1249 "loc_FF877080:\n"
1250 " BL sub_FF878094 \n"
1251 " B loc_FF877160 \n"
1252 "loc_FF877088:\n"
1253 " BL sub_FF878128 \n"
1254 " B loc_FF877160 \n"
1255 "loc_FF877090:\n"
1256 " BL sub_FF8777D4 \n"
1257 " B loc_FF877160 \n"
1258 "loc_FF877098:\n"
1259 " BL sub_FF94ED48 \n"
1260 " B loc_FF877160 \n"
1261 "loc_FF8770A0:\n"
1262 " BL sub_FF94EF5C \n"
1263 " B loc_FF877160 \n"
1264 "loc_FF8770A8:\n"
1265 " BL sub_FF94EFF4 \n"
1266 " B loc_FF877160 \n"
1267 "loc_FF8770B0:\n"
1268 " BL sub_FF94F0C4 \n"
1269 " B loc_FF877160 \n"
1270 "loc_FF8770B8:\n"
1271 " MOV R0, #0 \n"
1272 " BL sub_FF94F314 \n"
1273 " B loc_FF877160 \n"
1274 "loc_FF8770C4:\n"
1275 " BL sub_FF94F470 \n"
1276 " B loc_FF877160 \n"
1277 "loc_FF8770CC:\n"
1278 " BL sub_FF94F500 \n"
1279 " B loc_FF877160 \n"
1280 "loc_FF8770D4:\n"
1281 " BL sub_FF94F5C0 \n"
1282 " B loc_FF877160 \n"
1283 "loc_FF8770DC:\n"
1284 " BL sub_FF877BCC \n"
1285 " B loc_FF877160 \n"
1286 "loc_FF8770E4:\n"
1287 " BL sub_FF877C6C \n"
1288 " BL sub_FF835F60 \n"
1289 " B loc_FF877160 \n"
1290 "loc_FF8770F0:\n"
1291 " BL sub_FF94F190 \n"
1292 " B loc_FF877160 \n"
1293 "loc_FF8770F8:\n"
1294 " BL sub_FF94F1FC \n"
1295 " B loc_FF877160 \n"
1296 "loc_FF877100:\n"
1297 " BL sub_FF87A1E8 \n"
1298 " B loc_FF877160 \n"
1299 "loc_FF877108:\n"
1300 " BL sub_FF87A254 \n"
1301 " B loc_FF877160 \n"
1302 "loc_FF877110:\n"
1303 " BL sub_FF94F740 \n"
1304 " B loc_FF877160 \n"
1305 "loc_FF877118:\n"
1306 " BL sub_FF94F7AC \n"
1307 " B loc_FF877160 \n"
1308 "loc_FF877120:\n"
1309 " BL sub_FF87A2B0 \n"
1310 " BL sub_FF87A270 \n"
1311 " B loc_FF877160 \n"
1312 "loc_FF87712C:\n"
1313 " MOV R0, #1 \n"
1314 " BL sub_FF950A04 \n"
1315 " MOV R0, #1 \n"
1316 " BL sub_FF950B14 \n"
1317 " LDRH R0, [R4, #0x98] \n"
1318 " CMP R0, #4 \n"
1319 " BNE loc_FF877160 \n"
1320 " BL sub_FF87A254 \n"
1321 " BL sub_FF87A728 \n"
1322 " B loc_FF877160 \n"
1323 "loc_FF877154:\n"
1324 " LDR R1, =0x708 \n"
1325 " LDR R0, =0xFF8769B0 \n"
1326 " BL sub_FF81E88C \n"
1327 "loc_FF877160:\n"
1328 " LDR R0, [SP] \n"
1329 " LDR R1, [R0, #4] \n"
1330 " LDR R0, [R6] \n"
1331 " BL sub_FF8809C4 \n"
1332 " LDR R5, [SP] \n"
1333 " LDR R0, [R5, #8] \n"
1334 " CMP R0, #0 \n"
1335 " LDREQ R1, =0x131 \n"
1336 " LDREQ R0, =0xFF8769B0 \n"
1337 " BLEQ sub_FF81E88C \n"
1338 " STR R7, [R5, #8] \n"
1339 " B loc_FF876E84 \n"
1340 " STMFD SP!, {R3-R5,LR} \n"
1341 " LDR R2, =0x4A514 \n"
1342 " MOV R0, #0 \n"
1343 " MOV R1, #0 \n"
1344 "loc_FF8771A0:\n"
1345 " ADD R3, R2, R0, LSL #4 \n"
1346 " ADD R0, R0, #1 \n"
1347 " CMP R0, #5 \n"
1348 " STR R1, [R3, #8] \n"
1349 " BCC loc_FF8771A0 \n"
1350 " BL sub_FF877D1C \n"
1351 );
1352 }
1353
1354
1355
1356
1357 void __attribute__((naked,noinline)) sub_FF94FE74_my( ) {
1358 asm volatile (
1359 " STMFD SP!, {R0-R8,LR} \n"
1360 " MOV R4, R0 \n"
1361 " BL sub_FF950D00 \n"
1362 " MVN R1, #0 \n"
1363 " BL sub_FF8809F8 \n"
1364 " LDR R5, =0x6CB0 \n"
1365 " LDR R0, [R5, #0xC] \n"
1366 " CMP R0, #0 \n"
1367 " BNE loc_FF94FEC4 \n"
1368 " MOV R1, #1 \n"
1369 " MOV R0, #0 \n"
1370 " BL sub_FF838750 \n"
1371 " STR R0, [R5, #0xC] \n"
1372 " MOV R3, #0 \n"
1373 " STR R3, [SP] \n"
1374 " LDR R3, =0xFF94F800 \n"
1375 " LDR R0, =0xFF9500F4 \n"
1376 " MOV R2, #0x400 \n"
1377 " MOV R1, #0x17 \n"
1378 " BL sub_FF83871C \n"
1379 "loc_FF94FEC4:\n"
1380 " MOV R2, #4 \n"
1381 " ADD R1, SP, #8 \n"
1382 " MOV R0, #0x8A \n"
1383 " BL sub_FF888B48 \n"
1384 " TST R0, #1 \n"
1385 " LDRNE R1, =0x3C5 \n"
1386 " LDRNE R0, =0xFF94FA98 \n"
1387 " BLNE sub_FF81E88C \n"
1388 " LDR R6, =0x4A690 \n"
1389 " LDR R8, =0x4A5C8 \n"
1390 " LDR R3, [R6] \n"
1391 " LDRSH R2, [R6, #0xC] \n"
1392 " LDRSH R1, [R6, #0xE] \n"
1393 " LDR R0, [R8, #0x8C] \n"
1394 " BL sub_FF916320 \n"
1395 " BL sub_FF85E238 \n"
1396 " LDR R3, =0x6CB8 \n"
1397 " STRH R0, [R4, #0xA4] \n"
1398 " SUB R2, R3, #4 \n"
1399 " STRD R2, [SP] \n"
1400 " MOV R1, R0 \n"
1401 " LDRH R0, [R8, #0x5C] \n"
1402 " LDRSH R2, [R6, #0xC] \n"
1403 " SUB R3, R3, #8 \n"
1404 " BL sub_FF9523BC \n"
1405 " LDR R0, [R4, #0x1C] \n"
1406 " CMP R0, #0 \n"
1407 " MOVNE R0, #1 \n"
1408 " STRNE R0, [R5] \n"
1409 " LDR R0, [R5, #4] \n"
1410 );
1411 }
1412
1413
1414
1415
1416 void __attribute__((naked,noinline)) sub_FF877278_my( ) {
1417 asm volatile (
1418 " STMFD SP!, {R4-R6,LR} \n"
1419 " LDR R4, [R0, #0xC] \n"
1420 " LDR R6, =0x4A5C8 \n"
1421 " LDR R0, [R4, #8] \n"
1422 " MOV R5, #0 \n"
1423 " ORR R0, R0, #1 \n"
1424 " STR R0, [R4, #8] \n"
1425 " LDR R0, [R6, #0x24] \n"
1426 " CMP R0, #0 \n"
1427 " MOVEQ R0, #2 \n"
1428 " BLEQ sub_FF873370 \n"
1429 " BL sub_FF8777E4 \n"
1430 " LDR R0, [R6, #0x24] \n"
1431 " CMP R0, #0 \n"
1432 " BNE loc_FF877354 \n"
1433 " MOV R0, #0 \n"
1434 " BL sub_FF950A04 \n"
1435 " MOV R0, #0 \n"
1436 " BL sub_FF950B14 \n"
1437 " MOV R0, R4 \n"
1438 " BL sub_FF877B74 \n"
1439 " MOV R0, R4 \n"
1440 " BL sub_FF94E780 \n"
1441 " CMP R0, #0 \n"
1442 " BEQ loc_FF877308 \n"
1443 " BL sub_FF950A44 \n"
1444 " BL sub_FF950B58 \n"
1445 " BL sub_FF950BA8 \n"
1446 " MOV R0, R4 \n"
1447 " BL sub_FF94E864 \n"
1448 " TST R0, #1 \n"
1449 " MOVNE R2, R4 \n"
1450 " LDMNEFD SP!, {R4-R6,LR} \n"
1451 " MOVNE R1, #1 \n"
1452 " BNE sub_FF875158 \n"
1453 " B loc_FF87731C \n"
1454 "loc_FF877308:\n"
1455 " MOV R0, R4 \n"
1456 " BL sub_FF94E800 \n"
1457 " BL sub_FF950A44 \n"
1458 " BL sub_FF950B58 \n"
1459 " BL sub_FF950BA8 \n"
1460 "loc_FF87731C:\n"
1461 " MOV R0, R4 \n"
1462 " BL sub_FF876930 \n"
1463 " LDRH R0, [R6] \n"
1464 " SUB R12, R0, #0x8200 \n"
1465 " SUBS R12, R12, #0xF \n"
1466 " LDREQ R0, [R4, #0x18] \n"
1467 " BLEQ sub_FF872E38 \n"
1468 " MOV R0, R4 \n"
1469 " BL sub_FF94FD8C \n"
1470 " BL sub_FF95080C \n"
1471 " MOV R0, R4 \n"
1472 " BL sub_FF94FE74 \n"
1473 " MOV R5, R0 \n"
1474 " B loc_FF877364 \n"
1475 "loc_FF877354:\n"
1476 " LDR R0, =0x2B04 \n"
1477 " LDR R0, [R0, #0x10] \n"
1478 " CMP R0, #0 \n"
1479 " MOVNE R5, #0x1D \n"
1480 "loc_FF877364:\n"
1481 " BL sub_FF87A254 \n"
1482 " BL sub_FF87A29C \n"
1483 " BL sub_FF87A2DC \n"
1484 " MOV R2, R4 \n"
1485 " MOV R1, #1 \n"
1486 " MOV R0, R5 \n"
1487 " BL sub_FF875158 \n"
1488 " BL sub_FF950130 \n"
1489 " CMP R0, #0 \n"
1490 " LDRNE R0, [R4, #8] \n"
1491 " ORRNE R0, R0, #0x2000 \n"
1492 " STRNE R0, [R4, #8] \n"
1493 " LDMFD SP!, {R4-R6,PC} \n"
1494 );
1495 }
1496
1497
1498
1499
1500 void __attribute__((naked,noinline)) exp_drv_task( ) {
1501 asm volatile (
1502 " STMFD SP!, {R4-R8,LR} \n"
1503 " SUB SP, SP, #0x20 \n"
1504 " LDR R8, =0xBB8 \n"
1505 " LDR R7, =0x4130 \n"
1506 " LDR R5, =0x4F45C \n"
1507 " MOV R0, #0 \n"
1508 " ADD R6, SP, #0x10 \n"
1509 " STR R0, [SP, #0xC] \n"
1510 "loc_FF8BA2F4:\n"
1511 " LDR R0, [R7, #0x20] \n"
1512 " MOV R2, #0 \n"
1513 " ADD R1, SP, #0x1C \n"
1514 " BL sub_FF837F08 \n"
1515 " LDR R0, [SP, #0xC] \n"
1516 " CMP R0, #1 \n"
1517 " BNE loc_FF8BA340 \n"
1518 " LDR R0, [SP, #0x1C] \n"
1519 " LDR R0, [R0] \n"
1520 " CMP R0, #0x13 \n"
1521 " CMPNE R0, #0x14 \n"
1522 " CMPNE R0, #0x15 \n"
1523 " CMPNE R0, #0x16 \n"
1524 " BEQ loc_FF8BA45C \n"
1525 " CMP R0, #0x28 \n"
1526 " BEQ loc_FF8BA434 \n"
1527 " ADD R1, SP, #0xC \n"
1528 " MOV R0, #0 \n"
1529 " BL sub_FF8BA284 \n"
1530 "loc_FF8BA340:\n"
1531 " LDR R0, [SP, #0x1C] \n"
1532 " LDR R1, [R0] \n"
1533 " CMP R1, #0x2D \n"
1534 " BNE loc_FF8BA370 \n"
1535 " LDR R0, [SP, #0x1C] \n"
1536 " BL sub_FF8BB544 \n"
1537 " LDR R0, [R7, #0x1C] \n"
1538 " MOV R1, #1 \n"
1539 " BL sub_FF8809C4 \n"
1540 " BL sub_FF81E844 \n"
1541 " ADD SP, SP, #0x20 \n"
1542 " LDMFD SP!, {R4-R8,PC} \n"
1543 "loc_FF8BA370:\n"
1544 " CMP R1, #0x2C \n"
1545 " BNE loc_FF8BA38C \n"
1546 " LDR R2, [R0, #0x8C]! \n"
1547 " LDR R1, [R0, #4] \n"
1548 " MOV R0, R1 \n"
1549 " BLX R2 \n"
1550 " B loc_FF8BA884 \n"
1551 "loc_FF8BA38C:\n"
1552 " CMP R1, #0x26 \n"
1553 " BNE loc_FF8BA3DC \n"
1554 " LDR R0, [R7, #0x1C] \n"
1555 " MOV R1, #0x80 \n"
1556 " BL sub_FF8809F8 \n"
1557 " LDR R0, =0xFF8B69C4 \n"
1558 " MOV R1, #0x80 \n"
1559 " BL sub_FF94389C \n"
1560 " LDR R0, [R7, #0x1C] \n"
1561 " MOV R2, R8 \n"
1562 " MOV R1, #0x80 \n"
1563 " BL sub_FF880904 \n"
1564 " TST R0, #1 \n"
1565 " LDRNE R1, =0xE57 \n"
1566 " BNE loc_FF8BA420 \n"
1567 "loc_FF8BA3C8:\n"
1568 " LDR R1, [SP, #0x1C] \n"
1569 " LDR R0, [R1, #0x90] \n"
1570 " LDR R1, [R1, #0x8C] \n"
1571 " BLX R1 \n"
1572 " B loc_FF8BA884 \n"
1573 "loc_FF8BA3DC:\n"
1574 " CMP R1, #0x27 \n"
1575 " BNE loc_FF8BA42C \n"
1576 " ADD R1, SP, #0xC \n"
1577 " BL sub_FF8BA284 \n"
1578 " LDR R0, [R7, #0x1C] \n"
1579 " MOV R1, #0x100 \n"
1580 " BL sub_FF8809F8 \n"
1581 " LDR R0, =0xFF8B69D4 \n"
1582 " MOV R1, #0x100 \n"
1583 " BL sub_FF94422C \n"
1584 " LDR R0, [R7, #0x1C] \n"
1585 " MOV R2, R8 \n"
1586 " MOV R1, #0x100 \n"
1587 " BL sub_FF880904 \n"
1588 " TST R0, #1 \n"
1589 " BEQ loc_FF8BA3C8 \n"
1590 " LDR R1, =0xE61 \n"
1591 "loc_FF8BA420:\n"
1592 " LDR R0, =0xFF8B7034 \n"
1593 " BL sub_FF81E88C \n"
1594 " B loc_FF8BA3C8 \n"
1595 "loc_FF8BA42C:\n"
1596 " CMP R1, #0x28 \n"
1597 " BNE loc_FF8BA444 \n"
1598 "loc_FF8BA434:\n"
1599 " LDR R0, [SP, #0x1C] \n"
1600 " ADD R1, SP, #0xC \n"
1601 " BL sub_FF8BA284 \n"
1602 " B loc_FF8BA3C8 \n"
1603 "loc_FF8BA444:\n"
1604 " CMP R1, #0x2B \n"
1605 " BNE loc_FF8BA45C \n"
1606 " BL sub_FF8AA480 \n"
1607 " BL sub_FF8AB0A4 \n"
1608 " BL sub_FF8AABF8 \n"
1609 " B loc_FF8BA3C8 \n"
1610 "loc_FF8BA45C:\n"
1611 " LDR R0, [SP, #0x1C] \n"
1612 " MOV R4, #1 \n"
1613 " LDR R1, [R0] \n"
1614 " CMP R1, #0x11 \n"
1615 " CMPNE R1, #0x12 \n"
1616 " BNE loc_FF8BA4CC \n"
1617 " LDR R1, [R0, #0x7C] \n"
1618 " ADD R1, R1, R1, LSL #1 \n"
1619 " ADD R1, R0, R1, LSL #2 \n"
1620 " SUB R1, R1, #8 \n"
1621 " LDMIA R1, {R2-R4} \n"
1622 " STMIA R6, {R2-R4} \n"
1623 " BL sub_FF8B8BA0 \n"
1624 " LDR R0, [SP, #0x1C] \n"
1625 " LDR R1, [R0, #0x7C] \n"
1626 " LDR R3, [R0, #0x8C] \n"
1627 " LDR R2, [R0, #0x90] \n"
1628 " ADD R0, R0, #4 \n"
1629 " BLX R3 \n"
1630 " LDR R0, [SP, #0x1C] \n"
1631 " BL sub_FF8BB900 \n"
1632 " LDR R0, [SP, #0x1C] \n"
1633 " LDR R1, [R0, #0x7C] \n"
1634 " LDR R3, [R0, #0x94] \n"
1635 " LDR R2, [R0, #0x98] \n"
1636 " ADD R0, R0, #4 \n"
1637 " BLX R3 \n"
1638 " B loc_FF8BA7C4 \n"
1639 "loc_FF8BA4CC:\n"
1640 " CMP R1, #0x13 \n"
1641 " CMPNE R1, #0x14 \n"
1642 " CMPNE R1, #0x15 \n"
1643 " CMPNE R1, #0x16 \n"
1644 " BNE loc_FF8BA584 \n"
1645 " ADD R3, SP, #0xC \n"
1646 " MOV R2, SP \n"
1647 " ADD R1, SP, #0x10 \n"
1648 " BL sub_FF8B8E7C \n"
1649 " CMP R0, #1 \n"
1650 " MOV R4, R0 \n"
1651 " CMPNE R4, #5 \n"
1652 " BNE loc_FF8BA520 \n"
1653 " LDR R0, [SP, #0x1C] \n"
1654 " MOV R2, R4 \n"
1655 " LDR R1, [R0, #0x7C]! \n"
1656 " LDR R12, [R0, #0x10]! \n"
1657 " LDR R3, [R0, #4] \n"
1658 " MOV R0, SP \n"
1659 " BLX R12 \n"
1660 " B loc_FF8BA558 \n"
1661 "loc_FF8BA520:\n"
1662 " LDR R0, [SP, #0x1C] \n"
1663 " CMP R4, #2 \n"
1664 " LDR R3, [R0, #0x90] \n"
1665 " CMPNE R4, #6 \n"
1666 " BNE loc_FF8BA56C \n"
1667 " LDR R12, [R0, #0x8C] \n"
1668 " MOV R0, SP \n"
1669 " MOV R2, R4 \n"
1670 " MOV R1, #1 \n"
1671 " BLX R12 \n"
1672 " LDR R0, [SP, #0x1C] \n"
1673 " MOV R2, SP \n"
1674 " ADD R1, SP, #0x10 \n"
1675 " BL sub_FF8B9F98 \n"
1676 "loc_FF8BA558:\n"
1677 " LDR R0, [SP, #0x1C] \n"
1678 " LDR R2, [SP, #0xC] \n"
1679 " MOV R1, R4 \n"
1680 " BL sub_FF8BA224 \n"
1681 " B loc_FF8BA7C4 \n"
1682 "loc_FF8BA56C:\n"
1683 " LDR R1, [R0, #0x7C] \n"
1684 " LDR R12, [R0, #0x8C] \n"
1685 " ADD R0, R0, #4 \n"
1686 " MOV R2, R4 \n"
1687 " BLX R12 \n"
1688 " B loc_FF8BA7C4 \n"
1689 "loc_FF8BA584:\n"
1690 " CMP R1, #0x22 \n"
1691 " CMPNE R1, #0x23 \n"
1692 " BNE loc_FF8BA5D0 \n"
1693 " LDR R1, [R0, #0x7C] \n"
1694 " ADD R1, R1, R1, LSL #1 \n"
1695 " ADD R1, R0, R1, LSL #2 \n"
1696 " SUB R1, R1, #8 \n"
1697 " LDMIA R1, {R2-R4} \n"
1698 " STMIA R6, {R2-R4} \n"
1699 " BL sub_FF8B80E4 \n"
1700 " LDR R0, [SP, #0x1C] \n"
1701 " LDR R1, [R0, #0x7C] \n"
1702 " LDR R3, [R0, #0x8C] \n"
1703 " LDR R2, [R0, #0x90] \n"
1704 " ADD R0, R0, #4 \n"
1705 " BLX R3 \n"
1706 " LDR R0, [SP, #0x1C] \n"
1707 " BL sub_FF8B83E4 \n"
1708 " B loc_FF8BA7C4 \n"
1709 "loc_FF8BA5D0:\n"
1710 " ADD R1, R0, #4 \n"
1711 " LDMIA R1, {R2,R3,R12} \n"
1712 " STMIA R6, {R2,R3,R12} \n"
1713 " LDR R1, [R0] \n"
1714 " CMP R1, #0x25 \n"
1715 " ADDLS PC, PC, R1, LSL #2 \n"
1716 " B loc_FF8BA7A4 \n"
1717 " B loc_FF8BA684 \n"
1718 " B loc_FF8BA684 \n"
1719 " B loc_FF8BA68C \n"
1720 " B loc_FF8BA694 \n"
1721 " B loc_FF8BA694 \n"
1722 " B loc_FF8BA694 \n"
1723 " B loc_FF8BA684 \n"
1724 " B loc_FF8BA68C \n"
1725 " B loc_FF8BA694 \n"
1726 " B loc_FF8BA694 \n"
1727 " B loc_FF8BA6AC \n"
1728 " B loc_FF8BA6AC \n"
1729 " B loc_FF8BA798 \n"
1730 " B loc_FF8BA7A0 \n"
1731 " B loc_FF8BA7A0 \n"
1732 " B loc_FF8BA7A0 \n"
1733 " B loc_FF8BA7A0 \n"
1734 " B loc_FF8BA7A4 \n"
1735 " B loc_FF8BA7A4 \n"
1736 " B loc_FF8BA7A4 \n"
1737 " B loc_FF8BA7A4 \n"
1738 " B loc_FF8BA7A4 \n"
1739 " B loc_FF8BA7A4 \n"
1740 " B loc_FF8BA69C \n"
1741 " B loc_FF8BA6A4 \n"
1742 " B loc_FF8BA6A4 \n"
1743 " B loc_FF8BA6B8 \n"
1744 " B loc_FF8BA6B8 \n"
1745 " B loc_FF8BA6C0 \n"
1746 " B loc_FF8BA6F0 \n"
1747 " B loc_FF8BA720 \n"
1748 " B loc_FF8BA750 \n"
1749 " B loc_FF8BA780 \n"
1750 " B loc_FF8BA780 \n"
1751 " B loc_FF8BA7A4 \n"
1752 " B loc_FF8BA7A4 \n"
1753 " B loc_FF8BA788 \n"
1754 " B loc_FF8BA790 \n"
1755 "loc_FF8BA684:\n"
1756 " BL sub_FF8B6EDC \n"
1757 " B loc_FF8BA7A4 \n"
1758 "loc_FF8BA68C:\n"
1759 " BL sub_FF8B7160 \n"
1760 " B loc_FF8BA7A4 \n"
1761 "loc_FF8BA694:\n"
1762 " BL sub_FF8B7368 \n"
1763 " B loc_FF8BA7A4 \n"
1764 "loc_FF8BA69C:\n"
1765 " BL sub_FF8B75E0 \n"
1766 " B loc_FF8BA7A4 \n"
1767 "loc_FF8BA6A4:\n"
1768 " BL sub_FF8B77D8 \n"
1769 " B loc_FF8BA7A4 \n"
1770 "loc_FF8BA6AC:\n"
1771 " BL sub_FF8B7A94 \n"
1772 " MOV R4, #0 \n"
1773 " B loc_FF8BA7A4 \n"
1774 "loc_FF8BA6B8:\n"
1775 " BL sub_FF8B7BD4 \n"
1776 " B loc_FF8BA7A4 \n"
1777 "loc_FF8BA6C0:\n"
1778 " LDRH R1, [R0, #4] \n"
1779 " STRH R1, [SP, #0x10] \n"
1780 " LDRH R1, [R5, #2] \n"
1781 " STRH R1, [SP, #0x12] \n"
1782 " LDRH R1, [R5, #4] \n"
1783 " STRH R1, [SP, #0x14] \n"
1784 " LDRH R1, [R5, #6] \n"
1785 " STRH R1, [SP, #0x16] \n"
1786 " LDRH R1, [R0, #0xC] \n"
1787 " STRH R1, [SP, #0x18] \n"
1788 " BL sub_FF8BB5B8 \n"
1789 " B loc_FF8BA7A4 \n"
1790 "loc_FF8BA6F0:\n"
1791 " LDRH R1, [R0, #4] \n"
1792 " STRH R1, [SP, #0x10] \n"
1793 " LDRH R1, [R5, #2] \n"
1794 " STRH R1, [SP, #0x12] \n"
1795 " LDRH R1, [R5, #4] \n"
1796 " STRH R1, [SP, #0x14] \n"
1797 " LDRH R1, [R5, #6] \n"
1798 " STRH R1, [SP, #0x16] \n"
1799 " LDRH R1, [R5, #8] \n"
1800 " STRH R1, [SP, #0x18] \n"
1801 " BL sub_FF8BB718 \n"
1802 " B loc_FF8BA7A4 \n"
1803 "loc_FF8BA720:\n"
1804 " LDRH R1, [R5] \n"
1805 " STRH R1, [SP, #0x10] \n"
1806 " LDRH R1, [R0, #6] \n"
1807 " STRH R1, [SP, #0x12] \n"
1808 " LDRH R1, [R5, #4] \n"
1809 " STRH R1, [SP, #0x14] \n"
1810 " LDRH R1, [R5, #6] \n"
1811 " STRH R1, [SP, #0x16] \n"
1812 " LDRH R1, [R5, #8] \n"
1813 " STRH R1, [SP, #0x18] \n"
1814 " BL sub_FF8BB7C4 \n"
1815 " B loc_FF8BA7A4 \n"
1816 "loc_FF8BA750:\n"
1817 " LDRH R1, [R5] \n"
1818 " STRH R1, [SP, #0x10] \n"
1819 " LDRH R1, [R5, #2] \n"
1820 " STRH R1, [SP, #0x12] \n"
1821 " LDRH R1, [R5, #4] \n"
1822 " STRH R1, [SP, #0x14] \n"
1823 " LDRH R1, [R5, #6] \n"
1824 " STRH R1, [SP, #0x16] \n"
1825 " LDRH R1, [R0, #0xC] \n"
1826 " STRH R1, [SP, #0x18] \n"
1827 " BL sub_FF8BB864 \n"
1828 " B loc_FF8BA7A4 \n"
1829 "loc_FF8BA780:\n"
1830 " BL sub_FF8B7F20 \n"
1831 " B loc_FF8BA7A4 \n"
1832 "loc_FF8BA788:\n"
1833 " BL sub_FF8B84E8 \n"
1834 " B loc_FF8BA7A4 \n"
1835 "loc_FF8BA790:\n"
1836 " BL sub_FF8B8724 \n"
1837 " B loc_FF8BA7A4 \n"
1838 "loc_FF8BA798:\n"
1839 " BL sub_FF8B88A0 \n"
1840 " B loc_FF8BA7A4 \n"
1841 "loc_FF8BA7A0:\n"
1842 " BL sub_FF8B8A3C \n"
1843 "loc_FF8BA7A4:\n"
1844 " LDR R0, [SP, #0x1C] \n"
1845 " LDR R1, [R0, #0x7C] \n"
1846 " LDR R3, [R0, #0x8C] \n"
1847 " LDR R2, [R0, #0x90] \n"
1848 " ADD R0, R0, #4 \n"
1849 " BLX R3 \n"
1850 " CMP R4, #1 \n"
1851 " BNE loc_FF8BA80C \n"
1852 "loc_FF8BA7C4:\n"
1853 " LDR R0, [SP, #0x1C] \n"
1854 " MOV R2, #0xC \n"
1855 " LDR R1, [R0, #0x7C] \n"
1856 " ADD R1, R1, R1, LSL #1 \n"
1857 " ADD R0, R0, R1, LSL #2 \n"
1858 " SUB R4, R0, #8 \n"
1859 " LDR R0, =0x4F45C \n"
1860 " ADD R1, SP, #0x10 \n"
1861 " BL sub_FFB3A37C \n"
1862 " LDR R0, =0x4F468 \n"
1863 " MOV R2, #0xC \n"
1864 " ADD R1, SP, #0x10 \n"
1865 " BL sub_FFB3A37C \n"
1866 " LDR R0, =0x4F474 \n"
1867 " MOV R2, #0xC \n"
1868 " MOV R1, R4 \n"
1869 " BL sub_FFB3A37C \n"
1870 " B loc_FF8BA884 \n"
1871 "loc_FF8BA80C:\n"
1872 " LDR R0, [SP, #0x1C] \n"
1873 " LDR R0, [R0] \n"
1874 " CMP R0, #0xB \n"
1875 " BNE loc_FF8BA854 \n"
1876 " MOV R3, #0 \n"
1877 " STR R3, [SP] \n"
1878 " MOV R3, #1 \n"
1879 " MOV R2, #1 \n"
1880 " MOV R1, #1 \n"
1881 " MOV R0, #0 \n"
1882 " BL sub_FF8B6CE4 \n"
1883 " MOV R3, #0 \n"
1884 " STR R3, [SP] \n"
1885 " MOV R3, #1 \n"
1886 " MOV R2, #1 \n"
1887 " MOV R1, #1 \n"
1888 " MOV R0, #0 \n"
1889 " B loc_FF8BA880 \n"
1890 "loc_FF8BA854:\n"
1891 " MOV R3, #1 \n"
1892 " MOV R2, #1 \n"
1893 " MOV R1, #1 \n"
1894 " MOV R0, #1 \n"
1895 " STR R3, [SP] \n"
1896 " BL sub_FF8B6CE4 \n"
1897 " MOV R3, #1 \n"
1898 " MOV R2, #1 \n"
1899 " MOV R1, #1 \n"
1900 " MOV R0, #1 \n"
1901 " STR R3, [SP] \n"
1902 "loc_FF8BA880:\n"
1903 " BL sub_FF8B6E24 \n"
1904 "loc_FF8BA884:\n"
1905 " LDR R0, [SP, #0x1C] \n"
1906 " BL sub_FF8BB544 \n"
1907 " B loc_FF8BA2F4 \n"
1908 );
1909 }
1910
1911
1912
1913
1914 void __attribute__((naked,noinline)) sub_FF8B7A94_my( ) {
1915 asm volatile (
1916 " STMFD SP!, {R4-R8,LR} \n"
1917 " LDR R7, =0x4130 \n"
1918 " MOV R4, R0 \n"
1919 " LDR R0, [R7, #0x1C] \n"
1920 " MOV R1, #0x3E \n"
1921 " BL sub_FF8809F8 \n"
1922 " LDRSH R0, [R4, #4] \n"
1923 " MOV R2, #0 \n"
1924 " MOV R1, #0 \n"
1925 " BL sub_FF8B6A48 \n"
1926 " MOV R6, R0 \n"
1927 " LDRSH R0, [R4, #6] \n"
1928 " BL sub_FF8B6B58 \n"
1929 " LDRSH R0, [R4, #8] \n"
1930 " BL sub_FF8B6BB0 \n"
1931 " LDRSH R0, [R4, #0xA] \n"
1932 " BL sub_FF8B6C08 \n"
1933 " LDRSH R0, [R4, #0xC] \n"
1934 " MOV R1, #0 \n"
1935 " BL sub_FF8B6C60 \n"
1936 " MOV R5, R0 \n"
1937 " LDR R0, [R4] \n"
1938 " LDR R8, =0x4F474 \n"
1939 " CMP R0, #0xB \n"
1940 " MOVEQ R6, #0 \n"
1941 " MOVEQ R5, #0 \n"
1942 " BEQ loc_FF8B7B28 \n"
1943 " CMP R6, #1 \n"
1944 " BNE loc_FF8B7B28 \n"
1945 " LDRSH R0, [R4, #4] \n"
1946 " LDR R1, =0xFF8B69B4 \n"
1947 " MOV R2, #2 \n"
1948 " BL sub_FF943BE8 \n"
1949 " STRH R0, [R4, #4] \n"
1950 " MOV R0, #0 \n"
1951 " STR R0, [R7, #0x28] \n"
1952 " B loc_FF8B7B30 \n"
1953 "loc_FF8B7B28:\n"
1954 " LDRH R0, [R8] \n"
1955 " STRH R0, [R4, #4] \n"
1956 "loc_FF8B7B30:\n"
1957 " CMP R5, #1 \n"
1958 " LDRNEH R0, [R8, #8] \n"
1959 " BNE loc_FF8B7B4C \n"
1960 " LDRSH R0, [R4, #0xC] \n"
1961 " LDR R1, =0xFF8B6A38 \n"
1962 " MOV R2, #0x20 \n"
1963 " BL sub_FF8BB574 \n"
1964 "loc_FF8B7B4C:\n"
1965 " STRH R0, [R4, #0xC] \n"
1966 " LDRSH R0, [R4, #6] \n"
1967 " BL sub_FF8AA1F0 \n"
1968 " LDRSH R0, [R4, #8] \n"
1969 " MOV R1, #1 \n"
1970 " BL sub_FF8AA940 \n"
1971 " MOV R1, #0 \n"
1972 " ADD R0, R4, #8 \n"
1973 " BL sub_FF8AA9C8 \n"
1974 " LDRSH R0, [R4, #0xE] \n"
1975 " BL sub_FF8B24B0 \n"
1976 " LDR R4, =0xBB8 \n"
1977 " CMP R6, #1 \n"
1978 " BNE loc_FF8B7BA4 \n"
1979 " LDR R0, [R7, #0x1C] \n"
1980 " MOV R2, R4 \n"
1981 " MOV R1, #2 \n"
1982 " BL sub_FF880904 \n"
1983 " TST R0, #1 \n"
1984 " LDRNE R1, =0x59B \n"
1985 " LDRNE R0, =0xFF8B7034 \n"
1986 " BLNE sub_FF81E88C \n"
1987 "loc_FF8B7BA4:\n"
1988 " CMP R5, #1 \n"
1989 " LDMNEFD SP!, {R4-R8,PC} \n"
1990 " LDR R0, [R7, #0x1C] \n"
1991 " MOV R2, R4 \n"
1992 " MOV R1, #0x20 \n"
1993 " BL sub_FF880904 \n"
1994 " TST R0, #1 \n"
1995 " LDRNE R0, =0xFF8B7034 \n"
1996 " LDMNEFD SP!, {R4-R8,LR} \n"
1997 " MOVNE R1, #0x5A0 \n"
1998 " BNE sub_FF81E88C \n"
1999 " LDMFD SP!, {R4-R8,PC} \n"
2000 );
2001 }
2002
2003
2004
2005
2006 void __attribute__((naked,noinline)) sub_FF8AA1F0_my( ) {
2007 asm volatile (
2008 " STMFD SP!, {R4-R6,LR} \n"
2009 " LDR R5, =0x3E48 \n"
2010 " MOV R4, R0 \n"
2011 " LDR R0, [R5, #4] \n"
2012 " CMP R0, #1 \n"
2013 " LDRNE R1, =0x146 \n"
2014 " LDRNE R0, =0xFF8A9FF4 \n"
2015 " BLNE sub_FF81E88C \n"
2016 " CMN R4, #0xC00 \n"
2017 " LDREQSH R4, [R5, #2] \n"
2018 " CMN R4, #0xC00 \n"
2019 " MOVEQ R1, #0x14C \n"
2020 " LDREQ R0, =0xFF8A9FF4 \n"
2021 " STRH R4, [R5, #2] \n"
2022 " BLEQ sub_FF81E88C \n"
2023 " MOV R0, R4 \n"
2024 " BL sub_FF9FD42C \n"
2025 " MOV R4, R0 \n"
2026 " BL sub_FF8DF5C8 \n"
2027 " MOV R0, R4 \n"
2028 " BL sub_FF8E32C0 \n"
2029 " TST R0, #1 \n"
2030 " LDRNE R1, =0x151 \n"
2031 " LDMNEFD SP!, {R4-R6,LR} \n"
2032 " LDRNE R0, =0xFF8A9FF4 \n"
2033 " BNE sub_FF81E88C \n"
2034 " LDMFD SP!, {R4-R6,PC} \n"
2035 );
2036 }