This source file includes following definitions.
- boot
- sub_FF810354_my
- sub_FF811198_my
- sub_FF815EE0_my
- taskcreate_Startup_my
- task_Startup_my
- taskcreatePhySw_my
- init_file_modules_task
- sub_FF896D0C_my
- sub_FF876598_my
- sub_FF8761C0_my
- sub_FF875EE0_my
- JogDial_task_my
- movie_record_task
- sub_FF985B84_my
- capt_seq_task
- sub_FF98ACEC_my
- sub_FF8733D0_my
- exp_drv_task
- sub_FF8CC1CC_my
- sub_FF8BD350_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, #0x35 \n"
21 " MCR p15, 0, R0, c6, c2 \n"
22 " MOV R0, #0x40000035 \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, =0xFFC9A254 \n"
81 " LDR R1, =0x1900 \n"
82 " LDR R3, =0x10FE4 \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, =0x16EE30 \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_FF811198 \n"
133 );
134 }
135
136
137
138
139 void __attribute__((naked,noinline)) sub_FF811198_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_FFB9F348 \n"
146 " MOV R0, #0x53000 \n"
147 " STR R0, [SP, #4] \n"
148 " LDR R0, =0x16EE30 \n"
149 " LDR R1, =0x379C00 \n"
150 " STR R0, [SP, #8] \n"
151 " RSB R0, R0, #0x1F80 \n"
152 " ADD R0, R0, #0x370000 \n"
153 " STR R0, [SP, #0xC] \n"
154 " LDR R0, =0x371F80 \n"
155 " STR R1, [SP] \n"
156 " STRD R0, [SP, #0x10] \n"
157 " MOV R0, #0x22 \n"
158 " STR R0, [SP, #0x18] \n"
159 " MOV R0, #0x68 \n"
160 " STR R0, [SP, #0x1C] \n"
161 " LDR R0, =0x19B \n"
162 " LDR R1, =0xFF815EE0 \n"
163 " STR R0, [SP, #0x20] \n"
164 " MOV R0, #0x96 \n"
165 " STR R0, [SP, #0x24] \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_FF8134B8 \n"
183 " ADD SP, SP, #0x74 \n"
184 " LDR PC, [SP], #4 \n"
185 );
186 }
187
188
189
190
191 void __attribute__((naked,noinline)) sub_FF815EE0_my( ) {
192 asm volatile (
193 " STMFD SP!, {R4,LR} \n"
194 " BL sub_FF810B20 \n"
195 " BL sub_FF81A33C \n"
196 " CMP R0, #0 \n"
197 " LDRLT R0, =0xFF815FF4 \n"
198 " BLLT sub_FF815FD4 \n"
199 " BL sub_FF815B1C \n"
200 " CMP R0, #0 \n"
201 " LDRLT R0, =0xFF815FFC \n"
202 " BLLT sub_FF815FD4 \n"
203 " LDR R0, =0xFF81600C \n"
204 " BL sub_FF815C04 \n"
205 " CMP R0, #0 \n"
206 " LDRLT R0, =0xFF816014 \n"
207 " BLLT sub_FF815FD4 \n"
208 " LDR R0, =0xFF81600C \n"
209 " BL sub_FF813CA4 \n"
210 " CMP R0, #0 \n"
211 " LDRLT R0, =0xFF816028 \n"
212 " BLLT sub_FF815FD4 \n"
213 " BL sub_FF819CC4 \n"
214 " CMP R0, #0 \n"
215 " LDRLT R0, =0xFF816034 \n"
216 " BLLT sub_FF815FD4 \n"
217 " BL sub_FF81167C \n"
218 " CMP R0, #0 \n"
219 " LDRLT R0, =0xFF816040 \n"
220 " BLLT sub_FF815FD4 \n"
221 " LDMFD SP!, {R4,LR} \n"
222 " B sub_FF81FB54 \n"
223 );
224 }
225
226
227
228
229 void __attribute__((naked,noinline)) taskcreate_Startup_my( ) {
230 asm volatile (
231 " STMFD SP!, {R3-R5,LR} \n"
232 " BL sub_FF8346CC \n"
233 " BL sub_FF83C6B0 \n"
234 " CMP R0, #0 \n"
235 " BNE loc_FF81FBA8 \n"
236 " BL sub_FF8360B8 \n"
237 " CMP R0, #0 \n"
238 " BEQ loc_FF81FBA8 \n"
239 " LDR R4, =0xC0220000 \n"
240 " LDR R0, [R4, #0x12C] \n"
241 " TST R0, #1 \n"
242 " MOVEQ R0, #0x12C \n"
243 " BLEQ sub_FF83AA4C \n"
244 " BL sub_FF8346C8 \n"
245 " CMP R0, #0 \n"
246 " BNE loc_FF81FBA8 \n"
247 " BL sub_FF833D5C \n"
248 " MOV R0, #0x44 \n"
249 " STR R0, [R4, #0x1C] \n"
250 " BL sub_FF833F4C \n"
251 "loc_FF81FBA4:\n"
252 " B loc_FF81FBA4 \n"
253 "loc_FF81FBA8:\n"
254 " BL sub_FF8346D4 \n"
255 " BL sub_FF8346D0 \n"
256 " BL sub_FF83A8C4 \n"
257 " LDR R1, =0x3CE000 \n"
258 " MOV R0, #0 \n"
259 " BL sub_FF83AD0C \n"
260 " BL sub_FF83AAB8 \n"
261 " MOV R3, #0 \n"
262 " STR R3, [SP] \n"
263 " LDR R3, =0xFF81FAF0 \n"
264 " MOV R2, #0 \n"
265 " MOV R1, #0x19 \n"
266 " LDR R0, =0xFF81FBF0 \n"
267 " BL sub_FF81E8A0 \n"
268 " MOV R0, #0 \n"
269 " LDMFD SP!, {R3-R5,PC} \n"
270 "dword_FF81FBE8 DCD 0xC0220000 \n"
271 "dword_FF81FBEC DCD 0x3CE000 \n"
272 "dword_FF81FBF0 DCD 0x72617453 \n"
273 "dword_FF81FBF4 DCD 0x707574 \n"
274 "dword_FF81FBF8 DCD 0xE92D4011 \n"
275 "dword_FF81FBFC DCD 0xE24DD01C \n"
276 "dword_FF81FC00 DCD 0xE28D1004 \n"
277 "dword_FF81FC04 DCD 0xE28F0F75 \n"
278 "dword_FF81FC08 DCD 0xEB005D61 \n"
279 "dword_FF81FC0C DCD 0xE3700001 \n"
280 "dword_FF81FC10 DCD 0x159D000C \n"
281 "dword_FF81FC14 DCD 0x13500000 \n"
282 "dword_FF81FC18 DCD 0xA00000B \n"
283 "dword_FF81FC1C DCD 0xE28F1F72 \n"
284 "dword_FF81FC20 DCD 0xE28F0F72 \n"
285 "dword_FF81FC24 DCD 0xEB005BAE \n"
286 "dword_FF81FC28 DCD 0xE1B04000 \n"
287 "dword_FF81FC2C DCD 0xA000006 \n"
288 "dword_FF81FC30 DCD 0xE1A03004 \n"
289 "dword_FF81FC34 DCD 0xE3A02001 \n"
290 "dword_FF81FC38 DCD 0xE3A01001 \n"
291 "dword_FF81FC3C DCD 0xE28D001C \n"
292 "dword_FF81FC40 DCD 0xEB005BF7 \n"
293 "dword_FF81FC44 DCD 0xE1A00004 \n"
294 "dword_FF81FC48 DCD 0xEB005BB5 \n"
295 "loc_FF81FC4C:\n"
296 " ADD SP, SP, #0x20 \n"
297 " LDMFD SP!, {R4,PC} \n"
298 );
299 }
300
301
302
303
304 void __attribute__((naked,noinline)) task_Startup_my( ) {
305 asm volatile (
306 " STMFD SP!, {R4,LR} \n"
307 " BL sub_FF816594 \n"
308 " BL sub_FF835830 \n"
309 " BL sub_FF8339B4 \n"
310 " BL sub_FF83C6F4 \n"
311 " BL sub_FF83C8E0 \n"
312 " BL sub_FF83C788 \n"
313 " BL sub_FF83CA88 \n"
314 " BL sub_FF832484 \n"
315 " BL sub_FF83C910 \n"
316 " BL sub_FF83A068 \n"
317 " BL sub_FF83CA8C \n"
318 " BL sub_FF8345B0 \n"
319 " BL sub_FF837D14 \n"
320 " BL sub_FF83CAA4 \n"
321 " BL sub_FF831888 \n"
322 " BL sub_FF833318 \n"
323 " BL sub_FF83C478 \n"
324 " BL sub_FF833968 \n"
325 " BL sub_FF8332B4 \n"
326 " BL sub_FF8324B8 \n"
327 " BL sub_FF83D670 \n"
328 " BL sub_FF833278 \n"
329 " LDMFD SP!, {R4,LR} \n"
330 " B sub_FF8166B4 \n"
331 " STMFD SP!, {R3-R5,LR} \n"
332 " BL sub_FF8346CC \n"
333 " BL sub_FF83C6B0 \n"
334 " CMP R0, #0 \n"
335 " BNE loc_FF81FBA8 \n"
336 " BL sub_FF8360B8 \n"
337 " CMP R0, #0 \n"
338 " BEQ loc_FF81FBA8 \n"
339 " LDR R4, =0xC0220000 \n"
340 " LDR R0, [R4, #0x12C] \n"
341 " TST R0, #1 \n"
342 " MOVEQ R0, #0x12C \n"
343 " BLEQ sub_FF83AA4C \n"
344 " BL sub_FF8346C8 \n"
345 " CMP R0, #0 \n"
346 " BNE loc_FF81FBA8 \n"
347 " BL sub_FF833D5C \n"
348 " MOV R0, #0x44 \n"
349 " STR R0, [R4, #0x1C] \n"
350 " BL sub_FF833F4C \n"
351 "loc_FF81FBA4:\n"
352 " B loc_FF81FBA4 \n"
353 "loc_FF81FBA8:\n"
354 " BL sub_FF8346D4 \n"
355 " BL sub_FF8346D0 \n"
356 " BL sub_FF83A8C4 \n"
357 " LDR R1, =0x3CE000 \n"
358 " MOV R0, #0 \n"
359 " BL sub_FF83AD0C \n"
360 " BL sub_FF83AAB8 \n"
361 " MOV R3, #0 \n"
362 " STR R3, [SP] \n"
363 " LDR R3, =0xFF81FAF0 \n"
364 " MOV R2, #0 \n"
365 " MOV R1, #0x19 \n"
366 " LDR R0, =0xFF81FBF0 \n"
367 " BL sub_FF81E8A0 \n"
368 " MOV R0, #0 \n"
369 " LDMFD SP!, {R3-R5,PC} \n"
370 "dword_FF81FBE8 DCD 0xC0220000 \n"
371 "dword_FF81FBEC DCD 0x3CE000 \n"
372 );
373 }
374
375
376
377
378 void __attribute__((naked,noinline)) taskcreatePhySw_my( ) {
379 asm volatile (
380 " LDMFD SP!, {R4,LR} \n"
381 " B sub_FF81EB30 \n"
382 " STMFD SP!, {R3-R5,LR} \n"
383 " LDR R4, =0x1C30 \n"
384 " LDR R0, [R4, #0x10] \n"
385 " CMP R0, #0 \n"
386 " BNE loc_FF8345E4 \n"
387 " MOV R3, #0 \n"
388 " STR R3, [SP] \n"
389 " LDR R3, =0xFF83457C \n"
390 " MOV R2, #0x800 \n"
391 " MOV R1, #0x17 \n"
392 " LDR R0, =0xFF8347DC \n"
393 " BL sub_FF83AB0C \n"
394 " STR R0, [R4, #0x10] \n"
395 "loc_FF8345E4:\n"
396 " BL sub_FF865BC0 \n"
397 " BL sub_FF894834 \n"
398 " BL sub_FF836030 \n"
399 " CMP R0, #0 \n"
400 " LDREQ R1, =0x34CC0 \n"
401 " LDMEQFD SP!, {R3-R5,LR} \n"
402 " BEQ sub_FF8947BC \n"
403 " LDMFD SP!, {R3-R5,PC} \n"
404 " CMP R0, #3 \n"
405 " STMFD SP!, {R4,LR} \n"
406 " MOV R4, R0 \n"
407 " LDRCS R0, =0xFF8347E4 \n"
408 " MOVCS R1, #0x144 \n"
409 " BLCS sub_FF81EB78 \n"
410 " LDR R0, =0x34CB4 \n"
411 " LDR R0, [R0, R4, LSL #2] \n"
412 " LDMFD SP!, {R4,PC} \n"
413 " LDR R3, =0x34CC0 \n"
414 " MOV R1, #2 \n"
415 "loc_FF834630:\n"
416 " LDR R2, [R3, R1, LSL #2] \n"
417 " STR R2, [R0, R1, LSL #2] \n"
418 " SUBS R1, R1, #1 \n"
419 " BPL loc_FF834630 \n"
420 " BX LR \n"
421 " MOV R0, #0x20 \n"
422 );
423 }
424
425
426
427
428 void __attribute__((naked,noinline)) init_file_modules_task( ) {
429 asm volatile (
430 " STMFD SP!, {R4-R6,LR} \n"
431 " BL sub_FF896CE0 \n"
432 " LDR R5, =0x5006 \n"
433 " MOVS R4, R0 \n"
434 " MOVNE R1, #0 \n"
435 " MOVNE R0, R5 \n"
436 " BLNE sub_FF89AAD4 \n"
437 " BL sub_FF896D0C \n"
438 " CMP R4, #0 \n"
439 " MOVEQ R0, R5 \n"
440 " LDMEQFD SP!, {R4-R6,LR} \n"
441 " MOVEQ R1, #0 \n"
442 " BEQ sub_FF89AAD4 \n"
443 " LDMFD SP!, {R4-R6,PC} \n"
444 );
445 }
446
447
448
449
450 void __attribute__((naked,noinline)) sub_FF896D0C_my( ) {
451 asm volatile (
452 " STMFD SP!, {R4,LR} \n"
453 " MOV R0, #3 \n"
454 " BL sub_FF876598 \n"
455 " BL sub_FF96A8E8 \n"
456 " LDR R4, =0x3244 \n"
457 " LDR R0, [R4, #4] \n"
458 " CMP R0, #0 \n"
459 " BNE loc_FF896D44 \n"
460 " BL sub_FF8757DC \n"
461 " BL sub_FF95D878 \n"
462 " BL sub_FF8757DC \n"
463 " BL sub_FF871B80 \n"
464 " BL sub_FF8756DC \n"
465 " BL sub_FF95D914 \n"
466 "loc_FF896D44:\n"
467 " MOV R0, #1 \n"
468 " STR R0, [R4] \n"
469 " LDMFD SP!, {R4,PC} \n"
470 );
471 }
472
473
474
475
476 void __attribute__((naked,noinline)) sub_FF876598_my( ) {
477 asm volatile (
478 " STMFD SP!, {R4-R8,LR} \n"
479 " MOV R8, R0 \n"
480 " BL sub_FF876518 \n"
481 " LDR R1, =0x3B0A8 \n"
482 " MOV R6, R0 \n"
483 " ADD R4, R1, R0, LSL #7 \n"
484 " LDR R0, [R4, #0x6C] \n"
485 " CMP R0, #4 \n"
486 " LDREQ R1, =0x83F \n"
487 " LDREQ R0, =0xFF876058 \n"
488 " BLEQ sub_FF81EB78 \n"
489 " MOV R1, R8 \n"
490 " MOV R0, R6 \n"
491 " BL sub_FF875DCC \n"
492 " LDR R0, [R4, #0x38] \n"
493 " BL sub_FF876C3C \n"
494 " CMP R0, #0 \n"
495 " STREQ R0, [R4, #0x6C] \n"
496 " MOV R0, R6 \n"
497 " BL sub_FF875E5C \n"
498 " MOV R0, R6 \n"
499 " BL sub_FF8761C0 \n"
500 " MOV R5, R0 \n"
501 " MOV R0, R6 \n"
502 " BL sub_FF8763F0 \n"
503 " LDR R6, [R4, #0x3C] \n"
504 " AND R7, R5, R0 \n"
505 " CMP R6, #0 \n"
506 " LDR R1, [R4, #0x38] \n"
507 " MOVEQ R0, #0x80000001 \n"
508 " MOV R5, #0 \n"
509 " BEQ loc_FF876648 \n"
510 " MOV R0, R1 \n"
511 " BL sub_FF875944 \n"
512 " CMP R0, #0 \n"
513 " MOVNE R5, #4 \n"
514 " CMP R6, #5 \n"
515 " ORRNE R0, R5, #1 \n"
516 " BICEQ R0, R5, #1 \n"
517 " CMP R7, #0 \n"
518 " BICEQ R0, R0, #2 \n"
519 " ORREQ R0, R0, #0x80000000 \n"
520 " BICNE R0, R0, #0x80000000 \n"
521 " ORRNE R0, R0, #2 \n"
522 "loc_FF876648:\n"
523 " CMP R8, #7 \n"
524 " STR R0, [R4, #0x40] \n"
525 " LDMNEFD SP!, {R4-R8,PC} \n"
526 " MOV R0, R8 \n"
527 " BL sub_FF876568 \n"
528 " CMP R0, #0 \n"
529 " LDMEQFD SP!, {R4-R8,LR} \n"
530 " LDREQ R0, =0xFF876694 \n"
531 " BEQ sub_FF81177C \n"
532 " LDMFD SP!, {R4-R8,PC} \n"
533 );
534 }
535
536
537
538
539 void __attribute__((naked,noinline)) sub_FF8761C0_my( ) {
540 asm volatile (
541 " STMFD SP!, {R4-R6,LR} \n"
542 " MOV R5, R0 \n"
543 " LDR R0, =0x3B0A8 \n"
544 " ADD R4, R0, R5, LSL #7 \n"
545 " LDR R0, [R4, #0x6C] \n"
546 " TST R0, #2 \n"
547 " MOVNE R0, #1 \n"
548 " LDMNEFD SP!, {R4-R6,PC} \n"
549 " LDR R0, [R4, #0x38] \n"
550 " MOV R1, R5 \n"
551 " BL sub_FF875EE0 \n"
552 " CMP R0, #0 \n"
553 " LDRNE R0, [R4, #0x38] \n"
554 " MOVNE R1, R5 \n"
555 " BLNE sub_FF87607C \n"
556 " LDR R2, =0x3B128 \n"
557 " ADD R1, R5, R5, LSL #4 \n"
558 " LDR R1, [R2, R1, LSL #2] \n"
559 " CMP R1, #4 \n"
560 " BEQ loc_FF876220 \n"
561 " CMP R0, #0 \n"
562 " LDMEQFD SP!, {R4-R6,PC} \n"
563 " MOV R0, R5 \n"
564 " BL sub_FF8759D4 \n"
565 "loc_FF876220:\n"
566 " CMP R0, #0 \n"
567 " LDRNE R1, [R4, #0x6C] \n"
568 " ORRNE R1, R1, #2 \n"
569 " STRNE R1, [R4, #0x6C] \n"
570 " LDMFD SP!, {R4-R6,PC} \n"
571 );
572 }
573
574
575
576
577 void __attribute__((naked,noinline)) sub_FF875EE0_my( ) {
578 asm volatile (
579 " STMFD SP!, {R4-R10,LR} \n"
580 " MOV R9, R0 \n"
581 " LDR R0, =0x3B0A8 \n"
582 " MOV R8, #0 \n"
583 " ADD R5, R0, R1, LSL #7 \n"
584 " LDR R0, [R5, #0x3C] \n"
585 " MOV R7, #0 \n"
586 " CMP R0, #7 \n"
587 " MOV R6, #0 \n"
588 " ADDLS PC, PC, R0, LSL #2 \n"
589 " B loc_FF876038 \n"
590 " B loc_FF875F44 \n"
591 " B loc_FF875F2C \n"
592 " B loc_FF875F2C \n"
593 " B loc_FF875F2C \n"
594 " B loc_FF875F2C \n"
595 " B loc_FF876030 \n"
596 " B loc_FF875F2C \n"
597 " B loc_FF875F2C \n"
598 "loc_FF875F2C:\n"
599 " MOV R2, #0 \n"
600 " MOV R1, #0x200 \n"
601 " MOV R0, #2 \n"
602 " BL sub_FF890D90 \n"
603 " MOVS R4, R0 \n"
604 " BNE loc_FF875F4C \n"
605 "loc_FF875F44:\n"
606 " MOV R0, #0 \n"
607 " LDMFD SP!, {R4-R10,PC} \n"
608 "loc_FF875F4C:\n"
609 " LDR R12, [R5, #0x50] \n"
610 " MOV R3, R4 \n"
611 " MOV R2, #1 \n"
612 " MOV R1, #0 \n"
613 " MOV R0, R9 \n"
614 " BLX R12 \n"
615 " CMP R0, #1 \n"
616 " BNE loc_FF875F78 \n"
617 " MOV R0, #2 \n"
618 " BL sub_FF890EE0 \n"
619 " B loc_FF875F44 \n"
620 "loc_FF875F78:\n"
621 " LDR R1, [R5, #0x64] \n"
622 " MOV R0, R9 \n"
623 " BLX R1 \n"
624 " LDRB R1, [R4, #0x1C9] \n"
625 " LDRB R3, [R4, #0x1C8] \n"
626 " LDRB R12, [R4, #0x1CC] \n"
627 " MOV R1, R1, LSL #0x18 \n"
628 " ORR R1, R1, R3, LSL #0x10 \n"
629 " LDRB R3, [R4, #0x1C7] \n"
630 " LDRB R2, [R4, #0x1BE] \n"
631 " LDRB LR, [R4, #0x1FF] \n"
632 " ORR R1, R1, R3, LSL #8 \n"
633 " LDRB R3, [R4, #0x1C6] \n"
634 " CMP R2, #0 \n"
635 " CMPNE R2, #0x80 \n"
636 " ORR R1, R1, R3 \n"
637 " LDRB R3, [R4, #0x1CD] \n"
638 " MOV R3, R3, LSL #0x18 \n"
639 " ORR R3, R3, R12, LSL #0x10 \n"
640 " LDRB R12, [R4, #0x1CB] \n"
641 " ORR R3, R3, R12, LSL #8 \n"
642 " LDRB R12, [R4, #0x1CA] \n"
643 " ORR R3, R3, R12 \n"
644 " LDRB R12, [R4, #0x1FE] \n"
645 " BNE loc_FF876004 \n"
646 " CMP R0, R1 \n"
647 " BCC loc_FF876004 \n"
648 " ADD R2, R1, R3 \n"
649 " CMP R2, R0 \n"
650 " CMPLS R12, #0x55 \n"
651 " CMPEQ LR, #0xAA \n"
652 " MOVEQ R7, R1 \n"
653 " MOVEQ R6, R3 \n"
654 " MOVEQ R4, #1 \n"
655 " BEQ loc_FF876008 \n"
656 "loc_FF876004:\n"
657 " MOV R4, R8 \n"
658 "loc_FF876008:\n"
659 " MOV R0, #2 \n"
660 " BL sub_FF890EE0 \n"
661 " CMP R4, #0 \n"
662 " BNE loc_FF876044 \n"
663 " LDR R1, [R5, #0x64] \n"
664 " MOV R7, #0 \n"
665 " MOV R0, R9 \n"
666 " BLX R1 \n"
667 " MOV R6, R0 \n"
668 " B loc_FF876044 \n"
669 "loc_FF876030:\n"
670 " MOV R6, #0x40 \n"
671 " B loc_FF876044 \n"
672 "loc_FF876038:\n"
673 " LDR R1, =0x597 \n"
674 " LDR R0, =0xFF876058 \n"
675 " BL sub_FF81EB78 \n"
676 "loc_FF876044:\n"
677 " STR R7, [R5, #0x44]! \n"
678 " STMIB R5, {R6,R8} \n"
679 " MOV R0, #1 \n"
680 " LDMFD SP!, {R4-R10,PC} \n"
681 );
682 }
683
684
685
686
687 void __attribute__((naked,noinline)) JogDial_task_my( ) {
688 asm volatile (
689 " STMFD SP!, {R4-R11,LR} \n"
690 " SUB SP, SP, #0x24 \n"
691 " BL sub_FF865C2C \n"
692 " LDR R1, =0x25FC \n"
693 " LDR R6, =0xFFBA548C \n"
694 " MOV R0, #0 \n"
695 " ADD R3, SP, #0x18 \n"
696 " ADD R12, SP, #0x1C \n"
697 " ADD R10, SP, #8 \n"
698 " MOV R2, #0 \n"
699 " ADD R9, SP, #0x10 \n"
700 "loc_FF8658C0:\n"
701 " ADD R12, SP, #0x1C \n"
702 " ADD LR, R12, R0, LSL #1 \n"
703 " MOV R2, #0 \n"
704 " ADD R3, SP, #0x18 \n"
705 " STRH R2, [LR] \n"
706 " ADD LR, R3, R0, LSL #1 \n"
707 " STRH R2, [LR] \n"
708 " STR R2, [R9, R0, LSL #2] \n"
709 " STR R2, [R10, R0, LSL #2] \n"
710 " ADD R0, R0, #1 \n"
711 " CMP R0, #2 \n"
712 " BLT loc_FF8658C0 \n"
713 "loc_FF8658F0:\n"
714 " LDR R0, =0x25FC \n"
715 " MOV R2, #0 \n"
716 " LDR R0, [R0, #8] \n"
717 " MOV R1, SP \n"
718 " BL sub_FF83A2F8 \n"
719 " CMP R0, #0 \n"
720 " LDRNE R1, =0x262 \n"
721 " LDRNE R0, =0xFF865B50 \n"
722 " BLNE sub_FF81EB78 \n"
723 " LDR R0, [SP] \n"
724 " AND R4, R0, #0xFF \n"
725 " AND R0, R0, #0xFF00 \n"
726 " CMP R0, #0x100 \n"
727 " BEQ loc_FF865960 \n"
728 " CMP R0, #0x200 \n"
729 " BEQ loc_FF865998 \n"
730 " CMP R0, #0x300 \n"
731 " BEQ loc_FF865B90 \n"
732 " CMP R0, #0x400 \n"
733 " BNE loc_FF8658F0 \n"
734 " CMP R4, #0 \n"
735 " LDRNE R1, =0x2ED \n"
736 " LDRNE R0, =0xFF865B50 \n"
737 " BLNE sub_FF81EB78 \n"
738 " RSB R0, R4, R4, LSL #3 \n"
739 " LDR R0, [R6, R0, LSL #2] \n"
740 "loc_FF865958:\n"
741 " BL sub_FF865C10 \n"
742 " B loc_FF8658F0 \n"
743 "loc_FF865960:\n"
744 " LDR R7, =0x260C \n"
745 " LDR R0, [R7, R4, LSL #2] \n"
746 " BL sub_FF83B290 \n"
747 " LDR R2, =0xFF8657E0 \n"
748 " ADD R1, R2, #0 \n"
749 " ORR R3, R4, #0x200 \n"
750 " MOV R0, #0x28 \n"
751 " BL sub_FF83B1AC \n"
752 " TST R0, #1 \n"
753 " CMPNE R0, #0x15 \n"
754 " STR R0, [R10, R4, LSL #2] \n"
755 " BEQ loc_FF8658F0 \n"
756 " MOV R1, #0x274 \n"
757 " B loc_FF865B3C \n"
758 "loc_FF865998:\n"
759 " RSB R5, R4, R4, LSL #3 \n"
760 " LDR R0, [R6, R5, LSL #2] \n"
761 " LDR R1, =0xC0240104 \n"
762 " LDR R0, [R1, R0, LSL #8] \n"
763 " MOV R2, R0, ASR #0x10 \n"
764 " ADD R0, SP, #0x1C \n"
765 " ADD R0, R0, R4, LSL #1 \n"
766 " STR R0, [SP, #0x20] \n"
767 " STRH R2, [R0] \n"
768 " ADD R0, SP, #0x18 \n"
769 " ADD R11, R0, R4, LSL #1 \n"
770 " LDRSH R3, [R11] \n"
771 " SUB R0, R2, R3 \n"
772 " CMP R0, #0 \n"
773 " BNE loc_FF865A18 \n"
774 " LDR R0, [R9, R4, LSL #2] \n"
775 " CMP R0, #0 \n"
776 " BEQ loc_FF865AF8 \n"
777 " LDR R7, =0x260C \n"
778 " LDR R0, [R7, R4, LSL #2] \n"
779 " BL sub_FF83B290 \n"
780 " LDR R2, =0xFF8657EC \n"
781 " ADD R1, R2, #0 \n"
782 " ORR R3, R4, #0x300 \n"
783 " MOV R0, #0x1F4 \n"
784 " BL sub_FF83B1AC \n"
785 " TST R0, #1 \n"
786 " CMPNE R0, #0x15 \n"
787 " STR R0, [R7, R4, LSL #2] \n"
788 " BEQ loc_FF865AF8 \n"
789 " LDR R1, =0x28D \n"
790 " B loc_FF865AF0 \n"
791 "loc_FF865A18:\n"
792 " MOV R1, R0 \n"
793 " RSBLT R0, R0, #0 \n"
794 " MOVLE R7, #0 \n"
795 " MOVGT R7, #1 \n"
796 " CMP R0, #0xFF \n"
797 " BLS loc_FF865A58 \n"
798 " CMP R1, #0 \n"
799 " RSBLE R0, R3, #0xFF \n"
800 " ADDLE R0, R0, #0x7F00 \n"
801 " ADDLE R0, R0, R2 \n"
802 " RSBGT R0, R2, #0xFF \n"
803 " ADDGT R0, R0, #0x7F00 \n"
804 " ADDGT R0, R0, R3 \n"
805 " ADD R0, R0, #0x8000 \n"
806 " ADD R0, R0, #1 \n"
807 " EOR R7, R7, #1 \n"
808 "loc_FF865A58:\n"
809 " STR R0, [SP, #4] \n"
810 " LDR R0, [R9, R4, LSL #2] \n"
811 " CMP R0, #0 \n"
812 " ADDEQ R0, R6, R5, LSL #2 \n"
813 " LDREQ R0, [R0, #8] \n"
814 " BEQ loc_FF865A90 \n"
815 " ADD R8, R6, R5, LSL #2 \n"
816 " ADD R1, R8, R7, LSL #2 \n"
817 " LDR R1, [R1, #0x10] \n"
818 " CMP R1, R0 \n"
819 " BEQ loc_FF865A94 \n"
820 " LDR R0, [R8, #0xC] \n"
821 " BL sub_FF89CCA4 \n"
822 " LDR R0, [R8, #8] \n"
823 "loc_FF865A90:\n"
824 " BL sub_FF89CCA4 \n"
825 "loc_FF865A94:\n"
826 " ADD R0, R6, R5, LSL #2 \n"
827 " ADD R7, R0, R7, LSL #2 \n"
828 " LDR R0, [R7, #0x10] \n"
829 " LDR R1, [SP, #4] \n"
830 " BL sub_FF89CBCC \n"
831 " LDR R0, [R7, #0x10] \n"
832 " LDR R7, =0x260C \n"
833 " STR R0, [R9, R4, LSL #2] \n"
834 " LDR R0, [SP, #0x20] \n"
835 " LDRH R0, [R0] \n"
836 " STRH R0, [R11] \n"
837 " LDR R0, [R7, R4, LSL #2] \n"
838 " BL sub_FF83B290 \n"
839 " LDR R2, =0xFF8657EC \n"
840 " ADD R1, R2, #0 \n"
841 " ORR R3, R4, #0x300 \n"
842 " MOV R0, #0x1F4 \n"
843 " BL sub_FF83B1AC \n"
844 " TST R0, #1 \n"
845 " CMPNE R0, #0x15 \n"
846 " STR R0, [R7, R4, LSL #2] \n"
847 " BEQ loc_FF865AF8 \n"
848 " LDR R1, =0x2CF \n"
849 "loc_FF865AF0:\n"
850 " LDR R0, =0xFF865B50 \n"
851 " BL sub_FF81EB78 \n"
852 "loc_FF865AF8:\n"
853 " ADD R0, R6, R5, LSL #2 \n"
854 " LDR R0, [R0, #0x18] \n"
855 " CMP R0, #1 \n"
856 " BNE loc_FF865B88 \n"
857 " LDR R0, =0x25FC \n"
858 " LDR R0, [R0, #0xC] \n"
859 " CMP R0, #0 \n"
860 " BEQ loc_FF865B88 \n"
861 " LDR R2, =0xFF8657E0 \n"
862 " ADD R1, R2, #0 \n"
863 " ORR R3, R4, #0x400 \n"
864 " BL sub_FF83B1AC \n"
865 " TST R0, #1 \n"
866 " CMPNE R0, #0x15 \n"
867 " STR R0, [R10, R4, LSL #2] \n"
868 " BEQ loc_FF8658F0 \n"
869 " LDR R1, =0x2D6 \n"
870 "loc_FF865B3C:\n"
871 " LDR R0, =0xFF865B50 \n"
872 " BL sub_FF81EB78 \n"
873 " B loc_FF8658F0 \n"
874 "dword_FF865B48 DCD 0x25FC \n"
875 "dword_FF865B4C DCD 0x313 \n"
876 "dword_FF865B50 DCD 0x61746F52 \n"
877 "dword_FF865B54 DCD 0x6E457972 \n"
878 "dword_FF865B58 DCD 0x65646F63 \n"
879 "dword_FF865B5C DCD 0x632E72 \n"
880 "dword_FF865B60 DCD 0x260C \n"
881 "dword_FF865B64 DCD 0xC0240108 \n"
882 "dword_FF865B68 DCD 0xFFBA548C \n"
883 "dword_FF865B6C DCD 0x20E \n"
884 "dword_FF865B70 DCD 0x262 \n"
885 "dword_FF865B74 DCD 0x2ED \n"
886 "dword_FF865B78 DCD 0xC0240104 \n"
887 "dword_FF865B7C DCD 0x28D \n"
888 "dword_FF865B80 DCD 0x2CF \n"
889 "dword_FF865B84 DCD 0x2D6 \n"
890 "loc_FF865B88:\n"
891 " LDR R0, [R6, R5, LSL #2] \n"
892 " B loc_FF865958 \n"
893 "loc_FF865B90:\n"
894 " LDR R0, [R9, R4, LSL #2] \n"
895 " CMP R0, #0 \n"
896 " MOVEQ R1, #0x2E0 \n"
897 " LDREQ R0, =0xFF865B50 \n"
898 " BLEQ sub_FF81EB78 \n"
899 " RSB R0, R4, R4, LSL #3 \n"
900 " ADD R0, R6, R0, LSL #2 \n"
901 " LDR R0, [R0, #0xC] \n"
902 " BL sub_FF89CCA4 \n"
903 " MOV R2, #0 \n"
904 " STR R2, [R9, R4, LSL #2] \n"
905 " B loc_FF8658F0 \n"
906 " STMFD SP!, {R3-R5,LR} \n"
907 " LDR R4, =0x25FC \n"
908 " LDR R0, [R4] \n"
909 " CMP R0, #0 \n"
910 " BNE loc_FF865BF4 \n"
911 " MOV R3, #0 \n"
912 " STR R3, [SP] \n"
913 " LDR R3, =0xFF865894 \n"
914 " MOV R2, #0x800 \n"
915 " MOV R1, #0x18 \n"
916 " LDR R0, =0xFF865CE4 \n"
917 " BL sub_FF83AB0C \n"
918 " STR R0, [R4] \n"
919 "loc_FF865BF4:\n"
920 " LDMFD SP!, {R3-R5,PC} \n"
921 " CMP R0, #0x28 \n"
922 " LDR R1, =0x25FC \n"
923 " SUBCS R0, R0, #0x28 \n"
924 );
925 }
926
927
928
929
930 void __attribute__((naked,noinline)) movie_record_task( ) {
931 asm volatile (
932 " STMFD SP!, {R2-R8,LR} \n"
933 " LDR R8, =0x2710 \n"
934 " LDR R4, =0x7128 \n"
935 " MOV R7, #1 \n"
936 " LDR R6, =0xFF98611C \n"
937 " MOV R5, #0 \n"
938 "loc_FF986444:\n"
939 " LDR R0, [R4, #0x24] \n"
940 " MOV R2, #0 \n"
941 " ADD R1, SP, #4 \n"
942 " BL sub_FF83A2F8 \n"
943 " LDR R0, [R4, #0x2C] \n"
944 " CMP R0, #0 \n"
945 " LDRNE R0, [R4, #0xC] \n"
946 " CMPNE R0, #2 \n"
947 " LDRNE R0, [R4, #0x44] \n"
948 " CMPNE R0, #6 \n"
949 " BNE loc_FF98655C \n"
950 " LDR R0, [SP, #4] \n"
951 " LDR R1, [R0] \n"
952 " SUB R1, R1, #2 \n"
953 " CMP R1, #0xA \n"
954 " ADDLS PC, PC, R1, LSL #2 \n"
955 " B loc_FF98655C \n"
956 " B loc_FF986510 \n"
957 " B loc_FF986530 \n"
958 " B loc_FF986540 \n"
959 " B loc_FF986548 \n"
960 " B loc_FF986518 \n"
961 " B loc_FF986550 \n"
962 " B loc_FF986520 \n"
963 " B loc_FF98655C \n"
964 " B loc_FF986558 \n"
965 " B loc_FF9864E0 \n"
966 " B loc_FF9864B4 \n"
967 "loc_FF9864B4:\n"
968 " STR R5, [R4, #0x40] \n"
969 " STR R5, [R4, #0x30] \n"
970 " STR R5, [R4, #0x34] \n"
971 " STRH R5, [R4, #6] \n"
972 " STR R6, [R4, #0xB4] \n"
973 " LDR R0, [R4, #0xC] \n"
974 " ADD R0, R0, #1 \n"
975 " STR R0, [R4, #0xC] \n"
976 " MOV R0, #6 \n"
977 " STR R0, [R4, #0x44] \n"
978 " B loc_FF9864FC \n"
979 "loc_FF9864E0:\n"
980 " STR R5, [R4, #0x40] \n"
981 " STR R5, [R4, #0x30] \n"
982 " STR R6, [R4, #0xB4] \n"
983 " LDR R0, [R4, #0xC] \n"
984 " ADD R0, R0, #1 \n"
985 " STR R0, [R4, #0xC] \n"
986 " STR R7, [R4, #0x44] \n"
987 "loc_FF9864FC:\n"
988 " LDR R2, =0xFF985334 \n"
989 " LDR R1, =0xB45D0 \n"
990 " LDR R0, =0xFF985430 \n"
991 " BL sub_FF8530D0 \n"
992 " B loc_FF98655C \n"
993 "loc_FF986510:\n"
994 " BL sub_FF986244 \n"
995 " B loc_FF98655C \n"
996 "loc_FF986518:\n"
997 " BL sub_FF985B84 \n"
998 " B loc_FF98655C \n"
999 "loc_FF986520:\n"
1000 " LDR R1, [R0, #0x18] \n"
1001 " LDR R0, [R0, #4] \n"
1002 " BL sub_FFAF2B4C \n"
1003 " B loc_FF98655C \n"
1004 "loc_FF986530:\n"
1005 " LDR R0, [R4, #0x44] \n"
1006 " CMP R0, #5 \n"
1007 " STRNE R7, [R4, #0x34] \n"
1008 " B loc_FF98655C \n"
1009 "loc_FF986540:\n"
1010 " BL sub_FF9857CC \n"
1011 " B loc_FF98655C \n"
1012 "loc_FF986548:\n"
1013 " BL sub_FF98547C \n"
1014 " B loc_FF98655C \n"
1015 "loc_FF986550:\n"
1016 " BL sub_FF9852C0 \n"
1017 " B loc_FF98655C \n"
1018 "loc_FF986558:\n"
1019 " BL sub_FF98698C \n"
1020 "loc_FF98655C:\n"
1021 " LDR R1, [SP, #4] \n"
1022 " MOV R3, #0x5F0 \n"
1023 " STR R5, [R1] \n"
1024 " STR R3, [SP] \n"
1025 " LDR R0, [R4, #0x28] \n"
1026 " LDR R3, =0xFF985124 \n"
1027 " MOV R2, R8 \n"
1028 " BL sub_FF83AC4C \n"
1029 " B loc_FF986444 \n"
1030 " STMFD SP!, {R3-R9,LR} \n"
1031 " LDR R5, =0x7128 \n"
1032 " MOV R6, #0 \n"
1033 " STR R6, [R5, #0x2C] \n"
1034 " LDR R0, [R5, #8] \n"
1035 " LDR R8, =0x2710 \n"
1036 " CMP R0, #0 \n"
1037 " BNE sub_FF986648 \n"
1038 " MOV R0, #1 \n"
1039 " STR R0, [R5, #8] \n"
1040 " MOV R0, #0 \n"
1041 );
1042 }
1043
1044
1045
1046
1047 void __attribute__((naked,noinline)) sub_FF985B84_my( ) {
1048 asm volatile (
1049 " STMFD SP!, {R4-R11,LR} \n"
1050 " SUB SP, SP, #0x64 \n"
1051 " MOV R8, #0 \n"
1052 " LDR R6, =0x7128 \n"
1053 " MOV R4, R0 \n"
1054 " STR R8, [SP, #0x54] \n"
1055 " STR R8, [SP, #0x4C] \n"
1056 " LDR R0, [R6, #0x44] \n"
1057 " MOV R11, #4 \n"
1058 " CMP R0, #3 \n"
1059 " STREQ R11, [R6, #0x44] \n"
1060 " LDR R0, [R6, #0xB4] \n"
1061 " MOV R9, #0 \n"
1062 " MOV R7, #0 \n"
1063 " MOV R5, #1 \n"
1064 " BLX R0 \n"
1065 " LDR R0, [R6, #0x44] \n"
1066 " CMP R0, #6 \n"
1067 " BEQ loc_FF985BE4 \n"
1068 " LDR R1, [R6, #0xC] \n"
1069 " CMP R1, #2 \n"
1070 " BNE loc_FF985C04 \n"
1071 " CMP R0, #5 \n"
1072 " BEQ loc_FF985C7C \n"
1073 "loc_FF985BE4:\n"
1074 " LDR R1, =0x7F2 \n"
1075 " MOV R7, #1 \n"
1076 " LDR R0, =0xFF985124 \n"
1077 " BL sub_FF81EB78 \n"
1078 " LDR R0, [R6, #0x44] \n"
1079 " CMP R0, #4 \n"
1080 " MOVNE R5, #0 \n"
1081 " B loc_FF985C0C \n"
1082 "loc_FF985C04:\n"
1083 " CMP R0, #4 \n"
1084 " BNE loc_FF985C7C \n"
1085 "loc_FF985C0C:\n"
1086 " LDRH R0, [R6, #6] \n"
1087 " CMP R0, #1 \n"
1088 " LDREQ R1, =0x809 \n"
1089 " LDREQ R0, =0xFF985124 \n"
1090 " BLEQ sub_FF81EB78 \n"
1091 " LDRH R0, [R6, #6] \n"
1092 " CMP R0, #3 \n"
1093 " BNE loc_FF985C40 \n"
1094 " LDR R0, [R6, #0x6C] \n"
1095 " LDR R1, [R6, #0xB8] \n"
1096 " BL sub_FFBA18B4 \n"
1097 " CMP R1, #0 \n"
1098 " MOVNE R5, #0 \n"
1099 "loc_FF985C40:\n"
1100 " LDR R0, [R6, #0x44] \n"
1101 " CMP R0, #6 \n"
1102 " CMPNE R0, #1 \n"
1103 " CMPNE R0, #3 \n"
1104 " BNE loc_FF985C84 \n"
1105 " CMP R7, #1 \n"
1106 " CMPEQ R5, #0 \n"
1107 " BNE loc_FF985C84 \n"
1108 " LDR R0, [R6, #0x18] \n"
1109 " MOV R1, #0x3E8 \n"
1110 " BL sub_FF83A714 \n"
1111 " CMP R0, #9 \n"
1112 " BNE loc_FF9860A4 \n"
1113 " MOV R0, #0x90000 \n"
1114 " BL sub_FF89D31C \n"
1115 "loc_FF985C7C:\n"
1116 " ADD SP, SP, #0x64 \n"
1117 " LDMFD SP!, {R4-R11,PC} \n"
1118 "loc_FF985C84:\n"
1119 " CMP R5, #1 \n"
1120 " MOV R10, #1 \n"
1121 " BNE loc_FF985CAC \n"
1122 " ADD R3, SP, #0x4C \n"
1123 " ADD R2, SP, #0x50 \n"
1124 " ADD R1, SP, #0x54 \n"
1125 " ADD R0, SP, #0x58 \n"
1126 " BL sub_FFAF2C0C \n"
1127 " MOVS R9, R0 \n"
1128 " BNE loc_FF985CC8 \n"
1129 "loc_FF985CAC:\n"
1130 " LDR R0, [R6, #0x34] \n"
1131 " CMP R0, #1 \n"
1132 " BNE loc_FF985E24 \n"
1133 " LDR R0, [R6, #0x6C] \n"
1134 " LDR R1, [R6, #0x48] \n"
1135 " CMP R0, R1 \n"
1136 " BCC loc_FF985E24 \n"
1137 "loc_FF985CC8:\n"
1138 " CMP R9, #0x80000001 \n"
1139 " STREQ R11, [R6, #0x70] \n"
1140 " BEQ loc_FF985D00 \n"
1141 " CMP R9, #0x80000003 \n"
1142 " STREQ R10, [R6, #0x70] \n"
1143 " BEQ loc_FF985D00 \n"
1144 " CMP R9, #0x80000005 \n"
1145 " MOVEQ R0, #2 \n"
1146 " BEQ loc_FF985CFC \n"
1147 " CMP R9, #0x80000007 \n"
1148 " STRNE R8, [R6, #0x70] \n"
1149 " BNE loc_FF985D00 \n"
1150 " MOV R0, #3 \n"
1151 "loc_FF985CFC:\n"
1152 " STR R0, [R6, #0x70] \n"
1153 "loc_FF985D00:\n"
1154 " LDR R0, [R6, #0xC] \n"
1155 " CMP R0, #2 \n"
1156 " BNE loc_FF985D68 \n"
1157 " MOV R1, #0 \n"
1158 " LDR R0, =0xFF985B78 \n"
1159 " BL sub_FFAAD410 \n"
1160 " LDR R2, [R6, #0x64] \n"
1161 " ADD R3, SP, #0x5C \n"
1162 " STRD R2, [SP, #0x28] \n"
1163 " MOV R2, #0x18 \n"
1164 " ADD R1, SP, #0x34 \n"
1165 " ADD R0, SP, #0x10 \n"
1166 " BL sub_FFB9F254 \n"
1167 " LDR R1, [R6, #0x84] \n"
1168 " LDR R2, [R6, #0x88] \n"
1169 " MVN R3, #1 \n"
1170 " ADD R0, SP, #0x60 \n"
1171 " STMEA SP, {R0-R3} \n"
1172 " LDR R0, =0xB4618 \n"
1173 " MOV R3, #0 \n"
1174 " MOV R2, #0 \n"
1175 " MOV R1, #0x40 \n"
1176 " BL sub_FFAAD368 \n"
1177 " B loc_FF985DBC \n"
1178 "loc_FF985D60:\n"
1179 " MOV R1, #1 \n"
1180 " B loc_FF986030 \n"
1181 "loc_FF985D68:\n"
1182 " BL sub_FF986A38 \n"
1183 " LDR R2, [R6, #0x64] \n"
1184 " ADD R3, SP, #0x5C \n"
1185 " MVN R1, #1 \n"
1186 " MOV R0, #0 \n"
1187 " ADD R5, SP, #0x1C \n"
1188 " STMIA R5, {R0-R3} \n"
1189 " LDR R3, [R4, #0x1C] \n"
1190 " LDR R1, [R6, #0x84] \n"
1191 " LDR R2, [R6, #0x88] \n"
1192 " ADD R4, SP, #0xC \n"
1193 " ADD R0, SP, #0x60 \n"
1194 " STMIA R4, {R0-R3} \n"
1195 " MOV R3, #0 \n"
1196 " MOV R1, #0x40 \n"
1197 " MOV R2, #0 \n"
1198 " STMEA SP, {R1-R3} \n"
1199 " LDR R3, =0xB4618 \n"
1200 " MOV R1, #0 \n"
1201 " MOV R0, #0 \n"
1202 " BL sub_FFAAC1D8 \n"
1203 "loc_FF985DBC:\n"
1204 " LDR R0, [R6, #0x18] \n"
1205 " LDR R1, [R6, #0x60] \n"
1206 " BL sub_FF83A714 \n"
1207 " CMP R0, #9 \n"
1208 " BEQ loc_FF985D60 \n"
1209 " LDR R0, [SP, #0x5C] \n"
1210 " CMP R0, #0 \n"
1211 " BEQ loc_FF985DE4 \n"
1212 "loc_FF985DDC:\n"
1213 " MOV R1, #1 \n"
1214 " B loc_FF986048 \n"
1215 "loc_FF985DE4:\n"
1216 " LDR R0, [R6, #0xC] \n"
1217 " MOV R4, #5 \n"
1218 " CMP R0, #2 \n"
1219 " MOV R0, #1 \n"
1220 " BNE loc_FF985E10 \n"
1221 " BL sub_FFAAD3D0 \n"
1222 " BL sub_FFAAD3F8 \n"
1223 " STR R4, [R6, #0x44] \n"
1224 " BL sub_FF986A38 \n"
1225 " STR R10, [R6, #0x44] \n"
1226 " B loc_FF985E1C \n"
1227 "loc_FF985E10:\n"
1228 " BL sub_FFAAC28C \n"
1229 " BL sub_FFAAC2EC \n"
1230 " STR R4, [R6, #0x44] \n"
1231 "loc_FF985E1C:\n"
1232 " STR R8, [R6, #0x34] \n"
1233 " B loc_FF985C7C \n"
1234 "loc_FF985E24:\n"
1235 " CMP R5, #1 \n"
1236 " BNE loc_FF9860A4 \n"
1237 " STR R10, [R6, #0x38] \n"
1238 " LDR R0, [R6, #0x6C] \n"
1239 " LDR R11, [R4, #0xC] \n"
1240 " CMP R0, #0 \n"
1241 " LDRNE R9, [SP, #0x58] \n"
1242 " LDRNE R10, [SP, #0x54] \n"
1243 " BNE loc_FF985F6C \n"
1244 " LDR R0, [R6, #0xC] \n"
1245 " CMP R0, #2 \n"
1246 " BNE loc_FF985EC8 \n"
1247 " MOV R1, #0 \n"
1248 " LDR R0, =0xFF985B78 \n"
1249 " BL sub_FFAAD410 \n"
1250 " LDR R2, [R6, #0x64] \n"
1251 " ADD R3, SP, #0x5C \n"
1252 " STRD R2, [SP, #0x28] \n"
1253 " MOV R2, #0x18 \n"
1254 " ADD R1, SP, #0x34 \n"
1255 " ADD R0, SP, #0x10 \n"
1256 " BL sub_FFB9F254 \n"
1257 " LDR R1, [R6, #0x84] \n"
1258 " LDR R2, [R6, #0x88] \n"
1259 " MVN R3, #0 \n"
1260 " ADD R0, SP, #0x60 \n"
1261 " STMEA SP, {R0-R3} \n"
1262 " LDR R0, [SP, #0x58] \n"
1263 " LDR R1, [SP, #0x54] \n"
1264 " LDR R2, [SP, #0x50] \n"
1265 " LDR R3, [SP, #0x4C] \n"
1266 " BL sub_FFAAD368 \n"
1267 " LDR R0, [R6, #0x18] \n"
1268 " LDR R1, [R6, #0x60] \n"
1269 " BL sub_FF83A714 \n"
1270 " CMP R0, #9 \n"
1271 " BEQ loc_FF985D60 \n"
1272 " MOV R1, #0 \n"
1273 " LDR R0, =0xFF985B6C \n"
1274 " BL sub_FFAAD410 \n"
1275 " B loc_FF985F30 \n"
1276 "loc_FF985EC8:\n"
1277 " LDR R0, [R4, #0x20] \n"
1278 " LDR R2, [R6, #0x64] \n"
1279 " ADD R3, SP, #0x5C \n"
1280 " MVN R1, #0 \n"
1281 " ADD R9, SP, #0x1C \n"
1282 " STMIA R9, {R0-R3} \n"
1283 " LDR R3, [R4, #0x1C] \n"
1284 " LDR R1, [R6, #0x84] \n"
1285 " LDR R2, [R6, #0x88] \n"
1286 " ADD R0, SP, #0x60 \n"
1287 " ADD R9, SP, #0xC \n"
1288 " STMIA R9, {R0-R3} \n"
1289 " LDR R1, [SP, #0x50] \n"
1290 " LDR R2, [SP, #0x54] \n"
1291 " LDR R3, [SP, #0x4C] \n"
1292 " STMFA SP, {R1,R3} \n"
1293 " STR R2, [SP] \n"
1294 " LDMIB R4, {R0,R1} \n"
1295 " LDR R3, [SP, #0x58] \n"
1296 " MOV R2, R11 \n"
1297 " BL sub_FFAAC1D8 \n"
1298 " LDR R0, [R6, #0x18] \n"
1299 " LDR R1, [R6, #0x60] \n"
1300 " BL sub_FF83A714 \n"
1301 " CMP R0, #9 \n"
1302 " BEQ loc_FF985D60 \n"
1303 "loc_FF985F30:\n"
1304 " LDR R0, [SP, #0x5C] \n"
1305 " CMP R0, #0 \n"
1306 " BNE loc_FF985DDC \n"
1307 " LDR R0, [R6, #0xC] \n"
1308 " CMP R0, #2 \n"
1309 " MOV R0, #1 \n"
1310 " BNE loc_FF985F54 \n"
1311 " BL sub_FFAAD3D0 \n"
1312 " B loc_FF985F58 \n"
1313 "loc_FF985F54:\n"
1314 " BL sub_FFAAC28C \n"
1315 "loc_FF985F58:\n"
1316 " LDR R0, [SP, #0x60] \n"
1317 " LDR R1, [SP, #0x58] \n"
1318 " ADD R9, R1, R0 \n"
1319 " LDR R1, [SP, #0x54] \n"
1320 " SUB R10, R1, R0 \n"
1321 "loc_FF985F6C:\n"
1322 " LDR R0, [R6, #0xC] \n"
1323 " LDR R2, [R6, #0x64] \n"
1324 " CMP R0, #2 \n"
1325 " ADD R3, SP, #0x5C \n"
1326 " BNE loc_FF985FC0 \n"
1327 " STRD R2, [SP, #0x28] \n"
1328 " MOV R2, #0x18 \n"
1329 " ADD R1, SP, #0x34 \n"
1330 " ADD R0, SP, #0x10 \n"
1331 " BL sub_FFB9F254 \n"
1332 " LDR R1, [R6, #0x84] \n"
1333 " LDR R2, [R6, #0x88] \n"
1334 " LDR R3, [R6, #0x68] \n"
1335 " ADD R0, SP, #0x60 \n"
1336 " STMEA SP, {R0-R3} \n"
1337 " LDR R2, [SP, #0x50] \n"
1338 " LDR R3, [SP, #0x4C] \n"
1339 " MOV R1, R10 \n"
1340 " MOV R0, R9 \n"
1341 " BL sub_FFAAD368 \n"
1342 " B loc_FF986018 \n"
1343 "loc_FF985FC0:\n"
1344 " LDR R1, [R6, #0x68] \n"
1345 " LDR R0, [R4, #0x20] \n"
1346 " STR R1, [SP, #0x20] \n"
1347 " STR R0, [SP, #0x1C] \n"
1348 " STR R2, [SP, #0x24] \n"
1349 " STR R3, [SP, #0x28] \n"
1350 " LDR R3, [R4, #0x1C] \n"
1351 " LDR R1, [R6, #0x84] \n"
1352 " LDR R2, [R6, #0x88] \n"
1353 " ADD R0, SP, #0x60 \n"
1354 " STR R2, [SP, #0x14] \n"
1355 " LDR R2, [SP, #0x50] \n"
1356 " STR R1, [SP, #0x10] \n"
1357 " STR R3, [SP, #0x18] \n"
1358 " LDR R3, [SP, #0x4C] \n"
1359 " STR R0, [SP, #0xC] \n"
1360 " STMFA SP, {R2,R3} \n"
1361 " STR R10, [SP] \n"
1362 " LDMIB R4, {R0,R1} \n"
1363 " MOV R3, R9 \n"
1364 " MOV R2, R11 \n"
1365 " BL sub_FFAAC1D8 \n"
1366 "loc_FF986018:\n"
1367 " LDR R0, [R6, #0x18] \n"
1368 " LDR R1, [R6, #0x60] \n"
1369 " BL sub_FF83A714 \n"
1370 " CMP R0, #9 \n"
1371 " BNE loc_FF986038 \n"
1372 " MOV R1, #0 \n"
1373 "loc_FF986030:\n"
1374 " MOV R0, #0x90000 \n"
1375 " B loc_FF98604C \n"
1376 "loc_FF986038:\n"
1377 " LDR R0, [SP, #0x5C] \n"
1378 " CMP R0, #0 \n"
1379 " BEQ loc_FF986054 \n"
1380 " MOV R1, #0 \n"
1381 "loc_FF986048:\n"
1382 " MOV R0, #0xA0000 \n"
1383 "loc_FF98604C:\n"
1384 " BL sub_FF985B0C \n"
1385 " B loc_FF985C7C \n"
1386 "loc_FF986054:\n"
1387 " LDR R0, [R6, #0xC] \n"
1388 " CMP R0, #2 \n"
1389 " MOV R0, #0 \n"
1390 " BNE loc_FF98606C \n"
1391 " BL sub_FFAAD3D0 \n"
1392 " B loc_FF986070 \n"
1393 "loc_FF98606C:\n"
1394 " BL sub_FFAAC28C \n"
1395 "loc_FF986070:\n"
1396 " LDR R0, [SP, #0x58] \n"
1397 " LDR R1, [SP, #0x60] \n"
1398 " BL sub_FFAF2E44 \n"
1399 " LDR R0, [R6, #0x68] \n"
1400 " LDR R3, =0x71B0 \n"
1401 " ADD R1, R0, #1 \n"
1402 " STR R1, [R6, #0x68] \n"
1403 " STR R3, [SP] \n"
1404 " LDR R0, [R6, #0x64] \n"
1405 " SUB R3, R3, #4 \n"
1406 " AND R2, R0, #0xFF \n"
1407 " LDR R0, [SP, #0x60] \n"
1408 " BL sub_FFAF098C \n"
1409 "loc_FF9860A4:\n"
1410 " CMP R5, #1 \n"
1411 " LDRNEH R0, [R6, #6] \n"
1412 " CMPNE R0, #3 \n"
1413 " BNE loc_FF985C7C \n"
1414 " LDR R0, [R6, #0x6C] \n"
1415 " ADD R0, R0, #1 \n"
1416 " STR R0, [R6, #0x6C] \n"
1417 " LDRH R1, [R6, #6] \n"
1418 " CMP R1, #3 \n"
1419 " LDRNE R1, [R6, #0x54] \n"
1420 " LDREQ R1, =0x3E9 \n"
1421 " MUL R0, R1, R0 \n"
1422 " LDREQ R1, =0x1770 \n"
1423 " LDRNE R1, [R6, #0x50] \n"
1424 " BL sub_FFBA18B4 \n"
1425 " MOV R4, R0 \n"
1426 " BL sub_FFAF31C0 \n"
1427 " LDR R0, [R6, #0x8C] \n"
1428 " CMP R0, R4 \n"
1429 " BNE loc_FF986100 \n"
1430 " LDR R0, [R6, #0x3C] \n"
1431 " CMP R0, #1 \n"
1432 " BNE loc_FF986114 \n"
1433 "loc_FF986100:\n"
1434 " LDR R1, [R6, #0x98] \n"
1435 " MOV R0, R4 \n"
1436 " BLX R1 \n"
1437 " STR R4, [R6, #0x8C] \n"
1438 " STR R8, [R6, #0x3C] \n"
1439 "loc_FF986114:\n"
1440 " STR R8, [R6, #0x38] \n"
1441 " B loc_FF985C7C \n"
1442 " BX LR \n"
1443 " LDR R0, =0x7128 \n"
1444 " LDR R1, =0xFF98611C \n"
1445 " STR R1, [R0, #0xB4] \n"
1446 " MOV R1, #3 \n"
1447 " STR R1, [R0, #0x44] \n"
1448 " BX LR \n"
1449 " STMFD SP!, {R3-R7,LR} \n"
1450 " LDR R5, =0x7128 \n"
1451 " MOV R6, R1 \n"
1452 " LDR R0, [R5, #0xBC] \n"
1453 " MOV R4, R2 \n"
1454 " CMP R0, R2 \n"
1455 " BCC loc_FF986198 \n"
1456 " STR R4, [R5, #0xBC] \n"
1457 " BL sub_FF986960 \n"
1458 " MOV R1, R0 \n"
1459 " MOV R0, #8 \n"
1460 " STMIA R1, {R0,R6} \n"
1461 " STR R4, [R1, #0x18] \n"
1462 " LDR R0, [R5, #0x24] \n"
1463 " BL sub_FF83A4FC \n"
1464 " LDR R0, [R5, #0x44] \n"
1465 " CMP R0, #5 \n"
1466 " BEQ loc_FF986198 \n"
1467 " MOV R0, SP \n"
1468 " BL sub_FFAF29EC \n"
1469 " LDR R0, =0xB4600 \n"
1470 " LDR R1, [R0, #0xC] \n"
1471 " LDR R0, [SP] \n"
1472 " BL sub_FF867B94 \n"
1473 "loc_FF986198:\n"
1474 " LDMFD SP!, {R3-R7,PC} \n"
1475 " STMFD SP!, {R4,LR} \n"
1476 " BL sub_FF986960 \n"
1477 " MOV R1, R0 \n"
1478 " MOV R0, #7 \n"
1479 " STR R0, [R1] \n"
1480 " LDR R0, =0x7128 \n"
1481 " LDR R0, [R0, #0x24] \n"
1482 " LDMFD SP!, {R4,LR} \n"
1483 " B sub_FF83A4FC \n"
1484 " STMFD SP!, {R4,LR} \n"
1485 );
1486 }
1487
1488
1489
1490
1491 void __attribute__((naked,noinline)) capt_seq_task( ) {
1492 asm volatile (
1493 " STMFD SP!, {R3-R7,LR} \n"
1494 " LDR R7, =0x2E6C \n"
1495 " LDR R4, =0x3CFBC \n"
1496 " MOV R6, #0 \n"
1497 "loc_FF88323C:\n"
1498 " LDR R0, [R7, #4] \n"
1499 " MOV R2, #0 \n"
1500 " MOV R1, SP \n"
1501 " BL sub_FF83A2F8 \n"
1502 " TST R0, #1 \n"
1503 " BEQ loc_FF883268 \n"
1504 " LDR R1, =0x43F \n"
1505 " LDR R0, =0xFF882CF4 \n"
1506 " BL sub_FF81EB78 \n"
1507 " BL sub_FF81EB30 \n"
1508 " LDMFD SP!, {R3-R7,PC} \n"
1509 "loc_FF883268:\n"
1510 " LDR R0, [SP] \n"
1511 " LDR R1, [R0] \n"
1512 " CMP R1, #0x23 \n"
1513 " ADDLS PC, PC, R1, LSL #2 \n"
1514 " B loc_FF8834A0 \n"
1515 " B loc_FF88330C \n"
1516 " B loc_FF883324 \n"
1517 " B loc_FF883348 \n"
1518 " B loc_FF88335C \n"
1519 " B loc_FF883354 \n"
1520 " B loc_FF883368 \n"
1521 " B loc_FF883370 \n"
1522 " B loc_FF883378 \n"
1523 " B loc_FF883384 \n"
1524 " B loc_FF8833AC \n"
1525 " B loc_FF883390 \n"
1526 " B loc_FF88339C \n"
1527 " B loc_FF8833A4 \n"
1528 " B loc_FF8833B4 \n"
1529 " B loc_FF8833BC \n"
1530 " B loc_FF8833C4 \n"
1531 " B loc_FF8833CC \n"
1532 " B loc_FF8833D4 \n"
1533 " B loc_FF8833DC \n"
1534 " B loc_FF8833E4 \n"
1535 " B loc_FF8833EC \n"
1536 " B loc_FF8833F4 \n"
1537 " B loc_FF8833FC \n"
1538 " B loc_FF883408 \n"
1539 " B loc_FF883410 \n"
1540 " B loc_FF88341C \n"
1541 " B loc_FF883424 \n"
1542 " B loc_FF88342C \n"
1543 " B loc_FF883434 \n"
1544 " B loc_FF88343C \n"
1545 " B loc_FF883444 \n"
1546 " B loc_FF88344C \n"
1547 " B loc_FF883454 \n"
1548 " B loc_FF88345C \n"
1549 " B loc_FF883468 \n"
1550 " B loc_FF8834AC \n"
1551 "loc_FF88330C:\n"
1552 " BL sub_FF8839D4 \n"
1553 " BL sub_FF880B34 \n"
1554 " LDR R0, [R4, #0x24] \n"
1555 " CMP R0, #0 \n"
1556 " BLNE sub_FF98AEC0 \n"
1557 " B loc_FF8834AC \n"
1558 "loc_FF883324:\n"
1559 " LDRH R1, [R4] \n"
1560 " LDR R0, [R0, #0xC] \n"
1561 " SUB R12, R1, #0x4200 \n"
1562 " SUBS R12, R12, #0x2E \n"
1563 " BNE loc_FF883340 \n"
1564 " BL sub_FF98BCA8 \n"
1565 " B loc_FF8834AC \n"
1566 "loc_FF883340:\n"
1567 " BL sub_FF98ACEC \n"
1568 " B loc_FF8834AC \n"
1569 "loc_FF883348:\n"
1570 " MOV R0, #1 \n"
1571 " BL sub_FF883CB8 \n"
1572 " B loc_FF8834AC \n"
1573 "loc_FF883354:\n"
1574 " BL sub_FF88366C \n"
1575 " B loc_FF883360 \n"
1576 "loc_FF88335C:\n"
1577 " BL sub_FF8839B4 \n"
1578 "loc_FF883360:\n"
1579 " STR R6, [R4, #0x24] \n"
1580 " B loc_FF8834AC \n"
1581 "loc_FF883368:\n"
1582 " BL sub_FF8839BC \n"
1583 " B loc_FF8834AC \n"
1584 "loc_FF883370:\n"
1585 " BL sub_FF883BBC \n"
1586 " B loc_FF883388 \n"
1587 "loc_FF883378:\n"
1588 " LDR R0, [R0, #0xC] \n"
1589 " BL sub_FF98AF28 \n"
1590 " B loc_FF8834AC \n"
1591 "loc_FF883384:\n"
1592 " BL sub_FF883C28 \n"
1593 "loc_FF883388:\n"
1594 " BL sub_FF880B34 \n"
1595 " B loc_FF8834AC \n"
1596 "loc_FF883390:\n"
1597 " LDR R0, [R4, #0x54] \n"
1598 " BL sub_FF884614 \n"
1599 " B loc_FF8834AC \n"
1600 "loc_FF88339C:\n"
1601 " BL sub_FF884968 \n"
1602 " B loc_FF8834AC \n"
1603 "loc_FF8833A4:\n"
1604 " BL sub_FF8849CC \n"
1605 " B loc_FF8834AC \n"
1606 "loc_FF8833AC:\n"
1607 " BL sub_FF8839B4 \n"
1608 " B loc_FF8834AC \n"
1609 "loc_FF8833B4:\n"
1610 " BL sub_FF989FFC \n"
1611 " B loc_FF8834AC \n"
1612 "loc_FF8833BC:\n"
1613 " BL sub_FF98A208 \n"
1614 " B loc_FF8834AC \n"
1615 "loc_FF8833C4:\n"
1616 " BL sub_FF98A2A0 \n"
1617 " B loc_FF8834AC \n"
1618 "loc_FF8833CC:\n"
1619 " BL sub_FF98A38C \n"
1620 " B loc_FF8834AC \n"
1621 "loc_FF8833D4:\n"
1622 " BL sub_FF98A484 \n"
1623 " B loc_FF8834AC \n"
1624 "loc_FF8833DC:\n"
1625 " MOV R0, #0 \n"
1626 " B loc_FF883400 \n"
1627 "loc_FF8833E4:\n"
1628 " BL sub_FF98A6C0 \n"
1629 " B loc_FF8834AC \n"
1630 "loc_FF8833EC:\n"
1631 " BL sub_FF98A764 \n"
1632 " B loc_FF8834AC \n"
1633 "loc_FF8833F4:\n"
1634 " BL sub_FF98A844 \n"
1635 " B loc_FF8834AC \n"
1636 "loc_FF8833FC:\n"
1637 " MOV R0, #1 \n"
1638 "loc_FF883400:\n"
1639 " BL sub_FF98A548 \n"
1640 " B loc_FF8834AC \n"
1641 "loc_FF883408:\n"
1642 " BL sub_FF883EC4 \n"
1643 " B loc_FF8834AC \n"
1644 "loc_FF883410:\n"
1645 " BL sub_FF883F6C \n"
1646 " BL sub_FF98C1D0 \n"
1647 " B loc_FF8834AC \n"
1648 "loc_FF88341C:\n"
1649 " BL sub_FF884350 \n"
1650 " B loc_FF8834AC \n"
1651 "loc_FF883424:\n"
1652 " BL sub_FF884490 \n"
1653 " B loc_FF8834AC \n"
1654 "loc_FF88342C:\n"
1655 " BL sub_FF98C2A0 \n"
1656 " B loc_FF8834AC \n"
1657 "loc_FF883434:\n"
1658 " BL sub_FF837C6C \n"
1659 " B loc_FF8834AC \n"
1660 "loc_FF88343C:\n"
1661 " BL sub_FF886FE4 \n"
1662 " B loc_FF8834AC \n"
1663 "loc_FF883444:\n"
1664 " BL sub_FF887070 \n"
1665 " B loc_FF8834AC \n"
1666 "loc_FF88344C:\n"
1667 " BL sub_FF98A97C \n"
1668 " B loc_FF8834AC \n"
1669 "loc_FF883454:\n"
1670 " BL sub_FF98A9E0 \n"
1671 " B loc_FF8834AC \n"
1672 "loc_FF88345C:\n"
1673 " BL sub_FF8870CC \n"
1674 " BL sub_FF88708C \n"
1675 " B loc_FF8834AC \n"
1676 "loc_FF883468:\n"
1677 " MOV R0, #1 \n"
1678 " BL sub_FF98B6D0 \n"
1679 " MOV R0, #1 \n"
1680 " BL sub_FF98B800 \n"
1681 " LDRH R0, [R4, #0x9C] \n"
1682 " CMP R0, #4 \n"
1683 " LDRNEH R0, [R4] \n"
1684 " SUBNE R12, R0, #0x4200 \n"
1685 " SUBNES R12, R12, #0x2A \n"
1686 " BNE loc_FF8834AC \n"
1687 " BL sub_FF887070 \n"
1688 " BL sub_FF887670 \n"
1689 " BL sub_FF8874EC \n"
1690 " B loc_FF8834AC \n"
1691 "loc_FF8834A0:\n"
1692 " LDR R1, =0x591 \n"
1693 " LDR R0, =0xFF882CF4 \n"
1694 " BL sub_FF81EB78 \n"
1695 "loc_FF8834AC:\n"
1696 " LDR R0, [SP] \n"
1697 " LDR R1, [R0, #4] \n"
1698 " LDR R0, [R7] \n"
1699 " BL sub_FF88E1E4 \n"
1700 " LDR R5, [SP] \n"
1701 " LDR R0, [R5, #8] \n"
1702 " CMP R0, #0 \n"
1703 " LDREQ R1, =0x115 \n"
1704 " LDREQ R0, =0xFF882CF4 \n"
1705 " BLEQ sub_FF81EB78 \n"
1706 " STR R6, [R5, #8] \n"
1707 " B loc_FF88323C \n"
1708 " STMFD SP!, {R3-R5,LR} \n"
1709 " LDR R2, =0x3CED0 \n"
1710 " MOV R0, #0 \n"
1711 " MOV R1, #0 \n"
1712 "loc_FF8834EC:\n"
1713 " ADD R3, R2, R0, LSL #4 \n"
1714 " ADD R0, R0, #1 \n"
1715 " CMP R0, #5 \n"
1716 " STR R1, [R3, #8] \n"
1717 " BCC loc_FF8834EC \n"
1718 " LDR R0, =0x3CF20 \n"
1719 " STR R1, [R0, #8] \n"
1720 " ADD R0, R0, #0x10 \n"
1721 " STR R1, [R0, #8] \n"
1722 " BL sub_FF8840F0 \n"
1723 " BL sub_FF98AF90 \n"
1724 " BL sub_FF98B940 \n"
1725 " MOV R1, #5 \n"
1726 );
1727 }
1728
1729
1730
1731
1732 void __attribute__((naked,noinline)) sub_FF98ACEC_my( ) {
1733 asm volatile (
1734 " STMFD SP!, {R3-R7,LR} \n"
1735 " LDR R5, =0x3CFBC \n"
1736 " MOV R4, R0 \n"
1737 " LDR R0, [R5, #0x24] \n"
1738 " MOV R6, #0 \n"
1739 " CMP R0, #0 \n"
1740 " BNE loc_FF98AD28 \n"
1741 " MOV R0, #0xC \n"
1742 " BL sub_FF889040 \n"
1743 " TST R0, #1 \n"
1744 " MOVNE R2, R4 \n"
1745 " LDMNEFD SP!, {R3-R7,LR} \n"
1746 " MOVNE R1, #1 \n"
1747 " MOVNE R0, #1 \n"
1748 " BNE sub_FF8811F8 \n"
1749 "loc_FF98AD28:\n"
1750 " LDR R0, [R4, #8] \n"
1751 " LDR R7, =0x420C \n"
1752 " ORR R0, R0, #1 \n"
1753 " STR R0, [R4, #8] \n"
1754 " LDRH R0, [R5] \n"
1755 " CMP R0, R7 \n"
1756 " BEQ loc_FF98ADB8 \n"
1757 " LDRH R0, [R5, #0x9A] \n"
1758 " CMP R0, #3 \n"
1759 " BEQ loc_FF98AE00 \n"
1760 " LDR R0, [R4, #0xC] \n"
1761 " CMP R0, #1 \n"
1762 " BLS loc_FF98ADC4 \n"
1763 " LDRH R0, [R5, #0x98] \n"
1764 " CMP R0, #0 \n"
1765 " BNE loc_FF98AE00 \n"
1766 " LDRH R0, [R5, #0x94] \n"
1767 " CMP R0, #2 \n"
1768 " BNE loc_FF98ADD0 \n"
1769 " BL sub_FF88402C \n"
1770 " LDRH R0, [R5] \n"
1771 " CMP R0, R7 \n"
1772 " BEQ loc_FF98ADB8 \n"
1773 " LDRH R0, [R5, #0x9A] \n"
1774 " CMP R0, #3 \n"
1775 " BEQ loc_FF98AE00 \n"
1776 " LDR R0, [R4, #0xC] \n"
1777 " CMP R0, #1 \n"
1778 " BLS loc_FF98ADC4 \n"
1779 " LDRH R0, [R5, #0x98] \n"
1780 " CMP R0, #0 \n"
1781 " BNE loc_FF98AE00 \n"
1782 " LDRH R0, [R5, #0x94] \n"
1783 " CMP R0, #2 \n"
1784 " BEQ loc_FF98ADFC \n"
1785 " B loc_FF98ADD0 \n"
1786 "loc_FF98ADB8:\n"
1787 " LDRH R0, [R5, #0x9A] \n"
1788 " CMP R0, #3 \n"
1789 " BEQ loc_FF98AE00 \n"
1790 "loc_FF98ADC4:\n"
1791 " LDRH R0, [R5, #0x98] \n"
1792 " CMP R0, #0 \n"
1793 " BNE loc_FF98AE00 \n"
1794 "loc_FF98ADD0:\n"
1795 " LDRH R0, [R5, #0x94] \n"
1796 " CMP R0, #1 \n"
1797 " BNE loc_FF98AE00 \n"
1798 " LDRH R0, [R5] \n"
1799 " CMP R0, R7 \n"
1800 " LDRNE R0, [R4, #0xC] \n"
1801 " CMPNE R0, #1 \n"
1802 " BLS loc_FF98AE00 \n"
1803 " LDR R0, [R4, #0x10] \n"
1804 " CMP R0, #1 \n"
1805 " BNE loc_FF98AE00 \n"
1806 "loc_FF98ADFC:\n"
1807 " BL sub_FF98C2D8 \n"
1808 "loc_FF98AE00:\n"
1809 " BL sub_FF98C2A0 \n"
1810 " BL sub_FF8839C4 \n"
1811 " LDR R0, [R5, #0x24] \n"
1812 " CMP R0, #0 \n"
1813 " BNE loc_FF98AE98 \n"
1814 " MOV R0, R4 \n"
1815 " BL sub_FFAF90A4 \n"
1816 " TST R0, #1 \n"
1817 " BNE loc_FF98AEBC \n"
1818 " MOV R0, R4 \n"
1819 " BL sub_FFAF94C4 \n"
1820 " BL sub_FF98B498 \n"
1821 " MOV R6, #1 \n"
1822 " MOV R0, #2 \n"
1823 " BL sub_FF87EFF8 \n"
1824 " LDRH R0, [R5] \n"
1825 " SUB R12, R0, #0x8200 \n"
1826 " SUBS R12, R12, #0x2D \n"
1827 " BNE loc_FF98AE88 \n"
1828 " MOV R2, #2 \n"
1829 " ADD R0, R2, #0x15C \n"
1830 " MOV R1, SP \n"
1831 " STR R6, [SP] \n"
1832 " BL sub_FF896414 \n"
1833 " TST R0, #1 \n"
1834 " MOVNE R1, #0xC3 \n"
1835 " LDRNE R0, =0xFF98AF9C \n"
1836 " BLNE sub_FF81EB78 \n"
1837 " LDRH R0, [SP] \n"
1838 " CMP R0, #1 \n"
1839 " STRHI R6, [R4, #0xE4] \n"
1840 " BHI loc_FF98AEA8 \n"
1841 " MOV R0, #0 \n"
1842 " STR R0, [R4, #0xE4] \n"
1843 "loc_FF98AE88:\n"
1844 " MOV R0, R4 \n"
1845 " BL sub_FFAF99B8 \n"
1846 " MOV R6, R0 \n"
1847 " B loc_FF98AEAC \n"
1848 "loc_FF98AE98:\n"
1849 " LDR R0, =0x7514 \n"
1850 " LDR R0, [R0] \n"
1851 " CMP R0, #0 \n"
1852 " BEQ loc_FF98AEAC \n"
1853 "loc_FF98AEA8:\n"
1854 " MOV R6, #0x1D \n"
1855 "loc_FF98AEAC:\n"
1856 " MOV R1, R6 \n"
1857 " MOV R0, R4 \n"
1858 " LDMFD SP!, {R3-R7,LR} \n"
1859 " B sub_FFAF91B0 \n"
1860 "loc_FF98AEBC:\n"
1861 " LDMFD SP!, {R3-R7,PC} \n"
1862 " STMFD SP!, {R4-R6,LR} \n"
1863 " BL sub_FF8829C4 \n"
1864 " MOV R4, R0 \n"
1865 " LDR R0, =0x3CFBC \n"
1866 " LDR R5, =0x7514 \n"
1867 " LDR R0, [R0, #0x24] \n"
1868 " MOV R6, #1 \n"
1869 " CMP R0, #0 \n"
1870 " BEQ loc_FF98AF04 \n"
1871 " MOV R0, #0xC \n"
1872 " BL sub_FF889040 \n"
1873 " TST R0, #1 \n"
1874 " STRNE R6, [R5] \n"
1875 " LDRNE R0, [R4, #8] \n"
1876 " ORRNE R0, R0, #0x40000000 \n"
1877 " STRNE R0, [R4, #8] \n"
1878 " LDMNEFD SP!, {R4-R6,PC} \n"
1879 "loc_FF98AF04:\n"
1880 " MOV R0, R4 \n"
1881 " BL sub_FF98AAC4 \n"
1882 " MOV R0, R4 \n"
1883 " BL sub_FFAF902C \n"
1884 " MOV R0, R4 \n"
1885 " BL sub_FFAF99B8 \n"
1886 );
1887 }
1888
1889
1890
1891
1892 void __attribute__((naked,noinline)) sub_FF8733D0_my( ) {
1893 asm volatile (
1894 " BL sub_FF8732A8 \n"
1895 " B sub_FF8733AC \n"
1896 " STMFD SP!, {R4-R6,LR} \n"
1897 " LDR R1, [R0, #0x58] \n"
1898 " CMP R1, #0 \n"
1899 " BEQ loc_FF87343C \n"
1900 " LDR R4, =0x2BB0 \n"
1901 " LDRH R2, [R4] \n"
1902 " ADD R1, R2, #1 \n"
1903 " BIC R1, R1, #0x10000 \n"
1904 " CMP R1, #0x14 \n"
1905 " STRH R1, [R4] \n"
1906 " MOVCS R1, #0 \n"
1907 " STRCSH R1, [R4] \n"
1908 " LDR R1, =0x3A2A8 \n"
1909 " ADD R2, R2, R2, LSL #1 \n"
1910 " ADD R5, R1, R2, LSL #5 \n"
1911 " MOV R1, R0 \n"
1912 " MOV R0, R5 \n"
1913 " MOV R2, #0x60 \n"
1914 " BL sub_FFB9F254 \n"
1915 " LDR R0, [R4, #8] \n"
1916 " MOV R1, R5 \n"
1917 " BL sub_FF83A4FC \n"
1918 " CMP R0, #0 \n"
1919 " MOVNE R0, #0 \n"
1920 " LDMNEFD SP!, {R4-R6,PC} \n"
1921 "loc_FF87343C:\n"
1922 " MOV R0, #1 \n"
1923 " LDMFD SP!, {R4-R6,PC} \n"
1924 " STMFD SP!, {R4-R8,LR} \n"
1925 " MOV R6, #0 \n"
1926 " MOV R4, R0 \n"
1927 " STR R6, [R0, #0x5C] \n"
1928 " MOV R0, R1 \n"
1929 " MOV R7, R1 \n"
1930 " BL sub_FF814100 \n"
1931 " CMP R0, #0x1F \n"
1932 " MOV R5, R0 \n"
1933 " ADDCC R0, R4, #4 \n"
1934 " MOVCC R1, R7 \n"
1935 " LDMCCFD SP!, {R4-R8,LR} \n"
1936 " MOVCC R2, #0x1F \n"
1937 " BCC sub_FF81402C \n"
1938 " ADD R0, R5, #1 \n"
1939 " BL sub_FF83AD14 \n"
1940 " MOV R2, R5 \n"
1941 " MOV R1, R7 \n"
1942 " STR R0, [R4, #0x5C] \n"
1943 " BL sub_FFB9F0EC \n"
1944 " LDR R0, [R4, #0x5C] \n"
1945 " STRB R6, [R0, R5] \n"
1946 " LDMFD SP!, {R4-R8,PC} \n"
1947 " STMFD SP!, {R3-R5,LR} \n"
1948 " MOVS R1, R0 \n"
1949 " LDR R4, =0x2BB0 \n"
1950 " MOVNE R1, #1 \n"
1951 " CMP R1, #0 \n"
1952 " STR R1, [R4, #4] \n"
1953 " BEQ sub_FF87350C \n"
1954 " MOV R1, R0 \n"
1955 " LDR R0, =0x39ED8 \n"
1956 " LDMIA R1, {R2,R3,R5,R12} \n"
1957 " STMIA R0, {R2,R3,R5,R12} \n"
1958 " LDR R0, [R4, #8] \n"
1959 " CMP R0, #0 \n"
1960 " BNE sub_FF87350C \n"
1961 " MOV R1, #0x14 \n"
1962 );
1963 }
1964
1965
1966
1967
1968 void __attribute__((naked,noinline)) exp_drv_task( ) {
1969 asm volatile (
1970 " STMFD SP!, {R4-R8,LR} \n"
1971 " SUB SP, SP, #0x20 \n"
1972 " LDR R8, =0xBB8 \n"
1973 " LDR R7, =0x4888 \n"
1974 " LDR R5, =0x59818 \n"
1975 " MOV R0, #0 \n"
1976 " ADD R6, SP, #0x10 \n"
1977 " STR R0, [SP, #0xC] \n"
1978 "loc_FF8CF1C8:\n"
1979 " LDR R0, [R7, #0x20] \n"
1980 " MOV R2, #0 \n"
1981 " ADD R1, SP, #0x1C \n"
1982 " BL sub_FF83A2F8 \n"
1983 " LDR R0, [SP, #0xC] \n"
1984 " CMP R0, #1 \n"
1985 " BNE loc_FF8CF214 \n"
1986 " LDR R0, [SP, #0x1C] \n"
1987 " LDR R0, [R0] \n"
1988 " CMP R0, #0x14 \n"
1989 " CMPNE R0, #0x15 \n"
1990 " CMPNE R0, #0x16 \n"
1991 " CMPNE R0, #0x17 \n"
1992 " BEQ loc_FF8CF378 \n"
1993 " CMP R0, #0x29 \n"
1994 " BEQ loc_FF8CF300 \n"
1995 " ADD R1, SP, #0xC \n"
1996 " MOV R0, #0 \n"
1997 " BL sub_FF8CF158 \n"
1998 "loc_FF8CF214:\n"
1999 " LDR R0, [SP, #0x1C] \n"
2000 " LDR R1, [R0] \n"
2001 " CMP R1, #0x2F \n"
2002 " BNE loc_FF8CF244 \n"
2003 " LDR R0, [SP, #0x1C] \n"
2004 " BL sub_FF8D053C \n"
2005 " LDR R0, [R7, #0x1C] \n"
2006 " MOV R1, #1 \n"
2007 " BL sub_FF88E1E4 \n"
2008 " BL sub_FF81EB30 \n"
2009 " ADD SP, SP, #0x20 \n"
2010 " LDMFD SP!, {R4-R8,PC} \n"
2011 "loc_FF8CF244:\n"
2012 " CMP R1, #0x2E \n"
2013 " BNE loc_FF8CF260 \n"
2014 " LDR R2, [R0, #0x8C]! \n"
2015 " LDR R1, [R0, #4] \n"
2016 " MOV R0, R1 \n"
2017 " BLX R2 \n"
2018 " B loc_FF8CF824 \n"
2019 "loc_FF8CF260:\n"
2020 " CMP R1, #0x27 \n"
2021 " BNE loc_FF8CF2B0 \n"
2022 " LDR R0, [R7, #0x1C] \n"
2023 " MOV R1, #0x80 \n"
2024 " BL sub_FF88E218 \n"
2025 " LDR R0, =0xFF8CAFB4 \n"
2026 " MOV R1, #0x80 \n"
2027 " BL sub_FF97D684 \n"
2028 " LDR R0, [R7, #0x1C] \n"
2029 " MOV R2, R8 \n"
2030 " MOV R1, #0x80 \n"
2031 " BL sub_FF88E124 \n"
2032 " TST R0, #1 \n"
2033 " LDRNE R1, =0x1096 \n"
2034 " BNE loc_FF8CF36C \n"
2035 "loc_FF8CF29C:\n"
2036 " LDR R1, [SP, #0x1C] \n"
2037 " LDR R0, [R1, #0x90] \n"
2038 " LDR R1, [R1, #0x8C] \n"
2039 " BLX R1 \n"
2040 " B loc_FF8CF824 \n"
2041 "loc_FF8CF2B0:\n"
2042 " CMP R1, #0x28 \n"
2043 " BNE loc_FF8CF2F8 \n"
2044 " ADD R1, SP, #0xC \n"
2045 " BL sub_FF8CF158 \n"
2046 " LDR R0, [R7, #0x1C] \n"
2047 " MOV R1, #0x100 \n"
2048 " BL sub_FF88E218 \n"
2049 " LDR R0, =0xFF8CAFC4 \n"
2050 " MOV R1, #0x100 \n"
2051 " BL sub_FF97E014 \n"
2052 " LDR R0, [R7, #0x1C] \n"
2053 " MOV R2, R8 \n"
2054 " MOV R1, #0x100 \n"
2055 " BL sub_FF88E124 \n"
2056 " TST R0, #1 \n"
2057 " BEQ loc_FF8CF29C \n"
2058 " LDR R1, =0x10A0 \n"
2059 " B loc_FF8CF36C \n"
2060 "loc_FF8CF2F8:\n"
2061 " CMP R1, #0x29 \n"
2062 " BNE loc_FF8CF310 \n"
2063 "loc_FF8CF300:\n"
2064 " LDR R0, [SP, #0x1C] \n"
2065 " ADD R1, SP, #0xC \n"
2066 " BL sub_FF8CF158 \n"
2067 " B loc_FF8CF29C \n"
2068 "loc_FF8CF310:\n"
2069 " CMP R1, #0x2C \n"
2070 " BNE loc_FF8CF328 \n"
2071 " BL sub_FF8BD5E0 \n"
2072 " BL sub_FF8BE1EC \n"
2073 " BL sub_FF8BDD58 \n"
2074 " B loc_FF8CF29C \n"
2075 "loc_FF8CF328:\n"
2076 " CMP R1, #0x2D \n"
2077 " BNE loc_FF8CF378 \n"
2078 " LDR R0, [R7, #0x1C] \n"
2079 " MOV R1, #4 \n"
2080 " BL sub_FF88E218 \n"
2081 " LDR R1, =0xFF8CAFE4 \n"
2082 " LDR R0, =0xFFFFF400 \n"
2083 " MOV R2, #4 \n"
2084 " BL sub_FF8BD05C \n"
2085 " BL sub_FF8BD2E4 \n"
2086 " LDR R0, [R7, #0x1C] \n"
2087 " MOV R2, R8 \n"
2088 " MOV R1, #4 \n"
2089 " BL sub_FF88E040 \n"
2090 " TST R0, #1 \n"
2091 " BEQ loc_FF8CF29C \n"
2092 " LDR R1, =0x10C8 \n"
2093 "loc_FF8CF36C:\n"
2094 " LDR R0, =0xFF8CB66C \n"
2095 " BL sub_FF81EB78 \n"
2096 " B loc_FF8CF29C \n"
2097 "loc_FF8CF378:\n"
2098 " LDR R0, [SP, #0x1C] \n"
2099 " MOV R4, #1 \n"
2100 " LDR R1, [R0] \n"
2101 " CMP R1, #0x12 \n"
2102 " CMPNE R1, #0x13 \n"
2103 " BNE loc_FF8CF3E8 \n"
2104 " LDR R1, [R0, #0x7C] \n"
2105 " ADD R1, R1, R1, LSL #1 \n"
2106 " ADD R1, R0, R1, LSL #2 \n"
2107 " SUB R1, R1, #8 \n"
2108 " LDMIA R1, {R2-R4} \n"
2109 " STMIA R6, {R2-R4} \n"
2110 " BL sub_FF8CD8C0 \n"
2111 " LDR R0, [SP, #0x1C] \n"
2112 " LDR R1, [R0, #0x7C] \n"
2113 " LDR R3, [R0, #0x8C] \n"
2114 " LDR R2, [R0, #0x90] \n"
2115 " ADD R0, R0, #4 \n"
2116 " BLX R3 \n"
2117 " LDR R0, [SP, #0x1C] \n"
2118 " BL sub_FF8D0950 \n"
2119 " LDR R0, [SP, #0x1C] \n"
2120 " LDR R1, [R0, #0x7C] \n"
2121 " LDR R3, [R0, #0x94] \n"
2122 " LDR R2, [R0, #0x98] \n"
2123 " ADD R0, R0, #4 \n"
2124 " BLX R3 \n"
2125 " B loc_FF8CF760 \n"
2126 "loc_FF8CF3E8:\n"
2127 " CMP R1, #0x14 \n"
2128 " CMPNE R1, #0x15 \n"
2129 " CMPNE R1, #0x16 \n"
2130 " CMPNE R1, #0x17 \n"
2131 " BNE loc_FF8CF4A0 \n"
2132 " ADD R3, SP, #0xC \n"
2133 " MOV R2, SP \n"
2134 " ADD R1, SP, #0x10 \n"
2135 " BL sub_FF8CDB2C \n"
2136 " CMP R0, #1 \n"
2137 " MOV R4, R0 \n"
2138 " CMPNE R4, #5 \n"
2139 " BNE loc_FF8CF43C \n"
2140 " LDR R0, [SP, #0x1C] \n"
2141 " MOV R2, R4 \n"
2142 " LDR R1, [R0, #0x7C]! \n"
2143 " LDR R12, [R0, #0x10]! \n"
2144 " LDR R3, [R0, #4] \n"
2145 " MOV R0, SP \n"
2146 " BLX R12 \n"
2147 " B loc_FF8CF474 \n"
2148 "loc_FF8CF43C:\n"
2149 " LDR R0, [SP, #0x1C] \n"
2150 " CMP R4, #2 \n"
2151 " LDR R3, [R0, #0x90] \n"
2152 " CMPNE R4, #6 \n"
2153 " BNE loc_FF8CF488 \n"
2154 " LDR R12, [R0, #0x8C] \n"
2155 " MOV R0, SP \n"
2156 " MOV R2, R4 \n"
2157 " MOV R1, #1 \n"
2158 " BLX R12 \n"
2159 " LDR R0, [SP, #0x1C] \n"
2160 " MOV R2, SP \n"
2161 " ADD R1, SP, #0x10 \n"
2162 " BL sub_FF8CEEA4 \n"
2163 "loc_FF8CF474:\n"
2164 " LDR R0, [SP, #0x1C] \n"
2165 " LDR R2, [SP, #0xC] \n"
2166 " MOV R1, R4 \n"
2167 " BL sub_FF8CF0F8 \n"
2168 " B loc_FF8CF760 \n"
2169 "loc_FF8CF488:\n"
2170 " LDR R1, [R0, #0x7C] \n"
2171 " LDR R12, [R0, #0x8C] \n"
2172 " ADD R0, R0, #4 \n"
2173 " MOV R2, R4 \n"
2174 " BLX R12 \n"
2175 " B loc_FF8CF760 \n"
2176 "loc_FF8CF4A0:\n"
2177 " CMP R1, #0x23 \n"
2178 " CMPNE R1, #0x24 \n"
2179 " BNE loc_FF8CF540 \n"
2180 " LDR R1, [R0, #0x7C] \n"
2181 " ADD R1, R1, R1, LSL #1 \n"
2182 " ADD R1, R0, R1, LSL #2 \n"
2183 " SUB R1, R1, #8 \n"
2184 " LDMIA R1, {R2-R4} \n"
2185 " STMIA R6, {R2-R4} \n"
2186 " BL sub_FF8CC948 \n"
2187 " LDR R0, [SP, #0x1C] \n"
2188 " LDR R1, [R0, #0x7C] \n"
2189 " LDR R3, [R0, #0x8C] \n"
2190 " LDR R2, [R0, #0x90] \n"
2191 " ADD R0, R0, #4 \n"
2192 " BLX R3 \n"
2193 " LDR R0, [SP, #0x1C] \n"
2194 " BL sub_FF8CCD94 \n"
2195 " B loc_FF8CF760 \n"
2196 "dword_FF8CF4EC DCD 0xFF8CAFE4 \n"
2197 "dword_FF8CF4F0 DCD 0x4888 \n"
2198 "dword_FF8CF4F4 DCD 0xFFFFF400 \n"
2199 "dword_FF8CF4F8 DCD 0xEDE \n"
2200 "dword_FF8CF4FC DCD 0xEEC \n"
2201 "dword_FF8CF500 DCD 0xF7E \n"
2202 "dword_FF8CF504 DCD 0xF93 \n"
2203 "dword_FF8CF508 DCD 0xFED \n"
2204 "dword_FF8CF50C DCD 0xFF2 \n"
2205 "dword_FF8CF510 DCD 0xFF7 \n"
2206 "dword_FF8CF514 DCD 0x1006 \n"
2207 "dword_FF8CF518 DCD 0x1063 \n"
2208 "dword_FF8CF51C DCD 0x1089 \n"
2209 "dword_FF8CF520 DCD 0x108C \n"
2210 "dword_FF8CF524 DCD 0xFF8CAFD4 \n"
2211 "dword_FF8CF528 DCD 0x10BD \n"
2212 "dword_FF8CF52C DCD 0x59818 \n"
2213 "dword_FF8CF530 DCD 0x1096 \n"
2214 "dword_FF8CF534 DCD 0xFF8CAFC4 \n"
2215 "dword_FF8CF538 DCD 0x10A0 \n"
2216 "dword_FF8CF53C DCD 0x10C8 \n"
2217 "loc_FF8CF540:\n"
2218 " ADD R1, R0, #4 \n"
2219 " LDMIA R1, {R2,R3,R12} \n"
2220 " STMIA R6, {R2,R3,R12} \n"
2221 " LDR R1, [R0] \n"
2222 " CMP R1, #0x26 \n"
2223 " ADDLS PC, PC, R1, LSL #2 \n"
2224 " B loc_FF8CF740 \n"
2225 " B loc_FF8CF5F8 \n"
2226 " B loc_FF8CF5F8 \n"
2227 " B loc_FF8CF600 \n"
2228 " B loc_FF8CF608 \n"
2229 " B loc_FF8CF608 \n"
2230 " B loc_FF8CF608 \n"
2231 " B loc_FF8CF5F8 \n"
2232 " B loc_FF8CF600 \n"
2233 " B loc_FF8CF608 \n"
2234 " B loc_FF8CF608 \n"
2235 " B loc_FF8CF620 \n"
2236 " B loc_FF8CF620 \n"
2237 " B loc_FF8CF72C \n"
2238 " B loc_FF8CF734 \n"
2239 " B loc_FF8CF734 \n"
2240 " B loc_FF8CF734 \n"
2241 " B loc_FF8CF734 \n"
2242 " B loc_FF8CF73C \n"
2243 " B loc_FF8CF740 \n"
2244 " B loc_FF8CF740 \n"
2245 " B loc_FF8CF740 \n"
2246 " B loc_FF8CF740 \n"
2247 " B loc_FF8CF740 \n"
2248 " B loc_FF8CF740 \n"
2249 " B loc_FF8CF610 \n"
2250 " B loc_FF8CF618 \n"
2251 " B loc_FF8CF618 \n"
2252 " B loc_FF8CF62C \n"
2253 " B loc_FF8CF62C \n"
2254 " B loc_FF8CF634 \n"
2255 " B loc_FF8CF66C \n"
2256 " B loc_FF8CF6A4 \n"
2257 " B loc_FF8CF6DC \n"
2258 " B loc_FF8CF714 \n"
2259 " B loc_FF8CF714 \n"
2260 " B loc_FF8CF740 \n"
2261 " B loc_FF8CF740 \n"
2262 " B loc_FF8CF71C \n"
2263 " B loc_FF8CF724 \n"
2264 "loc_FF8CF5F8:\n"
2265 " BL sub_FF8CB4F4 \n"
2266 " B loc_FF8CF740 \n"
2267 "loc_FF8CF600:\n"
2268 " BL sub_FF8CB790 \n"
2269 " B loc_FF8CF740 \n"
2270 "loc_FF8CF608:\n"
2271 " BL sub_FF8CB9B8 \n"
2272 " B loc_FF8CF740 \n"
2273 "loc_FF8CF610:\n"
2274 " BL sub_FF8CBC90 \n"
2275 " B loc_FF8CF740 \n"
2276 "loc_FF8CF618:\n"
2277 " BL sub_FF8CBEA8 \n"
2278 " B loc_FF8CF740 \n"
2279 "loc_FF8CF620:\n"
2280 " BL sub_FF8CC1CC \n"
2281 " MOV R4, #0 \n"
2282 " B loc_FF8CF740 \n"
2283 "loc_FF8CF62C:\n"
2284 " BL sub_FF8CC314 \n"
2285 " B loc_FF8CF740 \n"
2286 "loc_FF8CF634:\n"
2287 " LDRH R1, [R0, #4] \n"
2288 " STRH R1, [SP, #0x10] \n"
2289 " LDRH R1, [R5, #2] \n"
2290 " STRH R1, [SP, #0x12] \n"
2291 " LDRH R1, [R5, #4] \n"
2292 " STRH R1, [SP, #0x14] \n"
2293 " LDRH R1, [R5, #6] \n"
2294 " STRH R1, [SP, #0x16] \n"
2295 " LDRH R1, [R0, #0xC] \n"
2296 " STRH R1, [SP, #0x18] \n"
2297 " LDRH R1, [R5, #0xA] \n"
2298 " STRH R1, [SP, #0x1A] \n"
2299 " BL sub_FF8D0648 \n"
2300 " B loc_FF8CF740 \n"
2301 "loc_FF8CF66C:\n"
2302 " LDRH R1, [R0, #4] \n"
2303 " STRH R1, [SP, #0x10] \n"
2304 " LDRH R1, [R5, #2] \n"
2305 " STRH R1, [SP, #0x12] \n"
2306 " LDRH R1, [R5, #4] \n"
2307 " STRH R1, [SP, #0x14] \n"
2308 " LDRH R1, [R5, #6] \n"
2309 " STRH R1, [SP, #0x16] \n"
2310 " LDRH R1, [R5, #8] \n"
2311 " STRH R1, [SP, #0x18] \n"
2312 " LDRH R1, [R5, #0xA] \n"
2313 " STRH R1, [SP, #0x1A] \n"
2314 " BL sub_FF8D0750 \n"
2315 " B loc_FF8CF740 \n"
2316 "loc_FF8CF6A4:\n"
2317 " LDRH R1, [R5] \n"
2318 " STRH R1, [SP, #0x10] \n"
2319 " LDRH R1, [R0, #6] \n"
2320 " STRH R1, [SP, #0x12] \n"
2321 " LDRH R1, [R5, #4] \n"
2322 " STRH R1, [SP, #0x14] \n"
2323 " LDRH R1, [R5, #6] \n"
2324 " STRH R1, [SP, #0x16] \n"
2325 " LDRH R1, [R5, #8] \n"
2326 " STRH R1, [SP, #0x18] \n"
2327 " LDRH R1, [R5, #0xA] \n"
2328 " STRH R1, [SP, #0x1A] \n"
2329 " BL sub_FF8D0804 \n"
2330 " B loc_FF8CF740 \n"
2331 "loc_FF8CF6DC:\n"
2332 " LDRH R1, [R5] \n"
2333 " STRH R1, [SP, #0x10] \n"
2334 " LDRH R1, [R5, #2] \n"
2335 " STRH R1, [SP, #0x12] \n"
2336 " LDRH R1, [R5, #4] \n"
2337 " STRH R1, [SP, #0x14] \n"
2338 " LDRH R1, [R5, #6] \n"
2339 " STRH R1, [SP, #0x16] \n"
2340 " LDRH R1, [R0, #0xC] \n"
2341 " STRH R1, [SP, #0x18] \n"
2342 " LDRH R1, [R5, #0xA] \n"
2343 " STRH R1, [SP, #0x1A] \n"
2344 " BL sub_FF8D08AC \n"
2345 " B loc_FF8CF740 \n"
2346 "loc_FF8CF714:\n"
2347 " BL sub_FF8CC720 \n"
2348 " B loc_FF8CF740 \n"
2349 "loc_FF8CF71C:\n"
2350 " BL sub_FF8CCE98 \n"
2351 " B loc_FF8CF740 \n"
2352 "loc_FF8CF724:\n"
2353 " BL sub_FF8CD134 \n"
2354 " B loc_FF8CF740 \n"
2355 "loc_FF8CF72C:\n"
2356 " BL sub_FF8CD314 \n"
2357 " B loc_FF8CF740 \n"
2358 "loc_FF8CF734:\n"
2359 " BL sub_FF8CD548 \n"
2360 " B loc_FF8CF740 \n"
2361 "loc_FF8CF73C:\n"
2362 " BL sub_FF8CD6B8 \n"
2363 "loc_FF8CF740:\n"
2364 " LDR R0, [SP, #0x1C] \n"
2365 " LDR R1, [R0, #0x7C] \n"
2366 " LDR R3, [R0, #0x8C] \n"
2367 " LDR R2, [R0, #0x90] \n"
2368 " ADD R0, R0, #4 \n"
2369 " BLX R3 \n"
2370 " CMP R4, #1 \n"
2371 " BNE loc_FF8CF7A8 \n"
2372 "loc_FF8CF760:\n"
2373 " LDR R0, [SP, #0x1C] \n"
2374 " MOV R2, #0xC \n"
2375 " LDR R1, [R0, #0x7C] \n"
2376 " ADD R1, R1, R1, LSL #1 \n"
2377 " ADD R0, R0, R1, LSL #2 \n"
2378 " SUB R4, R0, #8 \n"
2379 " LDR R0, =0x59818 \n"
2380 " ADD R1, SP, #0x10 \n"
2381 " BL sub_FFB9F0EC \n"
2382 " LDR R0, =0x59824 \n"
2383 " MOV R2, #0xC \n"
2384 " ADD R1, SP, #0x10 \n"
2385 " BL sub_FFB9F0EC \n"
2386 " LDR R0, =0x59830 \n"
2387 " MOV R2, #0xC \n"
2388 " MOV R1, R4 \n"
2389 " BL sub_FFB9F0EC \n"
2390 " B loc_FF8CF824 \n"
2391 "loc_FF8CF7A8:\n"
2392 " LDR R0, [SP, #0x1C] \n"
2393 " MOV R3, #1 \n"
2394 " LDR R0, [R0] \n"
2395 " CMP R0, #0xB \n"
2396 " BNE loc_FF8CF7F0 \n"
2397 " MOV R2, #0 \n"
2398 " STRD R2, [SP] \n"
2399 " MOV R2, #1 \n"
2400 " MOV R1, #1 \n"
2401 " MOV R0, #0 \n"
2402 " BL sub_FF8CB2D4 \n"
2403 " MOV R3, #1 \n"
2404 " MOV R2, #0 \n"
2405 " STRD R2, [SP] \n"
2406 " MOV R2, #1 \n"
2407 " MOV R1, #1 \n"
2408 " MOV R0, #0 \n"
2409 " B loc_FF8CF820 \n"
2410 "loc_FF8CF7F0:\n"
2411 " MOV R2, #1 \n"
2412 " STRD R2, [SP] \n"
2413 " MOV R3, #1 \n"
2414 " MOV R1, #1 \n"
2415 " MOV R0, #1 \n"
2416 " BL sub_FF8CB2D4 \n"
2417 " MOV R3, #1 \n"
2418 " MOV R2, #1 \n"
2419 " MOV R1, #1 \n"
2420 " MOV R0, #1 \n"
2421 " STR R3, [SP] \n"
2422 " STR R3, [SP, #4] \n"
2423 "loc_FF8CF820:\n"
2424 " BL sub_FF8CB43C \n"
2425 "loc_FF8CF824:\n"
2426 " LDR R0, [SP, #0x1C] \n"
2427 " BL sub_FF8D053C \n"
2428 " B loc_FF8CF1C8 \n"
2429 " STMFD SP!, {R0-R11,LR} \n"
2430 " LDR R8, =0x4888 \n"
2431 " SUB SP, SP, #4 \n"
2432 " LDR R0, [R8, #0x18] \n"
2433 " LDR R6, [SP, #0x40] \n"
2434 " CMP R0, #1 \n"
2435 " LDRNE R1, =0x11EA \n"
2436 " LDRNE R0, =0xFF8CB66C \n"
2437 " LDR R10, [SP, #0x44] \n"
2438 " LDR R7, [SP, #0x48] \n"
2439 " LDR R11, [SP, #0x4C] \n"
2440 " LDR R9, [SP, #0x3C] \n"
2441 );
2442 }
2443
2444
2445
2446
2447 void __attribute__((naked,noinline)) sub_FF8CC1CC_my( ) {
2448 asm volatile (
2449 " STMFD SP!, {R4-R8,LR} \n"
2450 " LDR R7, =0x4888 \n"
2451 " MOV R4, R0 \n"
2452 " LDR R0, [R7, #0x1C] \n"
2453 " MOV R1, #0x3E \n"
2454 " BL sub_FF88E218 \n"
2455 " LDRSH R0, [R4, #4] \n"
2456 " MOV R2, #0 \n"
2457 " MOV R1, #0 \n"
2458 " BL sub_FF8CB038 \n"
2459 " MOV R5, R0 \n"
2460 " LDRSH R0, [R4, #6] \n"
2461 " BL sub_FF8CB148 \n"
2462 " LDRSH R0, [R4, #8] \n"
2463 " BL sub_FF8CB1A0 \n"
2464 " LDRSH R0, [R4, #0xA] \n"
2465 " BL sub_FF8CB1F8 \n"
2466 " LDRSH R0, [R4, #0xC] \n"
2467 " MOV R1, #0 \n"
2468 " BL sub_FF8CB250 \n"
2469 " MOV R6, R0 \n"
2470 " LDRSH R0, [R4, #0xE] \n"
2471 " BL sub_FF8D05E8 \n"
2472 " LDR R0, [R4] \n"
2473 " LDR R8, =0x59830 \n"
2474 " CMP R0, #0xB \n"
2475 " MOVEQ R5, #0 \n"
2476 " MOVEQ R6, #0 \n"
2477 " BEQ loc_FF8CC268 \n"
2478 " CMP R5, #1 \n"
2479 " BNE loc_FF8CC268 \n"
2480 " LDRSH R0, [R4, #4] \n"
2481 " LDR R1, =0xFF8CAFA4 \n"
2482 " MOV R2, #2 \n"
2483 " BL sub_FF97D9D0 \n"
2484 " STRH R0, [R4, #4] \n"
2485 " MOV R0, #0 \n"
2486 " STR R0, [R7, #0x28] \n"
2487 " B loc_FF8CC270 \n"
2488 "loc_FF8CC268:\n"
2489 " LDRH R0, [R8] \n"
2490 " STRH R0, [R4, #4] \n"
2491 "loc_FF8CC270:\n"
2492 " CMP R6, #1 \n"
2493 " LDRNEH R0, [R8, #8] \n"
2494 " BNE loc_FF8CC28C \n"
2495 " LDRSH R0, [R4, #0xC] \n"
2496 " LDR R1, =0xFF8CB028 \n"
2497 " MOV R2, #0x20 \n"
2498 " BL sub_FF8D0604 \n"
2499 "loc_FF8CC28C:\n"
2500 " STRH R0, [R4, #0xC] \n"
2501 " LDRSH R0, [R4, #6] \n"
2502 " BL sub_FF8BD350 \n"
2503 " LDRSH R0, [R4, #8] \n"
2504 " MOV R1, #1 \n"
2505 " BL sub_FF8BDAA0 \n"
2506 " MOV R1, #0 \n"
2507 " ADD R0, R4, #8 \n"
2508 " BL sub_FF8BDB28 \n"
2509 " LDRSH R0, [R4, #0xE] \n"
2510 " BL sub_FF8C5F98 \n"
2511 " LDR R4, =0xBB8 \n"
2512 " CMP R5, #1 \n"
2513 " BNE loc_FF8CC2E4 \n"
2514 " LDR R0, [R7, #0x1C] \n"
2515 " MOV R2, R4 \n"
2516 " MOV R1, #2 \n"
2517 " BL sub_FF88E124 \n"
2518 " TST R0, #1 \n"
2519 " LDRNE R1, =0x61E \n"
2520 " LDRNE R0, =0xFF8CB66C \n"
2521 " BLNE sub_FF81EB78 \n"
2522 "loc_FF8CC2E4:\n"
2523 " CMP R6, #1 \n"
2524 " LDMNEFD SP!, {R4-R8,PC} \n"
2525 " LDR R0, [R7, #0x1C] \n"
2526 " MOV R2, R4 \n"
2527 " MOV R1, #0x20 \n"
2528 " BL sub_FF88E124 \n"
2529 " TST R0, #1 \n"
2530 " LDRNE R1, =0x623 \n"
2531 " LDRNE R0, =0xFF8CB66C \n"
2532 " LDMNEFD SP!, {R4-R8,LR} \n"
2533 " BNE sub_FF81EB78 \n"
2534 " LDMFD SP!, {R4-R8,PC} \n"
2535 " STMFD SP!, {R1-R11,LR} \n"
2536 " LDR R7, =0x4888 \n"
2537 " MOV R4, R0 \n"
2538 " LDR R0, [R7, #0x1C] \n"
2539 " MOV R1, #0x3E \n"
2540 " BL sub_FF88E218 \n"
2541 );
2542 }
2543
2544
2545
2546
2547 void __attribute__((naked,noinline)) sub_FF8BD350_my( ) {
2548 asm volatile (
2549 " STMFD SP!, {R4-R6,LR} \n"
2550 " LDR R5, =0x456C \n"
2551 " MOV R4, R0 \n"
2552 " LDR R0, [R5, #4] \n"
2553 " CMP R0, #1 \n"
2554 " LDRNE R1, =0x146 \n"
2555 " LDRNE R0, =0xFF8BD154 \n"
2556 " BLNE sub_FF81EB78 \n"
2557 " CMN R4, #0xC00 \n"
2558 " LDREQSH R4, [R5, #2] \n"
2559 " CMN R4, #0xC00 \n"
2560 " MOVEQ R1, #0x14C \n"
2561 " LDREQ R0, =0xFF8BD154 \n"
2562 " STRH R4, [R5, #2] \n"
2563 " BLEQ sub_FF81EB78 \n"
2564 " MOV R0, R4 \n"
2565 " BL sub_FFA50D94 \n"
2566 " MOV R4, R0 \n"
2567 " BL sub_FF90988C \n"
2568 " MOV R0, R4 \n"
2569 " BL sub_FF9162BC \n"
2570 " TST R0, #1 \n"
2571 " LDRNE R1, =0x151 \n"
2572 " LDMNEFD SP!, {R4-R6,LR} \n"
2573 " LDRNE R0, =0xFF8BD154 \n"
2574 " BNE sub_FF81EB78 \n"
2575 " LDMFD SP!, {R4-R6,PC} \n"
2576 );
2577 }