This source file includes following definitions.
- capt_seq_task
- sub_FF98ADD4_my
- sub_FFAE37CC_my
- sub_FFAE3304_my
- sub_FF98AB68_my
- exp_drv_task
- sub_FF8C9AD0_my
- sub_FF8BA3A4_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6
7
8
9
10 static long *nrflag = (long*)0xDDA8;
11
12 #include "../../../generic/capt_seq.c"
13
14
15 void __attribute__((naked,noinline)) capt_seq_task() {
16
17 asm volatile (
18 "STMFD SP!, {R3-R7,LR}\n"
19 "LDR R7, =0x3474\n"
20 "LDR R4, =0x3C5E4\n"
21 "MOV R6, #0\n"
22 "loc_FF883640:\n"
23 "LDR R0, [R7,#4]\n"
24 "MOV R2, #0\n"
25 "MOV R1, SP\n"
26 "BL sub_FF83AE20\n"
27 "TST R0, #1\n"
28 "BEQ loc_FF88366C\n"
29 "LDR R1, =0x43F\n"
30 "LDR R0, =0xFF8831C8\n"
31 "BL sub_FF81EB78\n"
32 "BL sub_FF81EB30\n"
33 "LDMFD SP!, {R3-R7,PC}\n"
34
35 "loc_FF88366C:\n"
36 "LDR R0, [SP]\n"
37 "LDR R1, [R0]\n"
38 "CMP R1, #0x1F\n"
39 "ADDLS PC, PC, R1,LSL#2\n"
40 "B loc_FF883868\n"
41
42 "loc_FF883680:\n"
43 "B loc_FF883700\n"
44 "loc_FF883684:\n"
45 "B loc_FF883718\n"
46 "loc_FF883688:\n"
47 "B loc_FF883730\n"
48 "loc_FF88368C:\n"
49 "B loc_FF883744\n"
50 "loc_FF883690:\n"
51 "B loc_FF88373C\n"
52 "loc_FF883694:\n"
53 "B loc_FF883750\n"
54 "loc_FF883698:\n"
55 "B loc_FF883758\n"
56 "loc_FF88369C:\n"
57 "B loc_FF883760\n"
58 "loc_FF8836A0:\n"
59 "B loc_FF88376C\n"
60 "loc_FF8836A4:\n"
61 "B loc_FF883794\n"
62 "loc_FF8836A8:\n"
63 "B loc_FF883778\n"
64 "loc_FF8836AC:\n"
65 "B loc_FF883784\n"
66 "loc_FF8836B0:\n"
67 "B loc_FF88378C\n"
68 "loc_FF8836B4:\n"
69 "B loc_FF88379C\n"
70 "loc_FF8836B8:\n"
71 "B loc_FF8837A4\n"
72 "loc_FF8836BC:\n"
73 "B loc_FF8837AC\n"
74 "loc_FF8836C0:\n"
75 "B loc_FF8837B4\n"
76 "loc_FF8836C4:\n"
77 "B loc_FF8837BC\n"
78 "loc_FF8836C8:\n"
79 "B loc_FF8837C8\n"
80 "loc_FF8836CC:\n"
81 "B loc_FF8837D0\n"
82 "loc_FF8836D0:\n"
83 "B loc_FF8837D8\n"
84 "loc_FF8836D4:\n"
85 "B loc_FF8837E0\n"
86 "loc_FF8836D8:\n"
87 "B loc_FF8837E8\n"
88 "loc_FF8836DC:\n"
89 "B loc_FF8837F4\n"
90 "loc_FF8836E0:\n"
91 "B loc_FF8837FC\n"
92 "loc_FF8836E4:\n"
93 "B loc_FF883804\n"
94 "loc_FF8836E8:\n"
95 "B loc_FF88380C\n"
96 "loc_FF8836EC:\n"
97 "B loc_FF883814\n"
98 "loc_FF8836F0:\n"
99 "B loc_FF88381C\n"
100 "loc_FF8836F4:\n"
101 "B loc_FF883824\n"
102 "loc_FF8836F8:\n"
103 "B loc_FF883830\n"
104 "loc_FF8836FC:\n"
105 "B loc_FF883874\n"
106 "loc_FF883700:\n"
107 "BL shooting_expo_param_override\n"
108 "BL sub_FF883DB4\n"
109 "BL shooting_expo_param_override\n"
110 "BL sub_FF880F50\n"
111
112
113
114
115
116 "MOV R0, #0\n"
117 "STR R0, [R4,#0x24]\n"
118
119 "LDR R0, [R4,#0x24]\n"
120 "CMP R0, #0\n"
121
122
123
124
125
126
127
128 "BLNE sub_FF98ADD4_my\n"
129
130
131
132 "B loc_FF883874\n"
133 "loc_FF883718:\n"
134 "LDRH R1, [R4]\n"
135 "SUB R12, R1, #0x8200\n"
136 "SUBS R12, R12, #0x2E\n"
137 "LDRNE R0, [R0,#0xC]\n"
138
139 "BLNE sub_FF98AB68_my\n"
140
141
142
143
144 "B loc_FF883874\n"
145 "loc_FF883730:\n"
146 "MOV R0, #1\n"
147 "BL sub_FF884070\n"
148 "B loc_FF883874\n"
149 "loc_FF88373C:\n"
150 "BL sub_FF883A54\n"
151 "B loc_FF883748\n"
152 "loc_FF883744:\n"
153 "BL sub_FF883D94\n"
154 "loc_FF883748:\n"
155 "STR R6, [R4,#0x24]\n"
156 "B loc_FF883874\n"
157 "loc_FF883750:\n"
158 "BL sub_FF883D9C\n"
159 "B loc_FF883874\n"
160
161 "loc_FF883758:\n"
162 "BL sub_FF883F74\n"
163 "B loc_FF883770\n"
164 "loc_FF883760:\n"
165 "LDR R0, [R0,#0xC]\n"
166 "BL sub_FF98AEE8\n"
167 "B loc_FF883874\n"
168 "loc_FF88376C:\n"
169 "BL sub_FF883FE0\n"
170 "loc_FF883770:\n"
171 "BL sub_FF880F50\n"
172 "B loc_FF883874\n"
173 "loc_FF883778:\n"
174 "LDR R0, [R4,#0x54]\n"
175 "BL sub_FF8846DC\n"
176 "B loc_FF883874\n"
177 "loc_FF883784:\n"
178 "BL sub_FF884A78\n"
179 "B loc_FF883874\n"
180 "loc_FF88378C:\n"
181 "BL sub_FF884ADC\n"
182 "B loc_FF883874\n"
183 "loc_FF883794:\n"
184 "BL sub_FF883D94\n"
185 "B loc_FF883874\n"
186 "loc_FF88379C:\n"
187 "BL sub_FF98A268\n"
188 "B loc_FF883874\n"
189 "loc_FF8837A4:\n"
190 "BL sub_FF98A474\n"
191 "B loc_FF883874\n"
192 "loc_FF8837AC:\n"
193 "BL sub_FF98A518\n"
194 "B loc_FF883874\n"
195 "loc_FF8837B4:\n"
196 "BL sub_FF98A5E8\n"
197 "B loc_FF883874\n"
198 "loc_FF8837BC:\n"
199 "MOV R0, #0\n"
200 "BL sub_FF98A848\n"
201 "B loc_FF883874\n"
202 "loc_FF8837C8:\n"
203 "BL sub_FF98A9A4\n"
204 "B loc_FF883874\n"
205 "loc_FF8837D0:\n"
206 "BL sub_FF98AA48\n"
207 "B loc_FF883874\n"
208 "loc_FF8837D8:\n"
209 "BL sub_FF98AB28\n"
210 "B loc_FF883874\n"
211 "loc_FF8837E0:\n"
212 "BL sub_FF884258\n"
213 "B loc_FF883874\n"
214 "loc_FF8837E8:\n"
215 "BL sub_FF884304\n"
216 "BL sub_FF98BBA8\n"
217 "B loc_FF883874\n"
218 "loc_FF8837F4:\n"
219 "BL sub_FF98A6B4\n"
220 "B loc_FF883874\n"
221 "loc_FF8837FC:\n"
222 "BL sub_FF98A71C\n"
223 "B loc_FF883874\n"
224 "loc_FF883804:\n"
225 "BL sub_FF98BC78\n"
226 "B loc_FF883874\n"
227 "loc_FF88380C:\n"
228 "BL sub_FF838C50\n"
229 "B loc_FF883874\n"
230 "loc_FF883814:\n"
231 "BL sub_FF886E18\n"
232 "B loc_FF883874\n"
233 "loc_FF88381C:\n"
234 "BL sub_FF886EA0\n"
235 "B loc_FF883874\n"
236 "loc_FF883824:\n"
237 "BL sub_FF886EFC\n"
238 "BL sub_FF886EBC\n"
239 "B loc_FF883874\n"
240 "loc_FF883830:\n"
241 "MOV R0, #1\n"
242 "BL sub_FF98B6E4\n"
243 "MOV R0, #1\n"
244 "BL sub_FF98B814\n"
245 "LDRH R0, [R4,#0x94]\n"
246 "CMP R0, #4\n"
247 "LDRNEH R0, [R4]\n"
248 "SUBNE R12, R0, #0x8200\n"
249 "SUBNES R12, R12, #0x2A\n"
250 "BNE loc_FF883874\n"
251 "BL sub_FF886EA0\n"
252 "BL sub_FF88740C\n"
253 "BL sub_FF88731C\n"
254 "B loc_FF883874\n"
255 "loc_FF883868:\n"
256 "LDR R1, =0x591\n"
257 "LDR R0, =0xFF8831C8\n"
258 "BL sub_FF81EB78\n"
259 "loc_FF883874:\n"
260 "LDR R0, [SP]\n"
261 "LDR R1, [R0,#4]\n"
262 "LDR R0, [R7]\n"
263 "BL sub_FF88DBB8\n"
264 "LDR R5, [SP]\n"
265 "LDR R0, [R5,#8]\n"
266 "CMP R0, #0\n"
267 "LDREQ R1, =0x115\n"
268 "LDREQ R0, =0xFF8831C8\n"
269 "BLEQ sub_FF81EB78\n"
270 "STR R6, [R5,#8]\n"
271 "B loc_FF883640\n"
272
273
274
275
276
277
278
279
280
281
282 );
283 }
284
285
286
287
288
289 void __attribute__((naked,noinline)) sub_FF98ADD4_my() {
290
291 asm volatile (
292 "STMFD SP!, {R4-R6,LR}\n"
293 "BL sub_FF882E98\n"
294 "MOV R4, R0\n"
295 "LDR R0, =0x3C5E4\n"
296 "LDR R5, =0x7C94\n"
297 "LDR R0, [R0,#0x24]\n"
298 "MOV R6, #1\n"
299 "CMP R0, #0\n"
300 "BEQ loc_FF98AE18\n"
301 "MOV R0, #0xC\n"
302 "BL sub_FF888998\n"
303 "TST R0, #1\n"
304 "STRNE R6, [R5]\n"
305 "LDRNE R0, [R4,#8]\n"
306 "ORRNE R0, R0, #0x40000000\n"
307 "STRNE R0, [R4,#8]\n"
308 "LDMNEFD SP!, {R4-R6,PC}\n"
309 "loc_FF98AE18:\n"
310 "MOV R0, R4\n"
311 "BL sub_FFAE2DF8\n"
312 "MOV R0, R4\n"
313
314 "BL sub_FFAE37CC_my\n"
315
316
317
318 "TST R0, #1\n"
319 "TST R0, #1\n"
320 "STRNE R6, [R5]\n"
321 "LDMFD SP!, {R4-R6,PC}\n"
322 );
323 }
324
325
326 void __attribute__((naked,noinline)) sub_FFAE37CC_my() {
327 asm volatile (
328 "STMFD SP!, {R2-R8,LR}\n"
329 "MOV R6, R0\n"
330 "BL sub_FF98B9D8\n"
331
332 "MVN R1, #0 \n"
333 "BL sub_FF88DBEC\n"
334 "LDR R0, =0xFFAE3034\n"
335 "MOV R1, R6\n"
336 "BL sub_FF8C25D0\n"
337 "MOV R0, R6\n"
338 "BL sub_FFAE2EFC\n"
339 "MOV R0, R6\n"
340
341 "BL sub_FFAE3304_my\n"
342 "B sub_FFAE38EC\n"
343 );
344 }
345
346
347
348 void __attribute__((naked,noinline)) sub_FFAE3304_my() {
349
350 asm volatile (
351 "STMFD SP!, {R0-R8,LR}\n"
352 "MOV R4, R0\n"
353 "MOV R0, #0\n"
354 "MOV R7, #1\n"
355 "LDR R5, =0x3C6B4\n"
356 "STR R7, [SP,#0x8]\n"
357 "STR R0, [SP,#0xC]\n"
358 "LDR R6, =0x3C5E4\n"
359 "LDR R3, [R5]\n"
360 "LDRSH R2, [R5,#0xC]\n"
361 "LDRSH R1, [R5,#0xE]\n"
362 "LDR R0, [R6,#0x88]\n"
363 "BL sub_FF945014\n"
364 "BL sub_FF868328\n"
365 "LDR R2, =0xDDA8\n"
366 "ADD R3, SP, #0xC\n"
367 "STRH R0, [R4,#0xAC]\n"
368 "STRD R2, [SP]\n"
369 "MOV R1, R0\n"
370 "LDRH R0, [R6,#0x5C]\n"
371 "LDRSH R2, [R5,#0xC]\n"
372 "ADD R3, SP, #0x8\n"
373 "BL sub_FF98D61C\n"
374
375
376 "BL capt_seq_hook_set_nr\n"
377 "B sub_FFAE3450\n"
378 );
379 }
380
381
382 void __attribute__((naked,noinline)) sub_FF98AB68_my() {
383
384 asm volatile (
385 "STMFD SP!, {R3-R7,LR}\n"
386 "LDR R5, =0x3C5E4\n"
387 "MOV R4, R0\n"
388 "LDR R0, [R5,#0x24]\n"
389 "LDR R6, =0x820C\n"
390 "CMP R0, #0\n"
391 "MOV R7, #0\n"
392 "BNE loc_FF98AC14\n"
393 "LDR R0, [R5,#0xB8]\n"
394 "CMP R0, #1\n"
395 "BNE loc_FF98ABF0\n"
396 "LDRH R0, [R5]\n"
397 "CMP R0, R6\n"
398 "LDRNEH R0, [R5,#0x92]\n"
399 "CMPNE R0, #3\n"
400 "LDRNE R0, [R4,#0xC]\n"
401 "CMPNE R0, #1\n"
402 "BLS loc_FF98ABC4\n"
403 "BL sub_FF833020\n"
404 "TST R0, #1\n"
405 "BEQ loc_FF98AC14\n"
406 "BL sub_FF8889F8\n"
407 "B loc_FF98AC00\n"
408 "loc_FF98ABC4:\n"
409 "MOV R0, #0xC\n"
410 "BL sub_FF888998\n"
411 "TST R0, #1\n"
412 "BEQ loc_FF98AC14\n"
413 "MOV R2, R4\n"
414 "MOV R1, #1\n"
415 "MOV R0, #1\n"
416 "BL sub_FF881914\n"
417 "BL sub_FF98B56C\n"
418 "BL sub_FF88163C\n"
419 "LDMFD SP!, {R3-R7,PC}\n"
420 "loc_FF98ABF0:\n"
421 "MOV R0, #0xC\n"
422 "BL sub_FF888998\n"
423 "TST R0, #1\n"
424 "BEQ loc_FF98AC14\n"
425 "loc_FF98AC00:\n"
426 "MOV R2, R4\n"
427 "MOV R1, #1\n"
428 "MOV R0, #1\n"
429 "BL sub_FF881914\n"
430 "LDMFD SP!, {R3-R7,PC}\n"
431 "loc_FF98AC14:\n"
432 "LDR R0, [R4,#8]\n"
433 "ORR R0, R0, #1\n"
434 "STR R0, [R4,#8]\n"
435 "LDRH R0, [R5]\n"
436 "CMP R0, R6\n"
437 "BEQ loc_FF98ACA0\n"
438 "LDRH R0, [R5,#0x92]\n"
439 "CMP R0, #3\n"
440 "BEQ loc_FF98ACE8\n"
441 "LDR R0, [R4,#0xC]\n"
442 "CMP R0, #1\n"
443 "BLS loc_FF98ACAC\n"
444 "LDRH R0, [R5,#0x90]\n"
445 "CMP R0, #0\n"
446 "BNE loc_FF98ACE8\n"
447 "LDRH R0, [R5,#0x8C]\n"
448 "CMP R0, #2\n"
449 "BNE loc_FF98ACB8\n"
450 "BL sub_FF8843C8\n"
451 "LDRH R0, [R5]\n"
452 "CMP R0, R6\n"
453 "BEQ loc_FF98ACA0\n"
454 "LDRH R0, [R5,#0x92]\n"
455 "CMP R0, #3\n"
456 "BEQ loc_FF98ACE8\n"
457 "LDR R0, [R4,#0xC]\n"
458 "CMP R0, #1\n"
459 "BLS loc_FF98ACAC\n"
460 "LDRH R0, [R5,#0x90]\n"
461 "CMP R0, #0\n"
462 "BNE loc_FF98ACE8\n"
463 "LDRH R0, [R5,#0x8C]\n"
464 "CMP R0, #2\n"
465 "BEQ loc_FF98ACE4\n"
466 "B loc_FF98ACB8\n"
467 "loc_FF98ACA0:\n"
468 "LDRH R0, [R5,#0x92]\n"
469 "CMP R0, #3\n"
470 "BEQ loc_FF98ACE8\n"
471 "loc_FF98ACAC:\n"
472 "LDRH R0, [R5,#0x90]\n"
473 "CMP R0, #0\n"
474 "BNE loc_FF98ACE8\n"
475 "loc_FF98ACB8:\n"
476 "LDRH R0, [R5,#0x8C]\n"
477 "CMP R0, #1\n"
478 "BNE loc_FF98ACE8\n"
479 "LDRH R0, [R5]\n"
480 "CMP R0, R6\n"
481 "LDRNE R0, [R4,#0xC]\n"
482 "CMPNE R0, #1\n"
483 "BLS loc_FF98ACE8\n"
484 "LDR R0, [R4,#0x10]\n"
485 "CMP R0, #1\n"
486 "BNE loc_FF98ACE8\n"
487 "loc_FF98ACE4:\n"
488 "BL sub_FF98BCB0\n"
489 "loc_FF98ACE8:\n"
490 "BL sub_FF98BC78\n"
491 "BL sub_FF883DA4\n"
492 "LDR R0, [R5,#0x24]\n"
493 "CMP R0, #0\n"
494 "BNE loc_FF98ADB4\n"
495 "MOV R0, R4\n"
496 "BL sub_FFAE2E70\n"
497 "TST R0, #1\n"
498 "LDMNEFD SP!, {R3-R7,PC}\n"
499 "MOV R0, R4\n"
500 "BL sub_FFAE330C\n"
501 "BL sub_FF98B4AC\n"
502 "LDR R0, [R5,#0xB8]\n"
503 "CMP R0, #1\n"
504 "BNE loc_FF98AD40\n"
505 "LDRH R0, [R5]\n"
506 "CMP R0, R6\n"
507 "LDRNEH R0, [R5,#0x92]\n"
508 "CMPNE R0, #3\n"
509 "LDRNE R0, [R4,#0xC]\n"
510 "CMPNE R0, #1\n"
511 "BHI loc_FF98AD48\n"
512 "loc_FF98AD40:\n"
513 "MOV R0, #2\n"
514 "BL sub_FF87F4D0\n"
515 "loc_FF98AD48:\n"
516 "LDRH R0, [R5]\n"
517 "SUB R12, R0, #0x8200\n"
518 "SUBS R12, R12, #0x2D\n"
519 "BNE loc_FF98ADA4\n"
520 "MOV R5, #1\n"
521 "MOV R2, #2\n"
522 "ADD R0, R2, #0x15C\n"
523 "MOV R1, SP\n"
524 "STR R5, [SP]\n"
525 "BL sub_FF895DE8\n"
526 "TST R0, #1\n"
527 "MOVNE R1, #0xC3\n"
528 "LDRNE R0, =0xFF98AFAC \n"
529 "BLNE sub_FF81EB78\n"
530 "LDRH R0, [SP]\n"
531 "CMP R0, #1\n"
532 "BLS loc_FF98AD9C\n"
533 "MOV R0, R4\n"
534 "STR R5, [R4,#0xE4]\n"
535 "BL sub_FFAE3DCC\n"
536 "B loc_FF98ADAC\n"
537 "loc_FF98AD9C:\n"
538 "MOV R0, #0\n"
539 "STR R0, [R4,#0xE4]\n"
540 "loc_FF98ADA4:\n"
541 "MOV R0, R4\n"
542
543 "BL sub_FFAE37CC_my\n"
544
545 "BL capt_seq_hook_raw_here\n"
546 "loc_FF98ADAC:\n"
547 "MOV R7, R0\n"
548 "B loc_FF98ADC4\n"
549 "loc_FF98ADB4:\n"
550 "LDR R0, =0x7C94\n"
551 "LDR R0, [R0]\n"
552 "CMP R0, #0\n"
553 "MOVNE R7, #0x1D\n"
554 "loc_FF98ADC4:\n"
555 "MOV R1, R7\n"
556 "MOV R0, R4\n"
557 "BL sub_FFAE2FC4\n"
558 "LDMFD SP!, {R3-R7,PC}\n"
559 );
560 }
561
562
563
564
565 void __attribute__((naked,noinline)) exp_drv_task() {
566 asm volatile(
567 " STMFD SP!, {R4-R8,LR}\n"
568 " SUB SP, SP, #0x20\n"
569 " LDR R8, =0xBB8\n"
570 " LDR R7, =0x4C6C\n"
571 " LDR R5, =0x58054\n"
572 " MOV R0, #0\n"
573 " ADD R6, SP, #0x10\n"
574 " STR R0, [SP,#0xC]\n"
575 "loc_FF8CCAA8:\n"
576 " LDR R0, [R7,#0x20]\n"
577 " MOV R2, #0\n"
578 " ADD R1, SP, #0x1C\n"
579 " BL sub_FF83AE20\n"
580 " LDR R0, [SP,#0xC]\n"
581 " CMP R0, #1\n"
582 " BNE loc_FF8CCAF4\n"
583 " LDR R0, [SP,#0x1C]\n"
584 " LDR R0, [R0]\n"
585 " CMP R0, #0x14\n"
586 " CMPNE R0, #0x15\n"
587 " CMPNE R0, #0x16\n"
588 " CMPNE R0, #0x17\n"
589 " BEQ loc_FF8CCC58\n"
590 " CMP R0, #0x29\n"
591 " BEQ loc_FF8CCBE0\n"
592 " ADD R1, SP, #0xC\n"
593 " MOV R0, #0\n"
594 " BL sub_FF8CCA64\n"
595 "loc_FF8CCAF4:\n"
596 " LDR R0, [SP,#0x1C]\n"
597 " LDR R1, [R0]\n"
598 " CMP R1, #0x2F\n"
599 " BNE loc_FF8CCB24\n"
600 " LDR R0, [SP,#0x1C]\n"
601 " BL sub_FF8CDE64\n"
602 " LDR R0, [R7,#0x1C]\n"
603 " MOV R1, #1\n"
604 " BL sub_FF88DBB8\n"
605 " BL sub_FF81EB30\n"
606 " ADD SP, SP, #0x20\n"
607 " LDMFD SP!, {R4-R8,PC}\n"
608 "loc_FF8CCB24:\n"
609 " CMP R1, #0x2E\n"
610 " BNE loc_FF8CCB40\n"
611 " LDR R2, [R0,#0x8C]!\n"
612 " LDR R1, [R0,#4]\n"
613 " MOV R0, R1\n"
614 " BLX R2\n"
615 " B loc_FF8CD120\n"
616 "loc_FF8CCB40:\n"
617 " CMP R1, #0x27\n"
618 " BNE loc_FF8CCB90\n"
619 " LDR R0, [R7,#0x1C]\n"
620 " MOV R1, #0x80\n"
621 " BL sub_FF88DBEC\n"
622 " LDR R0, =0xFF8C8874\n"
623 " MOV R1, #0x80\n"
624 " BL sub_FF974480\n"
625 " LDR R0, [R7,#0x1C]\n"
626 " MOV R2, R8\n"
627 " MOV R1, #0x80\n"
628 " BL sub_FF88DAF8\n"
629 " TST R0, #1\n"
630 " LDRNE R1, =0x1089\n"
631 " BNE loc_FF8CCC4C\n"
632 "loc_FF8CCB7C:\n"
633 " LDR R1, [SP,#0x1C]\n"
634 " LDR R0, [R1,#0x90]\n"
635 " LDR R1, [R1,#0x8C]\n"
636 " BLX R1\n"
637 " B loc_FF8CD120\n"
638 "loc_FF8CCB90:\n"
639 " CMP R1, #0x28\n"
640 " BNE loc_FF8CCBD8\n"
641 " ADD R1, SP, #0xC\n"
642 " BL sub_FF8CCA64\n"
643 " LDR R0, [R7,#0x1C]\n"
644 " MOV R1, #0x100\n"
645 " BL sub_FF88DBEC\n"
646 " LDR R0, =0xFF8C8884\n"
647 " MOV R1, #0x100\n"
648 " BL sub_FF974E0C\n"
649 " LDR R0, [R7,#0x1C]\n"
650 " MOV R2, R8\n"
651 " MOV R1, #0x100\n"
652 " BL sub_FF88DAF8\n"
653 " TST R0, #1\n"
654 " BEQ loc_FF8CCB7C\n"
655 " LDR R1, =0x1093\n"
656 " B loc_FF8CCC4C\n"
657 "loc_FF8CCBD8:\n"
658 " CMP R1, #0x29\n"
659 " BNE loc_FF8CCBF0\n"
660 "loc_FF8CCBE0:\n"
661 " LDR R0, [SP,#0x1C]\n"
662 " ADD R1, SP, #0xC\n"
663 " BL sub_FF8CCA64\n"
664 " B loc_FF8CCB7C\n"
665 "loc_FF8CCBF0:\n"
666 " CMP R1, #0x2C\n"
667 " BNE loc_FF8CCC08\n"
668 " BL sub_FF8BA660\n"
669 " BL sub_FF8BB27C\n"
670 " BL sub_FF8BADE8\n"
671 " B loc_FF8CCB7C\n"
672 "loc_FF8CCC08:\n"
673 " CMP R1, #0x2D\n"
674 " BNE loc_FF8CCC58\n"
675 " LDR R0, [R7,#0x1C]\n"
676 " MOV R1, #4\n"
677 " BL sub_FF88DBEC\n"
678 " LDR R1, =0xFF8C88A4\n"
679 " LDR R0, =0xFFFFF400\n"
680 " MOV R2, #4\n"
681 " BL sub_FF8BA0DC\n"
682 " BL sub_FF8BA364\n"
683 " LDR R0, [R7,#0x1C]\n"
684 " MOV R2, R8\n"
685 " MOV R1, #4\n"
686 " BL sub_FF88DA14\n"
687 " TST R0, #1\n"
688 " BEQ loc_FF8CCB7C\n"
689 " LDR R1, =0x10BB\n"
690 "loc_FF8CCC4C:\n"
691 " LDR R0, =0xFF8C8F74\n"
692 " BL sub_FF81EB78\n"
693 " B loc_FF8CCB7C\n"
694 "loc_FF8CCC58:\n"
695 " LDR R0, [SP,#0x1C]\n"
696 " MOV R4, #1\n"
697 " LDR R1, [R0]\n"
698 " CMP R1, #0x12\n"
699 " CMPNE R1, #0x13\n"
700 " BNE loc_FF8CCCC8\n"
701 " LDR R1, [R0,#0x7C]\n"
702 " ADD R1, R1, R1,LSL#1\n"
703 " ADD R1, R0, R1,LSL#2\n"
704 " SUB R1, R1, #8\n"
705 " LDMIA R1, {R2-R4}\n"
706 " STMIA R6, {R2-R4}\n"
707 " BL sub_FF8CB1EC\n"
708 " LDR R0, [SP,#0x1C]\n"
709 " LDR R1, [R0,#0x7C]\n"
710 " LDR R3, [R0,#0x8C]\n"
711 " LDR R2, [R0,#0x90]\n"
712 " ADD R0, R0, #4\n"
713 " BLX R3\n"
714 " LDR R0, [SP,#0x1C]\n"
715 " BL sub_FF8CE26C\n"
716 " LDR R0, [SP,#0x1C]\n"
717 " LDR R1, [R0,#0x7C]\n"
718 " LDR R3, [R0,#0x94]\n"
719 " LDR R2, [R0,#0x98]\n"
720 " ADD R0, R0, #4\n"
721 " BLX R3\n"
722 " B loc_FF8CD05C\n"
723 "loc_FF8CCCC8:\n"
724 " CMP R1, #0x14\n"
725 " CMPNE R1, #0x15\n"
726 " CMPNE R1, #0x16\n"
727 " CMPNE R1, #0x17\n"
728 " BNE loc_FF8CCD80\n"
729 " ADD R3, SP, #0xC\n"
730 " MOV R2, SP\n"
731 " ADD R1, SP, #0x10\n"
732 " BL sub_FF8CB458\n"
733 " CMP R0, #1\n"
734 " MOV R4, R0\n"
735 " CMPNE R4, #5\n"
736 " BNE loc_FF8CCD1C\n"
737 " LDR R0, [SP,#0x1C]\n"
738 " MOV R2, R4\n"
739 " LDR R1, [R0,#0x7C]!\n"
740 " LDR R12, [R0,#0x10]!\n"
741 " LDR R3, [R0,#4]\n"
742 " MOV R0, SP\n"
743 " BLX R12\n"
744 " B loc_FF8CCD54\n"
745 "loc_FF8CCD1C:\n"
746 " LDR R0, [SP,#0x1C]\n"
747 " CMP R4, #2\n"
748 " LDR R3, [R0,#0x90]\n"
749 " CMPNE R4, #6\n"
750 " BNE loc_FF8CCD68\n"
751 " LDR R12, [R0,#0x8C]\n"
752 " MOV R0, SP\n"
753 " MOV R2, R4\n"
754 " MOV R1, #1\n"
755 " BLX R12\n"
756 " LDR R0, [SP,#0x1C]\n"
757 " MOV R2, SP\n"
758 " ADD R1, SP, #0x10\n"
759 " BL sub_FF8CC7B0\n"
760 "loc_FF8CCD54:\n"
761 " LDR R0, [SP,#0x1C]\n"
762 " LDR R2, [SP,#0xC]\n"
763 " MOV R1, R4\n"
764 " BL sub_FF8CCA04\n"
765 " B loc_FF8CD05C\n"
766 "loc_FF8CCD68:\n"
767 " LDR R1, [R0,#0x7C]\n"
768 " LDR R12, [R0,#0x8C]\n"
769 " ADD R0, R0, #4\n"
770 " MOV R2, R4\n"
771 " BLX R12\n"
772 " B loc_FF8CD05C\n"
773 "loc_FF8CCD80:\n"
774 " CMP R1, #0x23\n"
775 " CMPNE R1, #0x24\n"
776 " BNE loc_FF8CCDCC\n"
777 " LDR R1, [R0,#0x7C]\n"
778 " ADD R1, R1, R1,LSL#1\n"
779 " ADD R1, R0, R1,LSL#2\n"
780 " SUB R1, R1, #8\n"
781 " LDMIA R1, {R2-R4}\n"
782 " STMIA R6, {R2-R4}\n"
783 " BL sub_FF8CA260\n"
784 " LDR R0, [SP,#0x1C]\n"
785 " LDR R1, [R0,#0x7C]\n"
786 " LDR R3, [R0,#0x8C]\n"
787 " LDR R2, [R0,#0x90]\n"
788 " ADD R0, R0, #4\n"
789 " BLX R3\n"
790 " LDR R0, [SP,#0x1C]\n"
791 " BL sub_FF8CA6AC\n"
792 " B loc_FF8CD05C\n"
793 "loc_FF8CCDCC:\n"
794 " ADD R1, R0, #4\n"
795 " LDMIA R1, {R2,R3,R12}\n"
796 " STMIA R6, {R2,R3,R12}\n"
797 " LDR R1, [R0]\n"
798 " CMP R1, #0x26\n"
799 " ADDLS PC, PC, R1,LSL#2\n"
800
801 " B loc_FF8CD03C\n"
802 "loc_FF8CCDE8:\n"
803 " B loc_FF8CCE84\n"
804 "loc_FF8CCDEC:\n"
805 " B loc_FF8CCE84\n"
806 "loc_FF8CCDF0:\n"
807 " B loc_FF8CCE8C\n"
808 "loc_FF8CCDF4:\n"
809 " B loc_FF8CCE94\n"
810 "loc_FF8CCDF8:\n"
811 " B loc_FF8CCE94\n"
812 "loc_FF8CCDFC:\n"
813 " B loc_FF8CCE94\n"
814 "loc_FF8CCE00:\n"
815 " B loc_FF8CCE84\n"
816 "loc_FF8CCE04:\n"
817 " B loc_FF8CCE8C\n"
818 "loc_FF8CCE08:\n"
819 " B loc_FF8CCE94\n"
820 "loc_FF8CCE0C:\n"
821 " B loc_FF8CCE94\n"
822 "loc_FF8CCE10:\n"
823 " B loc_FF8CCEAC\n"
824 "loc_FF8CCE14:\n"
825 " B loc_FF8CCEAC\n"
826 "loc_FF8CCE18:\n"
827 " B loc_FF8CD028\n"
828 "loc_FF8CCE1C:\n"
829 " B loc_FF8CD030\n"
830 "loc_FF8CCE20:\n"
831 " B loc_FF8CD030\n"
832 "loc_FF8CCE24:\n"
833 " B loc_FF8CD030\n"
834 "loc_FF8CCE28:\n"
835 " B loc_FF8CD030\n"
836 "loc_FF8CCE2C:\n"
837 " B loc_FF8CD038\n"
838 "loc_FF8CCE30:\n"
839 " B loc_FF8CD03C\n"
840 "loc_FF8CCE34:\n"
841 " B loc_FF8CD03C\n"
842 "loc_FF8CCE38:\n"
843 " B loc_FF8CD03C\n"
844 "loc_FF8CCE3C:\n"
845 " B loc_FF8CD03C\n"
846 "loc_FF8CCE40:\n"
847 " B loc_FF8CD03C\n"
848 "loc_FF8CCE44:\n"
849 " B loc_FF8CD03C\n"
850 "loc_FF8CCE48:\n"
851 " B loc_FF8CCE9C\n"
852 "loc_FF8CCE4C:\n"
853 " B loc_FF8CCEA4\n"
854 "loc_FF8CCE50:\n"
855 " B loc_FF8CCEA4\n"
856 "loc_FF8CCE54:\n"
857 " B loc_FF8CCEB8\n"
858 "loc_FF8CCE58:\n"
859 " B loc_FF8CCEB8\n"
860 "loc_FF8CCE5C:\n"
861 " B loc_FF8CCEC0\n"
862 "loc_FF8CCE60:\n"
863 " B loc_FF8CCEF8\n"
864 "loc_FF8CCE64:\n"
865 " B loc_FF8CCFA0\n"
866 "loc_FF8CCE68:\n"
867 " B loc_FF8CCFD8\n"
868 "loc_FF8CCE6C:\n"
869 " B loc_FF8CD010\n"
870 "loc_FF8CCE70:\n"
871 " B loc_FF8CD010\n"
872 "loc_FF8CCE74:\n"
873 " B loc_FF8CD03C\n"
874 "loc_FF8CCE78:\n"
875 " B loc_FF8CD03C\n"
876 "loc_FF8CCE7C:\n"
877 " B loc_FF8CD018\n"
878 "loc_FF8CCE80:\n"
879 " B loc_FF8CD020\n"
880 "loc_FF8CCE84:\n"
881 " BL sub_FF8C8DB4\n"
882 " B loc_FF8CD03C\n"
883 "loc_FF8CCE8C:\n"
884 " BL sub_FF8C90A4\n"
885 " B loc_FF8CD03C\n"
886 "loc_FF8CCE94:\n"
887 " BL sub_FF8C930C\n"
888 " B loc_FF8CD03C\n"
889 "loc_FF8CCE9C:\n"
890 " BL sub_FF8C95C0\n"
891 " B loc_FF8CD03C\n"
892 "loc_FF8CCEA4:\n"
893 " BL sub_FF8C97D8\n"
894 " B loc_FF8CD03C\n"
895 "loc_FF8CCEAC:\n"
896
897 " BL sub_FF8C9AD0_my\n"
898
899 " MOV R4, #0\n"
900 " B loc_FF8CD03C\n"
901 "loc_FF8CCEB8:\n"
902 " BL sub_FF8C9C44\n"
903 " B loc_FF8CD03C\n"
904 "loc_FF8CCEC0:\n"
905 " LDRH R1, [R0,#4]\n"
906 " STRH R1, [SP,#0x10]\n"
907 " LDRH R1, [R5,#2]\n"
908 " STRH R1, [SP,#0x12]\n"
909 " LDRH R1, [R5,#4]\n"
910 " STRH R1, [SP,#0x14]\n"
911 " LDRH R1, [R5,#6]\n"
912 " STRH R1, [SP,#0x16]\n"
913 " LDRH R1, [R0,#0xC]\n"
914 " STRH R1, [SP,#0x18]\n"
915 " LDRH R1, [R5,#0xA]\n"
916 " STRH R1, [SP,#0x1A]\n"
917 " BL sub_FF8CDF64\n"
918 " B loc_FF8CD03C\n"
919 "loc_FF8CCEF8:\n"
920 " LDRH R1, [R0,#4]\n"
921 " STRH R1, [SP,#0x10]\n"
922 " LDRH R1, [R5,#2]\n"
923 " STRH R1, [SP,#0x12]\n"
924 " LDRH R1, [R5,#4]\n"
925 " STRH R1, [SP,#0x14]\n"
926 " LDRH R1, [R5,#6]\n"
927 " STRH R1, [SP,#0x16]\n"
928 " LDRH R1, [R0,#8]\n"
929 " STRH R1, [SP,#0x18]\n"
930 " LDRH R1, [R5,#0xA]\n"
931 " STRH R1, [SP,#0x1A]\n"
932 " BL sub_FF8CE06C\n"
933 " B loc_FF8CD03C\n"
934
935
936 "loc_FF8CCFA0:\n"
937 " LDRH R1, [R5]\n"
938 " STRH R1, [SP,#0x10]\n"
939 " LDRH R1, [R5,#6]\n"
940 " STRH R1, [SP,#0x12]\n"
941 " LDRH R1, [R5,#4]\n"
942 " STRH R1, [SP,#0x14]\n"
943 " LDRH R1, [R5,#6]\n"
944 " STRH R1, [SP,#0x16]\n"
945 " LDRH R1, [R0,#8]\n"
946 " STRH R1, [SP,#0x18]\n"
947 " LDRH R1, [R5,#0xA]\n"
948 " STRH R1, [SP,#0x1A]\n"
949 " BL sub_FF8CE120\n"
950 " B loc_FF8CD03C\n"
951 "loc_FF8CCFD8:\n"
952 " LDRH R1, [R5]\n"
953 " STRH R1, [SP,#0x10]\n"
954 " LDRH R1, [R5,#2]\n"
955 " STRH R1, [SP,#0x12]\n"
956 " LDRH R1, [R5,#4]\n"
957 " STRH R1, [SP,#0x14]\n"
958 " LDRH R1, [R5,#6]\n"
959 " STRH R1, [SP,#0x16]\n"
960 " LDRH R1, [R0,#0xC]\n"
961 " STRH R1, [SP,#0x18]\n"
962 " LDRH R1, [R5,#0xA]\n"
963 " STRH R1, [SP,#0x1A]\n"
964 " BL sub_FF8CE1C8\n"
965 " B loc_FF8CD03C\n"
966
967 "loc_FF8CD010:\n"
968 " BL sub_FF8CA038\n"
969 " B loc_FF8CD03C\n"
970 "loc_FF8CD018:\n"
971 " BL sub_FF8CA7B0\n"
972 " B loc_FF8CD03C\n"
973 "loc_FF8CD020:\n"
974 " BL sub_FF8CAA4C\n"
975 " B loc_FF8CD03C\n"
976 "loc_FF8CD028:\n"
977 " BL sub_FF8CAC2C\n"
978 " B loc_FF8CD03C\n"
979 "loc_FF8CD030:\n"
980 " BL sub_FF8CADE8\n"
981 " B loc_FF8CD03C\n"
982 "loc_FF8CD038:\n"
983 " BL sub_FF8CAFE4\n"
984 "loc_FF8CD03C:\n"
985 " LDR R0, [SP,#0x1C]\n"
986 " LDR R1, [R0,#0x7C]\n"
987 " LDR R3, [R0,#0x8C]\n"
988 " LDR R2, [R0,#0x90]\n"
989 " ADD R0, R0, #4\n"
990 " BLX R3\n"
991 " CMP R4, #1\n"
992 " BNE loc_FF8CD0A4\n"
993 "loc_FF8CD05C:\n"
994 " LDR R0, [SP,#0x1C]\n"
995 " MOV R2, #0xC\n"
996 " LDR R1, [R0,#0x7C]\n"
997 " ADD R1, R1, R1,LSL#1\n"
998 " ADD R0, R0, R1,LSL#2\n"
999 " SUB R4, R0, #8\n"
1000 " LDR R0, =0x58054\n"
1001 " ADD R1, SP, #0x10\n"
1002 " BL sub_FFB873EC\n"
1003 " LDR R0, =0x58060\n"
1004 " MOV R2, #0xC\n"
1005 " ADD R1, SP, #0x10\n"
1006 " BL sub_FFB873EC\n"
1007 " LDR R0, =0x5806C\n"
1008 " MOV R2, #0xC\n"
1009 " MOV R1, R4\n"
1010 " BL sub_FFB873EC\n"
1011 " B loc_FF8CD120\n"
1012 "loc_FF8CD0A4:\n"
1013 " LDR R0, [SP,#0x1C]\n"
1014 " MOV R3, #1\n"
1015 " LDR R0, [R0]\n"
1016 " CMP R0, #0xB\n"
1017 " BNE loc_FF8CD0EC\n"
1018 " MOV R2, #0\n"
1019 " STRD R2, [SP]\n"
1020 " MOV R2, #1\n"
1021 " MOV R1, #1\n"
1022 " MOV R0, #0\n"
1023 " BL sub_FF8C8B94\n"
1024 " MOV R3, #1\n"
1025 " MOV R2, #0\n"
1026 " STRD R2, [SP]\n"
1027 " MOV R2, #1\n"
1028 " MOV R1, #1\n"
1029 " MOV R0, #0\n"
1030 " B loc_FF8CD11C\n"
1031 "loc_FF8CD0EC:\n"
1032 " MOV R2, #1\n"
1033 " STRD R2, [SP]\n"
1034 " MOV R3, #1\n"
1035 " MOV R1, #1\n"
1036 " MOV R0, #1\n"
1037 " BL sub_FF8C8B94\n"
1038 " MOV R3, #1\n"
1039 " MOV R2, #1\n"
1040 " MOV R1, #1\n"
1041 " MOV R0, #1\n"
1042 " STR R3, [SP]\n"
1043 " STR R3, [SP,#4]\n"
1044 "loc_FF8CD11C:\n"
1045 " BL sub_FF8C8CFC\n"
1046 "loc_FF8CD120:\n"
1047 " LDR R0, [SP,#0x1C]\n"
1048 " BL sub_FF8CDE64\n"
1049 " B loc_FF8CCAA8\n"
1050 );
1051 }
1052
1053 void __attribute__((naked,noinline)) sub_FF8C9AD0_my() {
1054
1055 asm volatile (
1056 " STMFD SP!, {R4-R8,LR}\n"
1057 " LDR R7, =0x4C6C\n"
1058 " MOV R4, R0\n"
1059 " LDR R0, [R7,#0x1C]\n"
1060 " MOV R1, #0x3E\n"
1061 " BL sub_FF88DBEC\n"
1062 " LDRSH R0, [R4,#4]\n"
1063 " MOV R2, #0\n"
1064 " MOV R1, #0\n"
1065 " BL sub_FF8C88F8\n"
1066 " MOV R5, R0\n"
1067 " LDRSH R0, [R4,#6]\n"
1068 " BL sub_FF8C8A08\n"
1069 " LDRSH R0, [R4,#8]\n"
1070 " BL sub_FF8C8A60\n"
1071 " LDRSH R0, [R4,#0xA]\n"
1072 " BL sub_FF8C8AB8\n"
1073 " LDRSH R0, [R4,#0xC]\n"
1074 " MOV R1, #0\n"
1075 " BL sub_FF8C8B10\n"
1076 " MOV R6, R0\n"
1077 " LDRSH R0, [R4,#0xE]\n"
1078 " BL sub_FF8CDF04\n"
1079 " LDR R0, [R4]\n"
1080 " LDR R8, =0x5806C\n"
1081 " CMP R0, #0xB\n"
1082 " MOVEQ R5, #0\n"
1083 " MOVEQ R6, #0\n"
1084 " BEQ loc_FF8C9B6C\n"
1085 " CMP R5, #1\n"
1086 " BNE loc_FF8C9B6C\n"
1087 " LDRSH R0, [R4,#4]\n"
1088 " LDR R1, =0xFF8C8864\n"
1089 " MOV R2, #2\n"
1090 " BL sub_FF9747C8\n"
1091 " STRH R0, [R4,#4]\n"
1092 " MOV R0, #0\n"
1093 " STR R0, [R7,#0x28]\n"
1094 " B loc_FF8C9B74\n"
1095 "loc_FF8C9B6C:\n"
1096 " LDRH R0, [R8]\n"
1097 " STRH R0, [R4,#4]\n"
1098 "loc_FF8C9B74:\n"
1099 " CMP R6, #1\n"
1100 " LDRNEH R0, [R8,#8]\n"
1101 " BNE loc_FF8C9B90\n"
1102 " LDRSH R0, [R4,#0xC]\n"
1103 " LDR R1, =0xFF8C88E8\n"
1104 " MOV R2, #0x20\n"
1105 " BL sub_FF8CDEF4\n"
1106 "loc_FF8C9B90:\n"
1107 " STRH R0, [R4,#0xC]\n"
1108 " LDRSH R0, [R4,#6]\n"
1109
1110 " BL sub_FF8BA3A4_my\n"
1111
1112 "B sub_FF8C9BC8\n"
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150 );
1151 }
1152
1153
1154
1155 void __attribute__((naked,noinline)) sub_FF8BA3A4_my() {
1156
1157 asm volatile (
1158 " STMFD SP!, {R4-R6,LR}\n"
1159 " LDR R5, =0x4934\n"
1160 " MOV R4, R0\n"
1161 " LDR R0, [R5,#4]\n"
1162 " CMP R0, #1\n"
1163 " LDRNE R1, =0x146\n"
1164 " LDRNE R0, =0xFF8BA1D4\n"
1165 " BLNE sub_FF81EB78\n"
1166 " CMN R4, #0xC00\n"
1167 " LDREQSH R4, [R5,#2]\n"
1168 " CMN R4, #0xC00\n"
1169 " MOVEQ R1, #0x14C\n"
1170 " LDREQ R0, =0xFF8BA1D4\n"
1171 " STRH R4, [R5,#2]\n"
1172 " BLEQ sub_FF81EB78\n"
1173 " MOV R0, R4\n"
1174 " BL apex2us\n"
1175 " MOV R4, R0\n"
1176 " BL sub_FF9066C8\n"
1177 " MOV R0, R4\n"
1178 " BL sub_FF910B44\n"
1179 " TST R0, #1\n"
1180 " LDRNE R1, =0x151\n"
1181 " LDMNEFD SP!, {R4-R6,LR}\n"
1182 " LDRNE R0, =0xFF8BA1D4\n"
1183 " BNE sub_FF81EB78\n"
1184 " LDMFD SP!, {R4-R6,PC}\n"
1185
1186 );
1187 }