This source file includes following definitions.
- capt_seq_task
- sub_FF9646A0_my
- exp_drv_task
- sub_FF8AC74C_my
- sub_FF89C418_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6 static long *nrflag = (long*)(0x8868+0x00);
7 #define NR_AUTO (0)
8
9 #define PAUSE_FOR_FILE_COUNTER 300
10 #include "../../../generic/capt_seq.c"
11
12
13
14 void __attribute__((naked,noinline)) capt_seq_task() {
15 asm volatile (
16 "STMFD SP!, {R3-R9,LR} \n"
17 "LDR R4, =0x36D7C \n"
18 "LDR R7, =0x2B64 \n"
19 "MOV R6, #0 \n"
20 "loc_FF870DC0:\n"
21 "LDR R0, [R7, #4] \n"
22 "MOV R2, #0 \n"
23 "MOV R1, SP \n"
24 "BL sub_003F7218 \n"
25 "TST R0, #1 \n"
26 "BEQ loc_FF870DEC \n"
27 "LDR R1, =0x493 \n"
28 "LDR R0, =0xFF87091C \n"
29 "BL _DebugAssert \n"
30 "BL _ExitTask \n"
31 "LDMFD SP!, {R3-R9,PC} \n"
32 "loc_FF870DEC:\n"
33 "LDR R0, [SP] \n"
34 "LDR R1, [R0] \n"
35 "CMP R1, #0x20 \n"
36 "ADDCC PC, PC, R1, LSL #2 \n"
37 "B loc_FF871048 \n"
38 "B loc_FF870E80 \n"
39 "B loc_FF870E98 \n"
40 "B loc_FF870EFC \n"
41 "B loc_FF870F10 \n"
42 "B loc_FF870F08 \n"
43 "B loc_FF870F1C \n"
44 "B loc_FF870F24 \n"
45 "B loc_FF870F2C \n"
46 "B loc_FF870F48 \n"
47 "B loc_FF870F74 \n"
48 "B loc_FF870F54 \n"
49 "B loc_FF870F60 \n"
50 "B loc_FF870F68 \n"
51 "B loc_FF870F7C \n"
52 "B loc_FF870F84 \n"
53 "B loc_FF870F8C \n"
54 "B loc_FF870F94 \n"
55 "B loc_FF870F9C \n"
56 "B loc_FF870FA8 \n"
57 "B loc_FF870FB0 \n"
58 "B loc_FF870FB8 \n"
59 "B loc_FF870FC0 \n"
60 "B loc_FF870FC8 \n"
61 "B loc_FF870FD4 \n"
62 "B loc_FF870FDC \n"
63 "B loc_FF870FE4 \n"
64 "B loc_FF870FEC \n"
65 "B loc_FF870FF4 \n"
66 "B loc_FF871000 \n"
67 "B loc_FF871008 \n"
68 "B loc_FF871014 \n"
69 "B loc_FF871054 \n"
70 "loc_FF870E80:\n"
71 " BL shooting_expo_iso_override \n"
72 "BL sub_FF8715C8 \n"
73 " BL shooting_expo_param_override \n"
74 "BL sub_FF86EBBC \n"
75
76
77
78 " MOV R0, #0 \n"
79 " STR R0, [R4,#0x28] \n"
80 "B loc_FF871054 \n"
81 "loc_FF870E98:\n"
82 "LDR R5, [R0, #0x10] \n"
83 "LDR R0, [R4, #0x28] \n"
84 "CMP R0, #0 \n"
85 "BNE loc_FF870ED4 \n"
86 "BL sub_FF87249C \n"
87 "MOV R1, R5 \n"
88 "BL sub_FF8724F4 \n"
89 "LDR R0, =0x10F \n"
90 "MOV R2, #4 \n"
91 "ADD R1, R5, #0x24 \n"
92 "BL _SetPropertyCase \n"
93 "MOV R2, #4 \n"
94 "ADD R1, R5, #0x28 \n"
95 "MOV R0, #0x2C \n"
96 "BL _SetPropertyCase \n"
97 "loc_FF870ED4:\n"
98 "MOV R0, R5 \n"
99
100 "BL sub_FF9646A0_my \n"
101 "BL capt_seq_hook_raw_here \n"
102 "MOV R8, R0 \n"
103 "MOV R2, R5 \n"
104 "MOV R1, #1 \n"
105 "BL sub_FF86F06C \n"
106 "TST R8, #1 \n"
107 "MOVEQ R0, R5 \n"
108 "BLEQ sub_FF96401C \n"
109 "B loc_FF871054 \n"
110 "loc_FF870EFC:\n"
111 "MOV R0, #1 \n"
112 "BL sub_FF871898 \n"
113 "B loc_FF871054 \n"
114 "loc_FF870F08:\n"
115 "BL sub_FF87121C \n"
116 "B loc_FF870F14 \n"
117 "loc_FF870F10:\n"
118 "BL sub_FF8715A8 \n"
119 "loc_FF870F14:\n"
120 "STR R6, [R4, #0x28] \n"
121 "B loc_FF871054 \n"
122 "loc_FF870F1C:\n"
123 "BL sub_FF8715B0 \n"
124 "B loc_FF871054 \n"
125 "loc_FF870F24:\n"
126 "BL sub_FF871780 \n"
127 "B loc_FF870F4C \n"
128 "loc_FF870F2C:\n"
129 "LDR R5, [R0, #0x10] \n"
130 "MOV R0, R5 \n"
131 "BL sub_FF9647D4 \n"
132 "MOV R2, R5 \n"
133 "MOV R1, #9 \n"
134 "BL sub_FF86F06C \n"
135 "B loc_FF871054 \n"
136 "loc_FF870F48:\n"
137 "BL sub_FF871800 \n"
138 "loc_FF870F4C:\n"
139 "BL sub_FF86EBBC \n"
140 "B loc_FF871054 \n"
141 "loc_FF870F54:\n"
142 "LDR R0, [R4, #0x58] \n"
143 "BL sub_FF871C88 \n"
144 "B loc_FF871054 \n"
145 "loc_FF870F60:\n"
146 "BL sub_FF872038 \n"
147 "B loc_FF871054 \n"
148 "loc_FF870F68:\n"
149 "MOV R0, #0 \n"
150 "BL sub_FF87209C \n"
151 "B loc_FF871054 \n"
152 "loc_FF870F74:\n"
153 "BL sub_FF8715A8 \n"
154 "B loc_FF871054 \n"
155 "loc_FF870F7C:\n"
156 "BL sub_FF9633C8 \n"
157 "B loc_FF871054 \n"
158 "loc_FF870F84:\n"
159 "BL sub_FF963628 \n"
160 "B loc_FF871054 \n"
161 "loc_FF870F8C:\n"
162 "BL sub_FF9636E0 \n"
163 "B loc_FF871054 \n"
164 "loc_FF870F94:\n"
165 "BL sub_FF9637B4 \n"
166 "B loc_FF871054 \n"
167 "loc_FF870F9C:\n"
168 "MOV R0, #0 \n"
169 "BL sub_FF963A14 \n"
170 "B loc_FF871054 \n"
171 "loc_FF870FA8:\n"
172 "BL sub_FF963B84 \n"
173 "B loc_FF871054 \n"
174 "loc_FF870FB0:\n"
175 "BL sub_FF963C18 \n"
176 "B loc_FF871054 \n"
177 "loc_FF870FB8:\n"
178 "BL sub_FF963CD4 \n"
179 "B loc_FF871054 \n"
180 "loc_FF870FC0:\n"
181 "BL sub_FF871A0C \n"
182 "B loc_FF871054 \n"
183 "loc_FF870FC8:\n"
184 "BL sub_FF871A90 \n"
185 "BL sub_FF832298 \n"
186 "B loc_FF871054 \n"
187 "loc_FF870FD4:\n"
188 "BL sub_FF963884 \n"
189 "B loc_FF871054 \n"
190 "loc_FF870FDC:\n"
191 "BL sub_FF9638C4 \n"
192 "B loc_FF871054 \n"
193 "loc_FF870FE4:\n"
194 "BL sub_FF873944 \n"
195 "B loc_FF871054 \n"
196 "loc_FF870FEC:\n"
197 "BL sub_FF8739B8 \n"
198 "B loc_FF871054 \n"
199 "loc_FF870FF4:\n"
200 "LDR R0, [R0, #0xC] \n"
201 "BL sub_FF963DFC \n"
202 "B loc_FF871054 \n"
203 "loc_FF871000:\n"
204 "BL sub_FF963E6C \n"
205 "B loc_FF871054 \n"
206 "loc_FF871008:\n"
207 "BL sub_FF873A20 \n"
208 "BL sub_FF8739D8 \n"
209 "B loc_FF871054 \n"
210 "loc_FF871014:\n"
211 "MOV R0, #1 \n"
212 "BL sub_FF964ED4 \n"
213 "MOV R0, #1 \n"
214 "BL sub_FF964FFC \n"
215 "LDRH R0, [R4, #0x9C] \n"
216 "CMP R0, #4 \n"
217 "LDRNEH R0, [R4] \n"
218 "SUBNE R1, R0, #0x8200 \n"
219 "SUBNES R1, R1, #0x2E \n"
220 "BNE loc_FF871054 \n"
221 "BL sub_FF8739B8 \n"
222 "BL sub_FF873E7C \n"
223 "B loc_FF871054 \n"
224 "loc_FF871048:\n"
225 "LDR R1, =0x5F4 \n"
226 "LDR R0, =0xFF87091C \n"
227 "BL _DebugAssert \n"
228 "loc_FF871054:\n"
229 "LDR R0, [SP] \n"
230 "LDR R1, [R0, #4] \n"
231 "LDR R0, [R7] \n"
232 "BL sub_003FAC6C \n"
233 "LDR R5, [SP] \n"
234 "LDR R0, [R5, #8] \n"
235 "CMP R0, #0 \n"
236 "LDREQ R1, =0x117 \n"
237 "LDREQ R0, =0xFF87091C \n"
238 "BLEQ _DebugAssert \n"
239 "STR R6, [R5, #8] \n"
240 "B loc_FF870DC0 \n"
241 );
242 }
243
244
245
246
247 void __attribute__((naked,noinline)) sub_FF9646A0_my() {
248 asm volatile (
249 "STMFD SP!, {R4-R6,LR} \n"
250 "LDR R5, =0x36D7C \n"
251 "MOV R6, R0 \n"
252 "LDR R0, [R5, #0x28] \n"
253 "MOV R4, #0 \n"
254 "CMP R0, #0 \n"
255 "BNE loc_FF9646D0 \n"
256 "MOV R0, #0xC \n"
257 "BL sub_FF87551C \n"
258 "TST R0, #1 \n"
259 "MOVNE R0, #1 \n"
260 "LDMNEFD SP!, {R4-R6,PC} \n"
261 "loc_FF9646D0:\n"
262 "BL sub_FF8715B8 \n"
263 "LDR R0, [R5, #0x28] \n"
264 "CMP R0, #0 \n"
265 "BNE loc_FF964720 \n"
266 "MOV R0, R6 \n"
267 "BL sub_FF963F5C \n"
268 "TST R0, #1 \n"
269 "LDMNEFD SP!, {R4-R6,PC} \n"
270 "MOV R0, R6 \n"
271 "BL sub_FF9642F0 \n"
272 "BL sub_FF964CB4 \n"
273
274 "BL wait_until_remote_button_is_released\n"
275 "BL capt_seq_hook_set_nr\n"
276
277 "MOV R0, #2 \n"
278 "BL sub_FF876C34 \n"
279 "LDR R0, [R5, #0x8C] \n"
280 "TST R0, #0x10 \n"
281 "BNE loc_FF964730 \n"
282 "MOV R0, R6 \n"
283 "BL sub_FFA7217C \n"
284
285 "MOV R4, R0 \n"
286 "B loc_FF964734 \n"
287 "loc_FF964720:\n"
288 "LDR R0, =0x684C \n"
289 "LDR R0, [R0] \n"
290 "CMP R0, #0 \n"
291 "BEQ loc_FF964734 \n"
292 "loc_FF964730:\n"
293 "MOV R4, #0x1D \n"
294 "loc_FF964734:\n"
295 "MOV R0, R4 \n"
296 "LDMFD SP!, {R4-R6,PC} \n"
297 );
298 }
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457 void __attribute__((naked,noinline)) exp_drv_task() {
458 asm volatile (
459 "STMFD SP!, {R4-R9,LR} \n"
460 "SUB SP, SP, #0x2C \n"
461 "LDR R6, =0x3DDC \n"
462 "LDR R7, =0xBB8 \n"
463 "LDR R4, =0x53D2C \n"
464 "MOV R0, #0 \n"
465 "ADD R5, SP, #0x1C \n"
466 "STR R0, [SP, #0xC] \n"
467 "loc_FF8AFAFC:\n"
468 "LDR R0, [R6, #0x20] \n"
469 "MOV R2, #0 \n"
470 "ADD R1, SP, #0x28 \n"
471 "BL sub_003F7218 \n"
472 "LDR R0, [SP, #0xC] \n"
473 "CMP R0, #1 \n"
474 "BNE loc_FF8AFB48 \n"
475 "LDR R0, [SP, #0x28] \n"
476 "LDR R0, [R0] \n"
477 "CMP R0, #0x14 \n"
478 "CMPNE R0, #0x15 \n"
479 "CMPNE R0, #0x16 \n"
480 "CMPNE R0, #0x17 \n"
481 "BEQ loc_FF8AFCA8 \n"
482 "CMP R0, #0x2A \n"
483 "BEQ loc_FF8AFC30 \n"
484 "ADD R1, SP, #0xC \n"
485 "MOV R0, #0 \n"
486 "BL sub_FF8AFA8C \n"
487 "loc_FF8AFB48:\n"
488 "LDR R0, [SP, #0x28] \n"
489 "LDR R1, [R0] \n"
490 "CMP R1, #0x30 \n"
491 "BNE loc_FF8AFB74 \n"
492 "BL sub_FF8B0EBC \n"
493 "LDR R0, [R6, #0x1C] \n"
494 "MOV R1, #1 \n"
495 "BL sub_003FAC6C \n"
496 "BL _ExitTask \n"
497 "ADD SP, SP, #0x2C \n"
498 "LDMFD SP!, {R4-R9,PC} \n"
499 "loc_FF8AFB74:\n"
500 "CMP R1, #0x2F \n"
501 "BNE loc_FF8AFB90 \n"
502 "LDR R2, [R0, #0x8C]! \n"
503 "LDR R1, [R0, #4] \n"
504 "MOV R0, R1 \n"
505 "BLX R2 \n"
506 "B loc_FF8B0164 \n"
507 "loc_FF8AFB90:\n"
508 "CMP R1, #0x28 \n"
509 "BNE loc_FF8AFBE0 \n"
510 "LDR R0, [R6, #0x1C] \n"
511 "MOV R1, #0x80 \n"
512 "BL sub_003FACA0 \n"
513 "LDR R0, =0xFF8AB3F0 \n"
514 "MOV R1, #0x80 \n"
515 "BL sub_FF955934 \n"
516 "LDR R0, [R6, #0x1C] \n"
517 "MOV R2, R7 \n"
518 "MOV R1, #0x80 \n"
519 "BL sub_003FABAC \n"
520 "TST R0, #1 \n"
521 "LDRNE R1, =0x157A \n"
522 "BNE loc_FF8AFC9C \n"
523 "loc_FF8AFBCC:\n"
524 "LDR R1, [SP, #0x28] \n"
525 "LDR R0, [R1, #0x90] \n"
526 "LDR R1, [R1, #0x8C] \n"
527 "BLX R1 \n"
528 "B loc_FF8B0164 \n"
529 "loc_FF8AFBE0:\n"
530 "CMP R1, #0x29 \n"
531 "BNE loc_FF8AFC28 \n"
532 "ADD R1, SP, #0xC \n"
533 "BL sub_FF8AFA8C \n"
534 "LDR R0, [R6, #0x1C] \n"
535 "MOV R1, #0x100 \n"
536 "BL sub_003FACA0 \n"
537 "LDR R0, =0xFF8AB400 \n"
538 "MOV R1, #0x100 \n"
539 "BL sub_FF955AD4 \n"
540 "LDR R0, [R6, #0x1C] \n"
541 "MOV R2, R7 \n"
542 "MOV R1, #0x100 \n"
543 "BL sub_003FABAC \n"
544 "TST R0, #1 \n"
545 "BEQ loc_FF8AFBCC \n"
546 "LDR R1, =0x1584 \n"
547 "B loc_FF8AFC9C \n"
548 "loc_FF8AFC28:\n"
549 "CMP R1, #0x2A \n"
550 "BNE loc_FF8AFC40 \n"
551 "loc_FF8AFC30:\n"
552 "LDR R0, [SP, #0x28] \n"
553 "ADD R1, SP, #0xC \n"
554 "BL sub_FF8AFA8C \n"
555 "B loc_FF8AFBCC \n"
556 "loc_FF8AFC40:\n"
557 "CMP R1, #0x2D \n"
558 "BNE loc_FF8AFC58 \n"
559 "BL sub_FF89C6CC \n"
560 "BL sub_FF89D3B4 \n"
561 "BL sub_FF89CF1C \n"
562 "B loc_FF8AFBCC \n"
563 "loc_FF8AFC58:\n"
564 "CMP R1, #0x2E \n"
565 "BNE loc_FF8AFCA8 \n"
566 "LDR R0, [R6, #0x1C] \n"
567 "MOV R1, #4 \n"
568 "BL sub_003FACA0 \n"
569 "LDR R1, =0xFF8AB420 \n"
570 "LDR R0, =0xFFFFF400 \n"
571 "MOV R2, #4 \n"
572 "BL sub_FF89C11C \n"
573 "BL sub_FF89C3AC \n"
574 "LDR R0, [R6, #0x1C] \n"
575 "MOV R2, R7 \n"
576 "MOV R1, #4 \n"
577 "BL sub_003FAAC8 \n"
578 "TST R0, #1 \n"
579 "BEQ loc_FF8AFBCC \n"
580 "LDR R1, =0x15AC \n"
581 "loc_FF8AFC9C:\n"
582 "LDR R0, =0xFF8ABB14 \n"
583 "BL _DebugAssert \n"
584 "B loc_FF8AFBCC \n"
585 "loc_FF8AFCA8:\n"
586 "LDR R0, [SP, #0x28] \n"
587 "MOV R8, #1 \n"
588 "LDR R1, [R0] \n"
589 "CMP R1, #0x12 \n"
590 "CMPNE R1, #0x13 \n"
591 "BNE loc_FF8AFD10 \n"
592 "LDR R1, [R0, #0x7C] \n"
593 "ADD R1, R1, R1, LSL #1 \n"
594 "ADD R1, R0, R1, LSL #2 \n"
595 "SUB R1, R1, #8 \n"
596 "LDMIA R1, {R2,R3,R9} \n"
597 "STMIA R5, {R2,R3,R9} \n"
598 "BL sub_FF8AE02C \n"
599 "LDR R0, [SP, #0x28] \n"
600 "LDR R1, [R0, #0x7C] \n"
601 "LDR R3, [R0, #0x8C] \n"
602 "LDR R2, [R0, #0x90] \n"
603 "ADD R0, R0, #4 \n"
604 "BLX R3 \n"
605 "LDR R0, [SP, #0x28] \n"
606 "BL sub_FF8B12C0 \n"
607 "LDR R0, [SP, #0x28] \n"
608 "LDR R1, [R0, #0x7C] \n"
609 "LDR R2, [R0, #0x98] \n"
610 "LDR R3, [R0, #0x94] \n"
611 "B loc_FF8B0028 \n"
612 "loc_FF8AFD10:\n"
613 "CMP R1, #0x14 \n"
614 "CMPNE R1, #0x15 \n"
615 "CMPNE R1, #0x16 \n"
616 "CMPNE R1, #0x17 \n"
617 "BNE loc_FF8AFDC8 \n"
618 "ADD R3, SP, #0xC \n"
619 "MOV R2, SP \n"
620 "ADD R1, SP, #0x1C \n"
621 "BL sub_FF8AE28C \n"
622 "CMP R0, #1 \n"
623 "MOV R9, R0 \n"
624 "CMPNE R9, #5 \n"
625 "BNE loc_FF8AFD64 \n"
626 "LDR R0, [SP, #0x28] \n"
627 "MOV R2, R9 \n"
628 "LDR R1, [R0, #0x7C]! \n"
629 "LDR R12, [R0, #0x10]! \n"
630 "LDR R3, [R0, #4] \n"
631 "MOV R0, SP \n"
632 "BLX R12 \n"
633 "B loc_FF8AFD9C \n"
634 "loc_FF8AFD64:\n"
635 "LDR R0, [SP, #0x28] \n"
636 "CMP R9, #2 \n"
637 "LDR R3, [R0, #0x90] \n"
638 "CMPNE R9, #6 \n"
639 "BNE loc_FF8AFDB0 \n"
640 "LDR R12, [R0, #0x8C] \n"
641 "MOV R2, R9 \n"
642 "MOV R1, #1 \n"
643 "MOV R0, SP \n"
644 "BLX R12 \n"
645 "LDR R0, [SP, #0x28] \n"
646 "MOV R2, SP \n"
647 "ADD R1, SP, #0x1C \n"
648 "BL sub_FF8AF77C \n"
649 "loc_FF8AFD9C:\n"
650 "LDR R0, [SP, #0x28] \n"
651 "LDR R2, [SP, #0xC] \n"
652 "MOV R1, R9 \n"
653 "BL sub_FF8AF9CC \n"
654 "B loc_FF8B0030 \n"
655 "loc_FF8AFDB0:\n"
656 "LDR R1, [R0, #0x7C] \n"
657 "LDR R12, [R0, #0x8C] \n"
658 "MOV R2, R9 \n"
659 "ADD R0, R0, #4 \n"
660 "BLX R12 \n"
661 "B loc_FF8B0030 \n"
662 "loc_FF8AFDC8:\n"
663 "CMP R1, #0x24 \n"
664 "CMPNE R1, #0x25 \n"
665 "BNE loc_FF8AFE14 \n"
666 "LDR R1, [R0, #0x7C] \n"
667 "ADD R1, R1, R1, LSL #1 \n"
668 "ADD R1, R0, R1, LSL #2 \n"
669 "SUB R1, R1, #8 \n"
670 "LDMIA R1, {R2,R3,R9} \n"
671 "STMIA R5, {R2,R3,R9} \n"
672 "BL sub_FF8AD018 \n"
673 "LDR R0, [SP, #0x28] \n"
674 "LDR R1, [R0, #0x7C] \n"
675 "LDR R3, [R0, #0x8C] \n"
676 "LDR R2, [R0, #0x90] \n"
677 "ADD R0, R0, #4 \n"
678 "BLX R3 \n"
679 "LDR R0, [SP, #0x28] \n"
680 "BL sub_FF8AD458 \n"
681 "B loc_FF8B0030 \n"
682 "loc_FF8AFE14:\n"
683 "ADD R1, R0, #4 \n"
684 "LDMIA R1, {R2,R3,R9} \n"
685 "STMIA R5, {R2,R3,R9} \n"
686 "LDR R1, [R0] \n"
687 "CMP R1, #0x28 \n"
688 "ADDCC PC, PC, R1, LSL #2 \n"
689 "B loc_FF8B0018 \n"
690 "B loc_FF8AFED0 \n"
691 "B loc_FF8AFED0 \n"
692 "B loc_FF8AFED8 \n"
693 "B loc_FF8AFEE0 \n"
694 "B loc_FF8AFEE0 \n"
695 "B loc_FF8AFEE0 \n"
696 "B loc_FF8AFED0 \n"
697 "B loc_FF8AFED8 \n"
698 "B loc_FF8AFEE0 \n"
699 "B loc_FF8AFEE0 \n"
700 "B loc_FF8AFEF8 \n"
701 "B loc_FF8AFEF8 \n"
702 "B loc_FF8B0004 \n"
703 "B loc_FF8B000C \n"
704 "B loc_FF8B000C \n"
705 "B loc_FF8B000C \n"
706 "B loc_FF8B000C \n"
707 "B loc_FF8B0014 \n"
708 "B loc_FF8B0018 \n"
709 "B loc_FF8B0018 \n"
710 "B loc_FF8B0018 \n"
711 "B loc_FF8B0018 \n"
712 "B loc_FF8B0018 \n"
713 "B loc_FF8B0018 \n"
714 "B loc_FF8AFEE8 \n"
715 "B loc_FF8AFEF0 \n"
716 "B loc_FF8AFEF0 \n"
717 "B loc_FF8AFEF0 \n"
718 "B loc_FF8AFF04 \n"
719 "B loc_FF8AFF04 \n"
720 "B loc_FF8AFF0C \n"
721 "B loc_FF8AFF44 \n"
722 "B loc_FF8AFF7C \n"
723 "B loc_FF8AFFB4 \n"
724 "B loc_FF8AFFEC \n"
725 "B loc_FF8AFFEC \n"
726 "B loc_FF8B0018 \n"
727 "B loc_FF8B0018 \n"
728 "B loc_FF8AFFF4 \n"
729 "B loc_FF8AFFFC \n"
730 "loc_FF8AFED0:\n"
731 "BL sub_FF8AB998 \n"
732 "B loc_FF8B0018 \n"
733 "loc_FF8AFED8:\n"
734 "BL sub_FF8ABC3C \n"
735 "B loc_FF8B0018 \n"
736 "loc_FF8AFEE0:\n"
737 "BL sub_FF8ABE64 \n"
738 "B loc_FF8B0018 \n"
739 "loc_FF8AFEE8:\n"
740 "BL sub_FF8AC188 \n"
741 "B loc_FF8B0018 \n"
742 "loc_FF8AFEF0:\n"
743 "BL sub_FF8AC3A0 \n"
744 "B loc_FF8B0018 \n"
745 "loc_FF8AFEF8:\n"
746
747 "BL sub_FF8AC74C_my \n"
748 "MOV R8, #0 \n"
749 "B loc_FF8B0018 \n"
750 "loc_FF8AFF04:\n"
751 "BL sub_FF8AC88C \n"
752 "B loc_FF8B0018 \n"
753 "loc_FF8AFF0C:\n"
754 "LDRH R1, [R0, #4] \n"
755 "STRH R1, [SP, #0x1C] \n"
756 "LDRH R1, [R4, #2] \n"
757 "STRH R1, [SP, #0x1E] \n"
758 "LDRH R1, [R4, #4] \n"
759 "STRH R1, [SP, #0x20] \n"
760 "LDRH R1, [R4, #6] \n"
761 "STRH R1, [SP, #0x22] \n"
762 "LDRH R1, [R0, #0xC] \n"
763 "STRH R1, [SP, #0x24] \n"
764 "LDRH R1, [R4, #0xA] \n"
765 "STRH R1, [SP, #0x26] \n"
766 "BL sub_FF8B0F50 \n"
767 "B loc_FF8B0018 \n"
768 "loc_FF8AFF44:\n"
769 "LDRH R1, [R0, #4] \n"
770 "STRH R1, [SP, #0x1C] \n"
771 "LDRH R1, [R4, #2] \n"
772 "STRH R1, [SP, #0x1E] \n"
773 "LDRH R1, [R4, #4] \n"
774 "STRH R1, [SP, #0x20] \n"
775 "LDRH R1, [R4, #6] \n"
776 "STRH R1, [SP, #0x22] \n"
777 "LDRH R1, [R4, #8] \n"
778 "STRH R1, [SP, #0x24] \n"
779 "LDRH R1, [R4, #0xA] \n"
780 "STRH R1, [SP, #0x26] \n"
781 "BL sub_FF8B10C0 \n"
782 "B loc_FF8B0018 \n"
783 "loc_FF8AFF7C:\n"
784 "LDRH R1, [R4] \n"
785 "STRH R1, [SP, #0x1C] \n"
786 "LDRH R1, [R0, #6] \n"
787 "STRH R1, [SP, #0x1E] \n"
788 "LDRH R1, [R4, #4] \n"
789 "STRH R1, [SP, #0x20] \n"
790 "LDRH R1, [R4, #6] \n"
791 "STRH R1, [SP, #0x22] \n"
792 "LDRH R1, [R4, #8] \n"
793 "STRH R1, [SP, #0x24] \n"
794 "LDRH R1, [R4, #0xA] \n"
795 "STRH R1, [SP, #0x26] \n"
796 "BL sub_FF8B1174 \n"
797 "B loc_FF8B0018 \n"
798 "loc_FF8AFFB4:\n"
799 "LDRH R1, [R4] \n"
800 "STRH R1, [SP, #0x1C] \n"
801 "LDRH R1, [R4, #2] \n"
802 "STRH R1, [SP, #0x1E] \n"
803 "LDRH R1, [R4, #4] \n"
804 "STRH R1, [SP, #0x20] \n"
805 "LDRH R1, [R4, #6] \n"
806 "STRH R1, [SP, #0x22] \n"
807 "LDRH R1, [R0, #0xC] \n"
808 "STRH R1, [SP, #0x24] \n"
809 "LDRH R1, [R4, #0xA] \n"
810 "STRH R1, [SP, #0x26] \n"
811 "BL sub_FF8B121C \n"
812 "B loc_FF8B0018 \n"
813 "loc_FF8AFFEC:\n"
814 "BL sub_FF8ACDCC \n"
815 "B loc_FF8B0018 \n"
816 "loc_FF8AFFF4:\n"
817 "BL sub_FF8AD55C \n"
818 "B loc_FF8B0018 \n"
819 "loc_FF8AFFFC:\n"
820 "BL sub_FF8AD840 \n"
821 "B loc_FF8B0018 \n"
822 "loc_FF8B0004:\n"
823 "BL sub_FF8ADB00 \n"
824 "B loc_FF8B0018 \n"
825 "loc_FF8B000C:\n"
826 "BL sub_FF8ADCBC \n"
827 "B loc_FF8B0018 \n"
828 "loc_FF8B0014:\n"
829 "BL sub_FF8ADE24 \n"
830 "loc_FF8B0018:\n"
831 "LDR R0, [SP, #0x28] \n"
832 "LDR R1, [R0, #0x7C] \n"
833 "LDR R2, [R0, #0x90] \n"
834 "LDR R3, [R0, #0x8C] \n"
835 "loc_FF8B0028:\n"
836 "ADD R0, R0, #4 \n"
837 "BLX R3 \n"
838 "loc_FF8B0030:\n"
839 "LDR R0, [SP, #0x28] \n"
840 "LDR R0, [R0] \n"
841 "CMP R0, #0x10 \n"
842 "BEQ loc_FF8B0068 \n"
843 "BGT loc_FF8B0058 \n"
844 "CMP R0, #1 \n"
845 "CMPNE R0, #4 \n"
846 "CMPNE R0, #0xE \n"
847 "BNE loc_FF8B009C \n"
848 "B loc_FF8B0068 \n"
849 "loc_FF8B0058:\n"
850 "CMP R0, #0x13 \n"
851 "CMPNE R0, #0x17 \n"
852 "CMPNE R0, #0x1A \n"
853 "BNE loc_FF8B009C \n"
854 "loc_FF8B0068:\n"
855 "LDRSH R0, [R4] \n"
856 "CMN R0, #0xC00 \n"
857 "LDRNESH R1, [R4, #8] \n"
858 "CMNNE R1, #0xC00 \n"
859 "STRNEH R0, [SP, #0x1C] \n"
860 "STRNEH R1, [SP, #0x24] \n"
861 "BNE loc_FF8B009C \n"
862 "ADD R0, SP, #0x10 \n"
863 "BL sub_FF8B14CC \n"
864 "LDRH R0, [SP, #0x10] \n"
865 "STRH R0, [SP, #0x1C] \n"
866 "LDRH R0, [SP, #0x18] \n"
867 "STRH R0, [SP, #0x24] \n"
868 "loc_FF8B009C:\n"
869 "LDR R0, [SP, #0x28] \n"
870 "CMP R8, #1 \n"
871 "BNE loc_FF8B00EC \n"
872 "LDR R1, [R0, #0x7C] \n"
873 "MOV R2, #0xC \n"
874 "ADD R1, R1, R1, LSL #1 \n"
875 "ADD R0, R0, R1, LSL #2 \n"
876 "SUB R8, R0, #8 \n"
877 "LDR R0, =0x53D2C \n"
878 "ADD R1, SP, #0x1C \n"
879 "BL sub_003FC17C \n"
880 "LDR R0, =0x53D38 \n"
881 "MOV R2, #0xC \n"
882 "ADD R1, SP, #0x1C \n"
883 "BL sub_003FC17C \n"
884 "LDR R0, =0x53D44 \n"
885 "MOV R2, #0xC \n"
886 "MOV R1, R8 \n"
887 "BL sub_003FC17C \n"
888 "B loc_FF8B0164 \n"
889 "loc_FF8B00EC:\n"
890 "LDR R0, [R0] \n"
891 "MOV R3, #1 \n"
892 "CMP R0, #0xB \n"
893 "BNE loc_FF8B0130 \n"
894 "MOV R2, #0 \n"
895 "STRD R2, [SP] \n"
896 "MOV R2, R3 \n"
897 "MOV R1, R3 \n"
898 "MOV R0, #0 \n"
899 "BL sub_FF8AB778 \n"
900 "MOV R3, #1 \n"
901 "MOV R2, #0 \n"
902 "STRD R2, [SP] \n"
903 "MOV R2, R3 \n"
904 "MOV R1, R3 \n"
905 "MOV R0, #0 \n"
906 "B loc_FF8B0160 \n"
907 "loc_FF8B0130:\n"
908 "MOV R2, #1 \n"
909 "STRD R2, [SP] \n"
910 "MOV R3, R2 \n"
911 "MOV R1, R2 \n"
912 "MOV R0, R2 \n"
913 "BL sub_FF8AB778 \n"
914 "MOV R3, #1 \n"
915 "MOV R2, R3 \n"
916 "MOV R1, R3 \n"
917 "MOV R0, R3 \n"
918 "STR R3, [SP] \n"
919 "STR R3, [SP, #4] \n"
920 "loc_FF8B0160:\n"
921 "BL sub_FF8AB8E4 \n"
922 "loc_FF8B0164:\n"
923 "LDR R0, [SP, #0x28] \n"
924 "BL sub_FF8B0EBC \n"
925 "B loc_FF8AFAFC \n"
926 );
927 }
928
929
930
931
932 void __attribute__((naked,noinline)) sub_FF8AC74C_my() {
933 asm volatile (
934 "STMFD SP!, {R4-R8,LR} \n"
935 "LDR R7, =0x3DDC \n"
936 "MOV R4, R0 \n"
937 "LDR R0, [R7, #0x1C] \n"
938 "MOV R1, #0x3E \n"
939 "BL sub_003FACA0 \n"
940 "MOV R2, #0 \n"
941 "LDRSH R0, [R4, #4] \n"
942 "MOV R1, R2 \n"
943 "BL sub_FF8AB480 \n"
944 "MOV R6, R0 \n"
945 "LDRSH R0, [R4, #6] \n"
946 "BL sub_FF8AB5D0 \n"
947 "LDRSH R0, [R4, #8] \n"
948 "BL sub_FF8AB628 \n"
949 "LDRSH R0, [R4, #0xA] \n"
950 "BL sub_FF8AB680 \n"
951 "LDRSH R0, [R4, #0xC] \n"
952 "MOV R1, #0 \n"
953 "BL sub_FF8AB6D8 \n"
954 "MOV R5, R0 \n"
955 "LDR R0, [R4] \n"
956 "LDR R8, =0x53D44 \n"
957 "CMP R0, #0xB \n"
958 "MOVEQ R6, #0 \n"
959 "MOVEQ R5, R6 \n"
960 "BEQ loc_FF8AC7E0 \n"
961 "CMP R6, #1 \n"
962 "BNE loc_FF8AC7E0 \n"
963 "LDRSH R0, [R4, #4] \n"
964 "LDR R1, =0xFF8AB3E0 \n"
965 "MOV R2, #2 \n"
966 "BL sub_FF9559B8 \n"
967 "STRH R0, [R4, #4] \n"
968 "MOV R0, #0 \n"
969 "STR R0, [R7, #0x28] \n"
970 "B loc_FF8AC7E8 \n"
971 "loc_FF8AC7E0:\n"
972 "LDRH R0, [R8] \n"
973 "STRH R0, [R4, #4] \n"
974 "loc_FF8AC7E8:\n"
975 "CMP R5, #1 \n"
976 "LDRNEH R0, [R8, #8] \n"
977 "BNE loc_FF8AC804 \n"
978 "LDRSH R0, [R4, #0xC] \n"
979 "LDR R1, =0xFF8AB464 \n"
980 "MOV R2, #0x20 \n"
981 "BL sub_FF8B0F0C \n"
982 "loc_FF8AC804:\n"
983 "STRH R0, [R4, #0xC] \n"
984 "LDRSH R0, [R4, #6] \n"
985
986 "BL sub_FF89C418_my \n"
987 "B sub_FF8AC810 \n"
988 );
989 }
990
991
992
993
994 void __attribute__((naked,noinline)) sub_FF89C418_my() {
995 asm volatile (
996 "STMFD SP!, {R4-R6,LR} \n"
997 "LDR R5, =0x3A68 \n"
998 "MOV R4, R0 \n"
999 "LDR R0, [R5, #4] \n"
1000 "CMP R0, #1 \n"
1001 "LDRNE R1, =0x14D \n"
1002 "LDRNE R0, =0xFF89C250 \n"
1003 "BLNE _DebugAssert \n"
1004 "CMN R4, #0xC00 \n"
1005 "LDREQSH R4, [R5, #2] \n"
1006 "CMN R4, #0xC00 \n"
1007 "LDREQ R1, =0x153 \n"
1008 "LDREQ R0, =0xFF89C250 \n"
1009 "STRH R4, [R5, #2] \n"
1010 "BLEQ _DebugAssert \n"
1011 "MOV R0, R4 \n"
1012
1013 "BL apex2us \n"
1014 "MOV R4, R0 \n"
1015 "BL sub_FF8EA590 \n"
1016 "MOV R0, R4 \n"
1017 "BL sub_FF8F2D98 \n"
1018 "TST R0, #1 \n"
1019 "LDMEQFD SP!, {R4-R6,PC} \n"
1020 "LDMFD SP!, {R4-R6,LR} \n"
1021 "MOV R1, #0x158 \n"
1022 "LDR R0, =0xFF89C250 \n"
1023 "B _DebugAssert \n"
1024 );
1025 }