This source file includes following definitions.
- capt_seq_task
- sub_FF968CAC_my
- exp_drv_task
- sub_FF8AE6BC_my
- sub_FF89E38C_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6 static long *nrflag = (long*)(0x8b64+0x00);
7 #define NR_AUTO (0)
8
9 #define PAUSE_FOR_FILE_COUNTER 150
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, =0x376AC \n"
18 "LDR R7, =0x2BA8 \n"
19 "MOV R6, #0 \n"
20 "loc_FF872434:\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_FF872460 \n"
27 "LDR R1, =0x493 \n"
28 "LDR R0, =0xFF871F90 \n"
29 "BL _DebugAssert \n"
30 "BL _ExitTask \n"
31 "LDMFD SP!, {R3-R9,PC} \n"
32 "loc_FF872460:\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_FF8726BC \n"
38 "B loc_FF8724F4 \n"
39 "B loc_FF87250C \n"
40 "B loc_FF872570 \n"
41 "B loc_FF872584 \n"
42 "B loc_FF87257C \n"
43 "B loc_FF872590 \n"
44 "B loc_FF872598 \n"
45 "B loc_FF8725A0 \n"
46 "B loc_FF8725BC \n"
47 "B loc_FF8725E8 \n"
48 "B loc_FF8725C8 \n"
49 "B loc_FF8725D4 \n"
50 "B loc_FF8725DC \n"
51 "B loc_FF8725F0 \n"
52 "B loc_FF8725F8 \n"
53 "B loc_FF872600 \n"
54 "B loc_FF872608 \n"
55 "B loc_FF872610 \n"
56 "B loc_FF87261C \n"
57 "B loc_FF872624 \n"
58 "B loc_FF87262C \n"
59 "B loc_FF872634 \n"
60 "B loc_FF87263C \n"
61 "B loc_FF872648 \n"
62 "B loc_FF872650 \n"
63 "B loc_FF872658 \n"
64 "B loc_FF872660 \n"
65 "B loc_FF872668 \n"
66 "B loc_FF872674 \n"
67 "B loc_FF87267C \n"
68 "B loc_FF872688 \n"
69 "B loc_FF8726C8 \n"
70 "loc_FF8724F4:\n"
71 "BL shooting_expo_iso_override\n"
72 "BL sub_FF872C3C \n"
73 "BL shooting_expo_param_override\n"
74 "BL sub_FF870230 \n"
75
76
77
78 "MOV R0, #0\n"
79 "STR R0, [R4,#0x28]\n"
80 "B loc_FF8726C8 \n"
81 "loc_FF87250C:\n"
82 "LDR R5, [R0, #0x10] \n"
83 "LDR R0, [R4, #0x28] \n"
84 "CMP R0, #0 \n"
85 "BNE loc_FF872548 \n"
86 "BL sub_FF873B4C \n"
87 "MOV R1, R5 \n"
88 "BL sub_FF873BA4 \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_FF872548:\n"
98 "MOV R0, R5 \n"
99
100 "BL sub_FF968CAC_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_FF8706E0 \n"
106 "TST R8, #1 \n"
107 "MOVEQ R0, R5 \n"
108 "BLEQ sub_FF968628 \n"
109 "B loc_FF8726C8 \n"
110 "loc_FF872570:\n"
111 "MOV R0, #1 \n"
112 "BL sub_FF872F0C \n"
113 "B loc_FF8726C8 \n"
114 "loc_FF87257C:\n"
115 "BL sub_FF872890 \n"
116 "B loc_FF872588 \n"
117 "loc_FF872584:\n"
118 "BL sub_FF872C1C \n"
119 "loc_FF872588:\n"
120 "STR R6, [R4, #0x28] \n"
121 "B loc_FF8726C8 \n"
122 "loc_FF872590:\n"
123 "BL sub_FF872C24 \n"
124 "B loc_FF8726C8 \n"
125 "loc_FF872598:\n"
126 "BL sub_FF872DF4 \n"
127 "B loc_FF8725C0 \n"
128 "loc_FF8725A0:\n"
129 "LDR R5, [R0, #0x10] \n"
130 "MOV R0, R5 \n"
131 "BL sub_FF968DE0 \n"
132 "MOV R2, R5 \n"
133 "MOV R1, #9 \n"
134 "BL sub_FF8706E0 \n"
135 "B loc_FF8726C8 \n"
136 "loc_FF8725BC:\n"
137 "BL sub_FF872E74 \n"
138 "loc_FF8725C0:\n"
139 "BL sub_FF870230 \n"
140 "B loc_FF8726C8 \n"
141 "loc_FF8725C8:\n"
142 "LDR R0, [R4, #0x58] \n"
143 "BL sub_FF8732FC \n"
144 "B loc_FF8726C8 \n"
145 "loc_FF8725D4:\n"
146 "BL sub_FF8736BC \n"
147 "B loc_FF8726C8 \n"
148 "loc_FF8725DC:\n"
149 "MOV R0, #0 \n"
150 "BL sub_FF873720 \n"
151 "B loc_FF8726C8 \n"
152 "loc_FF8725E8:\n"
153 "BL sub_FF872C1C \n"
154 "B loc_FF8726C8 \n"
155 "loc_FF8725F0:\n"
156 "BL sub_FF9679CC \n"
157 "B loc_FF8726C8 \n"
158 "loc_FF8725F8:\n"
159 "BL sub_FF967C2C \n"
160 "B loc_FF8726C8 \n"
161 "loc_FF872600:\n"
162 "BL sub_FF967CE4 \n"
163 "B loc_FF8726C8 \n"
164 "loc_FF872608:\n"
165 "BL sub_FF967DB8 \n"
166 "B loc_FF8726C8 \n"
167 "loc_FF872610:\n"
168 "MOV R0, #0 \n"
169 "BL sub_FF968018 \n"
170 "B loc_FF8726C8 \n"
171 "loc_FF87261C:\n"
172 "BL sub_FF968188 \n"
173 "B loc_FF8726C8 \n"
174 "loc_FF872624:\n"
175 "BL sub_FF96821C \n"
176 "B loc_FF8726C8 \n"
177 "loc_FF87262C:\n"
178 "BL sub_FF9682D8 \n"
179 "B loc_FF8726C8 \n"
180 "loc_FF872634:\n"
181 "BL sub_FF873080 \n"
182 "B loc_FF8726C8 \n"
183 "loc_FF87263C:\n"
184 "BL sub_FF873104 \n"
185 "BL sub_FF8322CC \n"
186 "B loc_FF8726C8 \n"
187 "loc_FF872648:\n"
188 "BL sub_FF967E88 \n"
189 "B loc_FF8726C8 \n"
190 "loc_FF872650:\n"
191 "BL sub_FF967EC8 \n"
192 "B loc_FF8726C8 \n"
193 "loc_FF872658:\n"
194 "BL sub_FF875028 \n"
195 "B loc_FF8726C8 \n"
196 "loc_FF872660:\n"
197 "BL sub_FF87509C \n"
198 "B loc_FF8726C8 \n"
199 "loc_FF872668:\n"
200 "LDR R0, [R0, #0xC] \n"
201 "BL sub_FF968400 \n"
202 "B loc_FF8726C8 \n"
203 "loc_FF872674:\n"
204 "BL sub_FF968470 \n"
205 "B loc_FF8726C8 \n"
206 "loc_FF87267C:\n"
207 "BL sub_FF875104 \n"
208 "BL sub_FF8750BC \n"
209 "B loc_FF8726C8 \n"
210 "loc_FF872688:\n"
211 "MOV R0, #1 \n"
212 "BL sub_FF9694E0 \n"
213 "MOV R0, #1 \n"
214 "BL sub_FF969608 \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_FF8726C8 \n"
221 "BL sub_FF87509C \n"
222 "BL sub_FF875560 \n"
223 "B loc_FF8726C8 \n"
224 "loc_FF8726BC:\n"
225 "LDR R1, =0x5F4 \n"
226 "LDR R0, =0xFF871F90 \n"
227 "BL _DebugAssert \n"
228 "loc_FF8726C8:\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, =0xFF871F90 \n"
238 "BLEQ _DebugAssert \n"
239 "STR R6, [R5, #8] \n"
240 "B loc_FF872434 \n"
241 );
242 }
243
244
245
246 void __attribute__((naked,noinline)) sub_FF968CAC_my() {
247 asm volatile (
248 "STMFD SP!, {R4-R6,LR} \n"
249 "LDR R5, =0x376AC \n"
250 "MOV R6, R0 \n"
251 "LDR R0, [R5, #0x28] \n"
252 "MOV R4, #0 \n"
253 "CMP R0, #0 \n"
254 "BNE loc_FF968CDC \n"
255 "MOV R0, #0xC \n"
256 "BL sub_FF876C00 \n"
257 "TST R0, #1 \n"
258 "MOVNE R0, #1 \n"
259 "LDMNEFD SP!, {R4-R6,PC} \n"
260 "loc_FF968CDC:\n"
261 "BL sub_FF872C2C \n"
262 "LDR R0, [R5, #0x28] \n"
263 "CMP R0, #0 \n"
264 "BNE loc_FF968D2C \n"
265 "MOV R0, R6 \n"
266 "BL sub_FF968568 \n"
267 "TST R0, #1 \n"
268 "LDMNEFD SP!, {R4-R6,PC} \n"
269 "MOV R0, R6 \n"
270 "BL sub_FF9688FC \n"
271 "BL sub_FF9692C0 \n"
272
273
274
275 "BL wait_until_remote_button_is_released\n"
276 "BL capt_seq_hook_set_nr\n"
277
278 "MOV R0, #2 \n"
279 "BL sub_FF878360 \n"
280 "LDR R0, [R5, #0x8C] \n"
281 "TST R0, #0x10 \n"
282 "BNE loc_FF968D3C \n"
283 "MOV R0, R6 \n"
284 "BL sub_FFA87454 \n"
285
286 "MOV R4, R0 \n"
287 "B loc_FF968D40 \n"
288 "loc_FF968D2C:\n"
289 "LDR R0, =0x694C \n"
290 "LDR R0, [R0] \n"
291 "CMP R0, #0 \n"
292 "BEQ loc_FF968D40 \n"
293 "loc_FF968D3C:\n"
294 "MOV R4, #0x1D \n"
295 "loc_FF968D40:\n"
296 "MOV R0, R4 \n"
297 "LDMFD SP!, {R4-R6,PC} \n"
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 void __attribute__((naked,noinline)) exp_drv_task() {
457 asm volatile (
458 "STMFD SP!, {R4-R9,LR} \n"
459 "SUB SP, SP, #0x2C \n"
460 "LDR R6, =0x3E3C \n"
461 "LDR R7, =0xBB8 \n"
462 "LDR R4, =0x5465C \n"
463 "MOV R0, #0 \n"
464 "ADD R5, SP, #0x1C \n"
465 "STR R0, [SP, #0xC] \n"
466 "loc_FF8B1A6C:\n"
467 "LDR R0, [R6, #0x20] \n"
468 "MOV R2, #0 \n"
469 "ADD R1, SP, #0x28 \n"
470 "BL sub_003F7218 \n"
471 "LDR R0, [SP, #0xC] \n"
472 "CMP R0, #1 \n"
473 "BNE loc_FF8B1AB8 \n"
474 "LDR R0, [SP, #0x28] \n"
475 "LDR R0, [R0] \n"
476 "CMP R0, #0x14 \n"
477 "CMPNE R0, #0x15 \n"
478 "CMPNE R0, #0x16 \n"
479 "CMPNE R0, #0x17 \n"
480 "BEQ loc_FF8B1C18 \n"
481 "CMP R0, #0x2A \n"
482 "BEQ loc_FF8B1BA0 \n"
483 "ADD R1, SP, #0xC \n"
484 "MOV R0, #0 \n"
485 "BL sub_FF8B19FC \n"
486 "loc_FF8B1AB8:\n"
487 "LDR R0, [SP, #0x28] \n"
488 "LDR R1, [R0] \n"
489 "CMP R1, #0x30 \n"
490 "BNE loc_FF8B1AE4 \n"
491 "BL sub_FF8B2E2C \n"
492 "LDR R0, [R6, #0x1C] \n"
493 "MOV R1, #1 \n"
494 "BL sub_003FAC6C \n"
495 "BL _ExitTask \n"
496 "ADD SP, SP, #0x2C \n"
497 "LDMFD SP!, {R4-R9,PC} \n"
498 "loc_FF8B1AE4:\n"
499 "CMP R1, #0x2F \n"
500 "BNE loc_FF8B1B00 \n"
501 "LDR R2, [R0, #0x8C]! \n"
502 "LDR R1, [R0, #4] \n"
503 "MOV R0, R1 \n"
504 "BLX R2 \n"
505 "B loc_FF8B20D4 \n"
506 "loc_FF8B1B00:\n"
507 "CMP R1, #0x28 \n"
508 "BNE loc_FF8B1B50 \n"
509 "LDR R0, [R6, #0x1C] \n"
510 "MOV R1, #0x80 \n"
511 "BL sub_003FACA0 \n"
512 "LDR R0, =0xFF8AD360 \n"
513 "MOV R1, #0x80 \n"
514 "BL sub_FF959A4C \n"
515 "LDR R0, [R6, #0x1C] \n"
516 "MOV R2, R7 \n"
517 "MOV R1, #0x80 \n"
518 "BL sub_003FABAC \n"
519 "TST R0, #1 \n"
520 "LDRNE R1, =0x157A \n"
521 "BNE loc_FF8B1C0C \n"
522 "loc_FF8B1B3C:\n"
523 "LDR R1, [SP, #0x28] \n"
524 "LDR R0, [R1, #0x90] \n"
525 "LDR R1, [R1, #0x8C] \n"
526 "BLX R1 \n"
527 "B loc_FF8B20D4 \n"
528 "loc_FF8B1B50:\n"
529 "CMP R1, #0x29 \n"
530 "BNE loc_FF8B1B98 \n"
531 "ADD R1, SP, #0xC \n"
532 "BL sub_FF8B19FC \n"
533 "LDR R0, [R6, #0x1C] \n"
534 "MOV R1, #0x100 \n"
535 "BL sub_003FACA0 \n"
536 "LDR R0, =0xFF8AD370 \n"
537 "MOV R1, #0x100 \n"
538 "BL sub_FF959BEC \n"
539 "LDR R0, [R6, #0x1C] \n"
540 "MOV R2, R7 \n"
541 "MOV R1, #0x100 \n"
542 "BL sub_003FABAC \n"
543 "TST R0, #1 \n"
544 "BEQ loc_FF8B1B3C \n"
545 "LDR R1, =0x1584 \n"
546 "B loc_FF8B1C0C \n"
547 "loc_FF8B1B98:\n"
548 "CMP R1, #0x2A \n"
549 "BNE loc_FF8B1BB0 \n"
550 "loc_FF8B1BA0:\n"
551 "LDR R0, [SP, #0x28] \n"
552 "ADD R1, SP, #0xC \n"
553 "BL sub_FF8B19FC \n"
554 "B loc_FF8B1B3C \n"
555 "loc_FF8B1BB0:\n"
556 "CMP R1, #0x2D \n"
557 "BNE loc_FF8B1BC8 \n"
558 "BL sub_FF89E640 \n"
559 "BL sub_FF89F328 \n"
560 "BL sub_FF89EE90 \n"
561 "B loc_FF8B1B3C \n"
562 "loc_FF8B1BC8:\n"
563 "CMP R1, #0x2E \n"
564 "BNE loc_FF8B1C18 \n"
565 "LDR R0, [R6, #0x1C] \n"
566 "MOV R1, #4 \n"
567 "BL sub_003FACA0 \n"
568 "LDR R1, =0xFF8AD390 \n"
569 "LDR R0, =0xFFFFF400 \n"
570 "MOV R2, #4 \n"
571 "BL sub_FF89E090 \n"
572 "BL sub_FF89E320 \n"
573 "LDR R0, [R6, #0x1C] \n"
574 "MOV R2, R7 \n"
575 "MOV R1, #4 \n"
576 "BL sub_003FAAC8 \n"
577 "TST R0, #1 \n"
578 "BEQ loc_FF8B1B3C \n"
579 "LDR R1, =0x15AC \n"
580 "loc_FF8B1C0C:\n"
581 "LDR R0, =0xFF8ADA84 \n"
582 "BL _DebugAssert \n"
583 "B loc_FF8B1B3C \n"
584 "loc_FF8B1C18:\n"
585 "LDR R0, [SP, #0x28] \n"
586 "MOV R8, #1 \n"
587 "LDR R1, [R0] \n"
588 "CMP R1, #0x12 \n"
589 "CMPNE R1, #0x13 \n"
590 "BNE loc_FF8B1C80 \n"
591 "LDR R1, [R0, #0x7C] \n"
592 "ADD R1, R1, R1, LSL #1 \n"
593 "ADD R1, R0, R1, LSL #2 \n"
594 "SUB R1, R1, #8 \n"
595 "LDMIA R1, {R2,R3,R9} \n"
596 "STMIA R5, {R2,R3,R9} \n"
597 "BL sub_FF8AFF9C \n"
598 "LDR R0, [SP, #0x28] \n"
599 "LDR R1, [R0, #0x7C] \n"
600 "LDR R3, [R0, #0x8C] \n"
601 "LDR R2, [R0, #0x90] \n"
602 "ADD R0, R0, #4 \n"
603 "BLX R3 \n"
604 "LDR R0, [SP, #0x28] \n"
605 "BL sub_FF8B3230 \n"
606 "LDR R0, [SP, #0x28] \n"
607 "LDR R1, [R0, #0x7C] \n"
608 "LDR R2, [R0, #0x98] \n"
609 "LDR R3, [R0, #0x94] \n"
610 "B loc_FF8B1F98 \n"
611 "loc_FF8B1C80:\n"
612 "CMP R1, #0x14 \n"
613 "CMPNE R1, #0x15 \n"
614 "CMPNE R1, #0x16 \n"
615 "CMPNE R1, #0x17 \n"
616 "BNE loc_FF8B1D38 \n"
617 "ADD R3, SP, #0xC \n"
618 "MOV R2, SP \n"
619 "ADD R1, SP, #0x1C \n"
620 "BL sub_FF8B01FC \n"
621 "CMP R0, #1 \n"
622 "MOV R9, R0 \n"
623 "CMPNE R9, #5 \n"
624 "BNE loc_FF8B1CD4 \n"
625 "LDR R0, [SP, #0x28] \n"
626 "MOV R2, R9 \n"
627 "LDR R1, [R0, #0x7C]! \n"
628 "LDR R12, [R0, #0x10]! \n"
629 "LDR R3, [R0, #4] \n"
630 "MOV R0, SP \n"
631 "BLX R12 \n"
632 "B loc_FF8B1D0C \n"
633 "loc_FF8B1CD4:\n"
634 "LDR R0, [SP, #0x28] \n"
635 "CMP R9, #2 \n"
636 "LDR R3, [R0, #0x90] \n"
637 "CMPNE R9, #6 \n"
638 "BNE loc_FF8B1D20 \n"
639 "LDR R12, [R0, #0x8C] \n"
640 "MOV R2, R9 \n"
641 "MOV R1, #1 \n"
642 "MOV R0, SP \n"
643 "BLX R12 \n"
644 "LDR R0, [SP, #0x28] \n"
645 "MOV R2, SP \n"
646 "ADD R1, SP, #0x1C \n"
647 "BL sub_FF8B16EC \n"
648 "loc_FF8B1D0C:\n"
649 "LDR R0, [SP, #0x28] \n"
650 "LDR R2, [SP, #0xC] \n"
651 "MOV R1, R9 \n"
652 "BL sub_FF8B193C \n"
653 "B loc_FF8B1FA0 \n"
654 "loc_FF8B1D20:\n"
655 "LDR R1, [R0, #0x7C] \n"
656 "LDR R12, [R0, #0x8C] \n"
657 "MOV R2, R9 \n"
658 "ADD R0, R0, #4 \n"
659 "BLX R12 \n"
660 "B loc_FF8B1FA0 \n"
661 "loc_FF8B1D38:\n"
662 "CMP R1, #0x24 \n"
663 "CMPNE R1, #0x25 \n"
664 "BNE loc_FF8B1D84 \n"
665 "LDR R1, [R0, #0x7C] \n"
666 "ADD R1, R1, R1, LSL #1 \n"
667 "ADD R1, R0, R1, LSL #2 \n"
668 "SUB R1, R1, #8 \n"
669 "LDMIA R1, {R2,R3,R9} \n"
670 "STMIA R5, {R2,R3,R9} \n"
671 "BL sub_FF8AEF88 \n"
672 "LDR R0, [SP, #0x28] \n"
673 "LDR R1, [R0, #0x7C] \n"
674 "LDR R3, [R0, #0x8C] \n"
675 "LDR R2, [R0, #0x90] \n"
676 "ADD R0, R0, #4 \n"
677 "BLX R3 \n"
678 "LDR R0, [SP, #0x28] \n"
679 "BL sub_FF8AF3C8 \n"
680 "B loc_FF8B1FA0 \n"
681 "loc_FF8B1D84:\n"
682 "ADD R1, R0, #4 \n"
683 "LDMIA R1, {R2,R3,R9} \n"
684 "STMIA R5, {R2,R3,R9} \n"
685 "LDR R1, [R0] \n"
686 "CMP R1, #0x28 \n"
687 "ADDCC PC, PC, R1, LSL #2 \n"
688 "B loc_FF8B1F88 \n"
689 "B loc_FF8B1E40 \n"
690 "B loc_FF8B1E40 \n"
691 "B loc_FF8B1E48 \n"
692 "B loc_FF8B1E50 \n"
693 "B loc_FF8B1E50 \n"
694 "B loc_FF8B1E50 \n"
695 "B loc_FF8B1E40 \n"
696 "B loc_FF8B1E48 \n"
697 "B loc_FF8B1E50 \n"
698 "B loc_FF8B1E50 \n"
699 "B loc_FF8B1E68 \n"
700 "B loc_FF8B1E68 \n"
701 "B loc_FF8B1F74 \n"
702 "B loc_FF8B1F7C \n"
703 "B loc_FF8B1F7C \n"
704 "B loc_FF8B1F7C \n"
705 "B loc_FF8B1F7C \n"
706 "B loc_FF8B1F84 \n"
707 "B loc_FF8B1F88 \n"
708 "B loc_FF8B1F88 \n"
709 "B loc_FF8B1F88 \n"
710 "B loc_FF8B1F88 \n"
711 "B loc_FF8B1F88 \n"
712 "B loc_FF8B1F88 \n"
713 "B loc_FF8B1E58 \n"
714 "B loc_FF8B1E60 \n"
715 "B loc_FF8B1E60 \n"
716 "B loc_FF8B1E60 \n"
717 "B loc_FF8B1E74 \n"
718 "B loc_FF8B1E74 \n"
719 "B loc_FF8B1E7C \n"
720 "B loc_FF8B1EB4 \n"
721 "B loc_FF8B1EEC \n"
722 "B loc_FF8B1F24 \n"
723 "B loc_FF8B1F5C \n"
724 "B loc_FF8B1F5C \n"
725 "B loc_FF8B1F88 \n"
726 "B loc_FF8B1F88 \n"
727 "B loc_FF8B1F64 \n"
728 "B loc_FF8B1F6C \n"
729 "loc_FF8B1E40:\n"
730 "BL sub_FF8AD908 \n"
731 "B loc_FF8B1F88 \n"
732 "loc_FF8B1E48:\n"
733 "BL sub_FF8ADBAC \n"
734 "B loc_FF8B1F88 \n"
735 "loc_FF8B1E50:\n"
736 "BL sub_FF8ADDD4 \n"
737 "B loc_FF8B1F88 \n"
738 "loc_FF8B1E58:\n"
739 "BL sub_FF8AE0F8 \n"
740 "B loc_FF8B1F88 \n"
741 "loc_FF8B1E60:\n"
742 "BL sub_FF8AE310 \n"
743 "B loc_FF8B1F88 \n"
744 "loc_FF8B1E68:\n"
745
746 "BL sub_FF8AE6BC_my \n"
747 "MOV R8, #0 \n"
748 "B loc_FF8B1F88 \n"
749 "loc_FF8B1E74:\n"
750 "BL sub_FF8AE7FC \n"
751 "B loc_FF8B1F88 \n"
752 "loc_FF8B1E7C:\n"
753 "LDRH R1, [R0, #4] \n"
754 "STRH R1, [SP, #0x1C] \n"
755 "LDRH R1, [R4, #2] \n"
756 "STRH R1, [SP, #0x1E] \n"
757 "LDRH R1, [R4, #4] \n"
758 "STRH R1, [SP, #0x20] \n"
759 "LDRH R1, [R4, #6] \n"
760 "STRH R1, [SP, #0x22] \n"
761 "LDRH R1, [R0, #0xC] \n"
762 "STRH R1, [SP, #0x24] \n"
763 "LDRH R1, [R4, #0xA] \n"
764 "STRH R1, [SP, #0x26] \n"
765 "BL sub_FF8B2EC0 \n"
766 "B loc_FF8B1F88 \n"
767 "loc_FF8B1EB4:\n"
768 "LDRH R1, [R0, #4] \n"
769 "STRH R1, [SP, #0x1C] \n"
770 "LDRH R1, [R4, #2] \n"
771 "STRH R1, [SP, #0x1E] \n"
772 "LDRH R1, [R4, #4] \n"
773 "STRH R1, [SP, #0x20] \n"
774 "LDRH R1, [R4, #6] \n"
775 "STRH R1, [SP, #0x22] \n"
776 "LDRH R1, [R4, #8] \n"
777 "STRH R1, [SP, #0x24] \n"
778 "LDRH R1, [R4, #0xA] \n"
779 "STRH R1, [SP, #0x26] \n"
780 "BL sub_FF8B3030 \n"
781 "B loc_FF8B1F88 \n"
782 "loc_FF8B1EEC:\n"
783 "LDRH R1, [R4] \n"
784 "STRH R1, [SP, #0x1C] \n"
785 "LDRH R1, [R0, #6] \n"
786 "STRH R1, [SP, #0x1E] \n"
787 "LDRH R1, [R4, #4] \n"
788 "STRH R1, [SP, #0x20] \n"
789 "LDRH R1, [R4, #6] \n"
790 "STRH R1, [SP, #0x22] \n"
791 "LDRH R1, [R4, #8] \n"
792 "STRH R1, [SP, #0x24] \n"
793 "LDRH R1, [R4, #0xA] \n"
794 "STRH R1, [SP, #0x26] \n"
795 "BL sub_FF8B30E4 \n"
796 "B loc_FF8B1F88 \n"
797 "loc_FF8B1F24:\n"
798 "LDRH R1, [R4] \n"
799 "STRH R1, [SP, #0x1C] \n"
800 "LDRH R1, [R4, #2] \n"
801 "STRH R1, [SP, #0x1E] \n"
802 "LDRH R1, [R4, #4] \n"
803 "STRH R1, [SP, #0x20] \n"
804 "LDRH R1, [R4, #6] \n"
805 "STRH R1, [SP, #0x22] \n"
806 "LDRH R1, [R0, #0xC] \n"
807 "STRH R1, [SP, #0x24] \n"
808 "LDRH R1, [R4, #0xA] \n"
809 "STRH R1, [SP, #0x26] \n"
810 "BL sub_FF8B318C \n"
811 "B loc_FF8B1F88 \n"
812 "loc_FF8B1F5C:\n"
813 "BL sub_FF8AED3C \n"
814 "B loc_FF8B1F88 \n"
815 "loc_FF8B1F64:\n"
816 "BL sub_FF8AF4CC \n"
817 "B loc_FF8B1F88 \n"
818 "loc_FF8B1F6C:\n"
819 "BL sub_FF8AF7B0 \n"
820 "B loc_FF8B1F88 \n"
821 "loc_FF8B1F74:\n"
822 "BL sub_FF8AFA70 \n"
823 "B loc_FF8B1F88 \n"
824 "loc_FF8B1F7C:\n"
825 "BL sub_FF8AFC2C \n"
826 "B loc_FF8B1F88 \n"
827 "loc_FF8B1F84:\n"
828 "BL sub_FF8AFD94 \n"
829 "loc_FF8B1F88:\n"
830 "LDR R0, [SP, #0x28] \n"
831 "LDR R1, [R0, #0x7C] \n"
832 "LDR R2, [R0, #0x90] \n"
833 "LDR R3, [R0, #0x8C] \n"
834 "loc_FF8B1F98:\n"
835 "ADD R0, R0, #4 \n"
836 "BLX R3 \n"
837 "loc_FF8B1FA0:\n"
838 "LDR R0, [SP, #0x28] \n"
839 "LDR R0, [R0] \n"
840 "CMP R0, #0x10 \n"
841 "BEQ loc_FF8B1FD8 \n"
842 "BGT loc_FF8B1FC8 \n"
843 "CMP R0, #1 \n"
844 "CMPNE R0, #4 \n"
845 "CMPNE R0, #0xE \n"
846 "BNE loc_FF8B200C \n"
847 "B loc_FF8B1FD8 \n"
848 "loc_FF8B1FC8:\n"
849 "CMP R0, #0x13 \n"
850 "CMPNE R0, #0x17 \n"
851 "CMPNE R0, #0x1A \n"
852 "BNE loc_FF8B200C \n"
853 "loc_FF8B1FD8:\n"
854 "LDRSH R0, [R4] \n"
855 "CMN R0, #0xC00 \n"
856 "LDRNESH R1, [R4, #8] \n"
857 "CMNNE R1, #0xC00 \n"
858 "STRNEH R0, [SP, #0x1C] \n"
859 "STRNEH R1, [SP, #0x24] \n"
860 "BNE loc_FF8B200C \n"
861 "ADD R0, SP, #0x10 \n"
862 "BL sub_FF8B343C \n"
863 "LDRH R0, [SP, #0x10] \n"
864 "STRH R0, [SP, #0x1C] \n"
865 "LDRH R0, [SP, #0x18] \n"
866 "STRH R0, [SP, #0x24] \n"
867 "loc_FF8B200C:\n"
868 "LDR R0, [SP, #0x28] \n"
869 "CMP R8, #1 \n"
870 "BNE loc_FF8B205C \n"
871 "LDR R1, [R0, #0x7C] \n"
872 "MOV R2, #0xC \n"
873 "ADD R1, R1, R1, LSL #1 \n"
874 "ADD R0, R0, R1, LSL #2 \n"
875 "SUB R8, R0, #8 \n"
876 "LDR R0, =0x5465C \n"
877 "ADD R1, SP, #0x1C \n"
878 "BL sub_003FC17C \n"
879 "LDR R0, =0x54668 \n"
880 "MOV R2, #0xC \n"
881 "ADD R1, SP, #0x1C \n"
882 "BL sub_003FC17C \n"
883 "LDR R0, =0x54674 \n"
884 "MOV R2, #0xC \n"
885 "MOV R1, R8 \n"
886 "BL sub_003FC17C \n"
887 "B loc_FF8B20D4 \n"
888 "loc_FF8B205C:\n"
889 "LDR R0, [R0] \n"
890 "MOV R3, #1 \n"
891 "CMP R0, #0xB \n"
892 "BNE loc_FF8B20A0 \n"
893 "MOV R2, #0 \n"
894 "STRD R2, [SP] \n"
895 "MOV R2, R3 \n"
896 "MOV R1, R3 \n"
897 "MOV R0, #0 \n"
898 "BL sub_FF8AD6E8 \n"
899 "MOV R3, #1 \n"
900 "MOV R2, #0 \n"
901 "STRD R2, [SP] \n"
902 "MOV R2, R3 \n"
903 "MOV R1, R3 \n"
904 "MOV R0, #0 \n"
905 "B loc_FF8B20D0 \n"
906 "loc_FF8B20A0:\n"
907 "MOV R2, #1 \n"
908 "STRD R2, [SP] \n"
909 "MOV R3, R2 \n"
910 "MOV R1, R2 \n"
911 "MOV R0, R2 \n"
912 "BL sub_FF8AD6E8 \n"
913 "MOV R3, #1 \n"
914 "MOV R2, R3 \n"
915 "MOV R1, R3 \n"
916 "MOV R0, R3 \n"
917 "STR R3, [SP] \n"
918 "STR R3, [SP, #4] \n"
919 "loc_FF8B20D0:\n"
920 "BL sub_FF8AD854 \n"
921 "loc_FF8B20D4:\n"
922 "LDR R0, [SP, #0x28] \n"
923 "BL sub_FF8B2E2C \n"
924 "B loc_FF8B1A6C \n"
925 );
926 }
927
928
929
930 void __attribute__((naked,noinline)) sub_FF8AE6BC_my() {
931 asm volatile (
932 "STMFD SP!, {R4-R8,LR} \n"
933 "LDR R7, =0x3E3C \n"
934 "MOV R4, R0 \n"
935 "LDR R0, [R7, #0x1C] \n"
936 "MOV R1, #0x3E \n"
937 "BL sub_003FACA0 \n"
938 "MOV R2, #0 \n"
939 "LDRSH R0, [R4, #4] \n"
940 "MOV R1, R2 \n"
941 "BL sub_FF8AD3F0 \n"
942 "MOV R6, R0 \n"
943 "LDRSH R0, [R4, #6] \n"
944 "BL sub_FF8AD540 \n"
945 "LDRSH R0, [R4, #8] \n"
946 "BL sub_FF8AD598 \n"
947 "LDRSH R0, [R4, #0xA] \n"
948 "BL sub_FF8AD5F0 \n"
949 "LDRSH R0, [R4, #0xC] \n"
950 "MOV R1, #0 \n"
951 "BL sub_FF8AD648 \n"
952 "MOV R5, R0 \n"
953 "LDR R0, [R4] \n"
954 "LDR R8, =0x54674 \n"
955 "CMP R0, #0xB \n"
956 "MOVEQ R6, #0 \n"
957 "MOVEQ R5, R6 \n"
958 "BEQ loc_FF8AE750 \n"
959 "CMP R6, #1 \n"
960 "BNE loc_FF8AE750 \n"
961 "LDRSH R0, [R4, #4] \n"
962 "LDR R1, =0xFF8AD350 \n"
963 "MOV R2, #2 \n"
964 "BL sub_FF959AD0 \n"
965 "STRH R0, [R4, #4] \n"
966 "MOV R0, #0 \n"
967 "STR R0, [R7, #0x28] \n"
968 "B loc_FF8AE758 \n"
969 "loc_FF8AE750:\n"
970 "LDRH R0, [R8] \n"
971 "STRH R0, [R4, #4] \n"
972 "loc_FF8AE758:\n"
973 "CMP R5, #1 \n"
974 "LDRNEH R0, [R8, #8] \n"
975 "BNE loc_FF8AE774 \n"
976 "LDRSH R0, [R4, #0xC] \n"
977 "LDR R1, =0xFF8AD3D4 \n"
978 "MOV R2, #0x20 \n"
979 "BL sub_FF8B2E7C \n"
980 "loc_FF8AE774:\n"
981 "STRH R0, [R4, #0xC] \n"
982 "LDRSH R0, [R4, #6] \n"
983
984 "BL sub_FF89E38C_my \n"
985 "B sub_FF8AE780 \n"
986 );
987 }
988
989
990
991 void __attribute__((naked,noinline)) sub_FF89E38C_my() {
992 asm volatile (
993 "STMFD SP!, {R4-R6,LR} \n"
994 "LDR R5, =0x3AC8 \n"
995 "MOV R4, R0 \n"
996 "LDR R0, [R5, #4] \n"
997 "CMP R0, #1 \n"
998 "LDRNE R1, =0x14D \n"
999 "LDRNE R0, =0xFF89E1C4 \n"
1000 "BLNE _DebugAssert \n"
1001 "CMN R4, #0xC00 \n"
1002 "LDREQSH R4, [R5, #2] \n"
1003 "CMN R4, #0xC00 \n"
1004 "LDREQ R1, =0x153 \n"
1005 "LDREQ R0, =0xFF89E1C4 \n"
1006 "STRH R4, [R5, #2] \n"
1007 "BLEQ _DebugAssert \n"
1008 "MOV R0, R4 \n"
1009
1010 "BL apex2us \n"
1011 "MOV R4, R0 \n"
1012 "BL sub_FF8EC460 \n"
1013 "MOV R0, R4 \n"
1014 "BL sub_FF8F4C68 \n"
1015 "TST R0, #1 \n"
1016 "LDMEQFD SP!, {R4-R6,PC} \n"
1017 "LDMFD SP!, {R4-R6,LR} \n"
1018 "MOV R1, #0x158 \n"
1019 "LDR R0, =0xFF89E1C4 \n"
1020 "B _DebugAssert \n"
1021 );
1022 }