This source file includes following definitions.
- sub_FF934548_my
- sub_FF861320_my
- task_CaptSeqTask_my
- exp_drv_task
- sub_FF89B5C0_my
- sub_FF88CE00_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6 static long *nrflag = (long*)(0x64E8);
7
8 #include "../../../generic/capt_seq.c"
9
10
11 void __attribute__((naked,noinline)) sub_FF934548_my() {
12 asm volatile (
13 " STMFD SP!, {R0-R8,LR}\n"
14 " MOV R4, R0\n"
15 " BL sub_FF9352A0\n"
16 " MVN R1, #0\n"
17 " BL sub_FF869BF4\n"
18 " LDR R5, =0x64E8\n"
19 " LDR R0, [R5,#0xC]\n"
20 " CMP R0, #0\n"
21 " BNE loc_FF934598\n"
22 " MOV R1, #1\n"
23 " MOV R0, #0\n"
24 " BL sub_FF827478\n"
25 " STR R0, [R5,#0xC]\n"
26 " MOV R3, #0\n"
27 " STR R3, [SP]\n"
28 " LDR R3, =0xFF934004\n"
29 " LDR R0, =0xFF9347C8\n"
30 " MOV R2, #0x400\n"
31 " MOV R1, #0x17\n"
32 " BL sub_FF827444\n"
33 "loc_FF934598:\n"
34 " MOV R2, #4\n"
35 " ADD R1, SP, #8\n"
36 " MOV R0, #0x8A\n"
37 " BL sub_FF871CCC\n"
38 " TST R0, #1\n"
39 " LDRNE R1, =0x3AE\n"
40 " LDRNE R0, =0xFF93429C\n"
41 " BLNE sub_FF81B284\n"
42 " LDR R8, =0x1441C\n"
43 " LDR R7, =0x14358\n"
44 " LDRSH R1, [R8,#0xE]\n"
45 " LDR R0, [R7,#0x8C]\n"
46 " BL sub_FF8F68C8\n"
47 " BL sub_FF8497D0\n"
48 " LDR R3, =0x64F0\n"
49 " STRH R0, [R4,#0x9C]\n"
50 " SUB R2, R3, #4\n"
51 " STRD R2, [SP]\n"
52 " MOV R1, R0\n"
53 " LDRH R0, [R7,#0x5C]\n"
54 " LDRSH R2, [R8,#0xC]\n"
55 " SUB R3, R3, #8\n"
56 " BL sub_FF9368B4\n"
57 " BL wait_until_remote_button_is_released\n"
58 " BL capt_seq_hook_set_nr\n"
59 " B sub_FF9345F4\n"
60 );
61 }
62
63 void __attribute__((naked,noinline)) sub_FF861320_my() {
64 asm volatile (
65 " STMFD SP!, {R4-R6,LR}\n"
66 " LDR R4, [R0,#0xC]\n"
67 " LDR R6, =0x14358\n"
68 " LDR R0, [R4,#8]\n"
69 " MOV R5, #0\n"
70 " ORR R0, R0, #1\n"
71 " STR R0, [R4,#8]\n"
72 " LDR R0, [R6,#0x24]\n"
73 " CMP R0, #0\n"
74 " MOVEQ R0, #2\n"
75 " BLEQ sub_FF85C65C\n"
76 " BL sub_FF861854\n"
77 " LDR R0, [R6,#0x24]\n"
78 " CMP R0, #0\n"
79 " BNE loc_FF8613D0\n"
80 " MOV R0, #0\n"
81 " BL sub_FF935130\n"
82 " MOV R0, R4\n"
83 " BL sub_FF861BA4\n"
84 " MOV R0, R4\n"
85 " BL sub_FF933130\n"
86 " CMP R0, #0\n"
87 " BEQ loc_FF8613A0\n"
88 " BL sub_FF935170\n"
89 " MOV R0, R4\n"
90 " BL sub_FF933214\n"
91 " TST R0, #1\n"
92 " MOVNE R2, R4\n"
93 " LDMNEFD SP!, {R4-R6,LR}\n"
94 " MOVNE R1, #1\n"
95 " BNE sub_FF85F284\n"
96 " B loc_FF8613AC\n"
97 "loc_FF8613A0:\n"
98 " MOV R0, R4\n"
99 " BL sub_FF9331B0\n"
100 " BL sub_FF935170\n"
101 "loc_FF8613AC:\n"
102 " MOV R0, R4\n"
103 " BL sub_FF860A18\n"
104 " MOV R0, R4\n"
105 " BL sub_FF934460\n"
106 " BL sub_FF934FC0\n"
107 " MOV R0, R4\n"
108 " BL sub_FF934548_my\n"
109 " MOV R5, R0\n"
110 " B loc_FF8613E0\n"
111 "loc_FF8613D0:\n"
112 " LDR R0, =0x2AA0\n"
113 " LDR R0, [R0,#0x10]\n"
114 " CMP R0, #0\n"
115 " MOVNE R5, #0x1D\n"
116 "loc_FF8613E0:\n"
117 " BL capt_seq_hook_raw_here\n"
118 " BL sub_FF8640F4\n"
119 " BL sub_FF86413C\n"
120 " BL sub_FF86417C\n"
121 " MOV R2, R4\n"
122 " MOV R1, #1\n"
123 " MOV R0, R5\n"
124 " BL sub_FF85F284\n"
125 " BL sub_FF9347F4\n"
126 " CMP R0, #0\n"
127 " LDRNE R0, [R4,#8]\n"
128 " ORRNE R0, R0, #0x2000\n"
129 " STRNE R0, [R4,#8]\n"
130 " LDMFD SP!, {R4-R6,PC}\n"
131 );
132 }
133
134 void __attribute__((naked,noinline)) task_CaptSeqTask_my() {
135 asm volatile (
136 " STMFD SP!, {R3-R9,LR}\n"
137 " LDR R6, =0x2AA0\n"
138 " LDR R4, =0x14358\n"
139 " MOV R9, #1\n"
140 " MOV R7, #0\n"
141 "loc_FF860F48:\n"
142 " LDR R0, [R6,#4]\n"
143 " MOV R2, #0\n"
144 " MOV R1, SP\n"
145 " BL sub_FF826C30\n"
146 " TST R0, #1\n"
147 " BEQ loc_FF860F74\n"
148 " LDR R1, =0x588\n"
149 " LDR R0, =0xFF860A98\n"
150 " BL sub_FF81B284\n"
151 " BL sub_FF81B23C\n"
152 " LDMFD SP!, {R3-R9,PC}\n"
153 "loc_FF860F74:\n"
154 " LDR R0, [SP]\n"
155 " LDR R1, [R0]\n"
156 " CMP R1, #0x1E\n"
157 " ADDLS PC, PC, R1,LSL#2\n"
158 " B loc_FF8611FC\n"
159 " B loc_FF861004\n"
160 " B loc_FF861068\n"
161 " B loc_FF8610A4\n"
162 " B loc_FF8610B8\n"
163 " B loc_FF8610B0\n"
164 " B loc_FF8610C0\n"
165 " B loc_FF8610C8\n"
166 " B loc_FF8610D0\n"
167 " B loc_FF861128\n"
168 " B loc_FF861150\n"
169 " B loc_FF861134\n"
170 " B loc_FF861140\n"
171 " B loc_FF861148\n"
172 " B loc_FF861158\n"
173 " B loc_FF861160\n"
174 " B loc_FF861168\n"
175 " B loc_FF861170\n"
176 " B loc_FF861178\n"
177 " B loc_FF861180\n"
178 " B loc_FF861188\n"
179 " B loc_FF861190\n"
180 " B loc_FF861198\n"
181 " B loc_FF8611A4\n"
182 " B loc_FF8611AC\n"
183 " B loc_FF8611B8\n"
184 " B loc_FF8611C0\n"
185 " B loc_FF8611C8\n"
186 " B loc_FF8611D0\n"
187 " B loc_FF8611D8\n"
188 " B loc_FF8611E4\n"
189 " B loc_FF861208\n"
190 "loc_FF861004:\n"
191
192 " BL sub_FF861864\n"
193
194 " BL captseq_hack_override_active\n"
195 " STR R0,[SP,#-4]!\n"
196 " BL shooting_expo_param_override\n"
197 " BL sub_FF85ED58\n"
198 " LDR R0,[SP],#4\n"
199 " CMP R0, #1\n"
200 " MOVEQ R0, #0\n"
201 " STREQ R0, [R4,#0x24]\n"
202 " LDRNE R0, [R4,#0x24]\n"
203 " CMPNE R0, #0\n"
204 " BEQ loc_FF861208\n"
205 " BL sub_FF860774\n"
206 " MOV R5, R0\n"
207 " LDR R0, [R4,#0x24]\n"
208 " CMP R0, #0\n"
209 " BEQ loc_FF86104C\n"
210 " MOV R0, #0xC\n"
211 " BL sub_FF8659A4\n"
212 " TST R0, #1\n"
213 " STRNE R9, [R6,#0x10]\n"
214 " LDRNE R0, [R5,#8]\n"
215 " ORRNE R0, R0, #0x40000000\n"
216 " STRNE R0, [R5,#8]\n"
217 " BNE loc_FF861208\n"
218 "loc_FF86104C:\n"
219 " MOV R0, R5\n"
220 " BL sub_FF860A18\n"
221 " MOV R0, R5\n"
222 " BL sub_FF934548_my\n"
223 " TST R0, #1\n"
224 " STRNE R9, [R6,#0x10]\n"
225 " B loc_FF861208\n"
226 "loc_FF861068:\n"
227
228
229 " LDR R0, [R4,#0x24]\n"
230 " CMP R0, #0\n"
231 " BNE loc_FF861094\n"
232 " MOV R0, #0xC\n"
233 " BL sub_FF8659A4\n"
234 " TST R0, #1\n"
235 " LDRNE R0, [SP]\n"
236 " MOVNE R1, #1\n"
237 " LDRNE R2, [R0,#0xC]\n"
238 " MOVNE R0, #1\n"
239 " BNE loc_FF861120\n"
240 "loc_FF861094:\n"
241 " LDR R0, [SP]\n"
242 " BL sub_FF861320_my\n"
243 "loc_FF86109C:\n"
244 " STR R7, [R4,#0x24]\n"
245 " B loc_FF861208\n"
246 "loc_FF8610A4:\n"
247
248 " MOV R0, #1\n"
249 " BL sub_FF861A7C\n"
250 " B loc_FF861208\n"
251 "loc_FF8610B0:\n"
252
253 " BL sub_FF8614AC\n"
254 " B loc_FF86109C\n"
255 "loc_FF8610B8:\n"
256
257 " BL sub_FF861844\n"
258 " B loc_FF86109C\n"
259 "loc_FF8610C0:\n"
260
261 " BL sub_FF86184C\n"
262 " B loc_FF861208\n"
263 "loc_FF8610C8:\n"
264
265 " BL sub_FF86199C\n"
266 " B loc_FF86112C\n"
267 "loc_FF8610D0:\n"
268
269 " LDR R5, [R0,#0xC]\n"
270 " BL sub_FF861854\n"
271 " MOV R0, R5\n"
272 " BL sub_FF93351C\n"
273 " TST R0, #1\n"
274 " MOV R8, R0\n"
275 " BNE loc_FF861110\n"
276 " BL sub_FF871E5C\n"
277 " STR R0, [R5,#0x18]\n"
278 " MOV R0, R5\n"
279 " BL sub_FF934460\n"
280 " MOV R0, R5\n"
281 " BL sub_FF934850\n"
282 " MOV R8, R0\n"
283 " LDR R0, [R5,#0x18]\n"
284 " BL sub_FF872070\n"
285 "loc_FF861110:\n"
286 " BL sub_FF861844\n"
287 " MOV R2, R5\n"
288 " MOV R1, #9\n"
289 " MOV R0, R8\n"
290 "loc_FF861120:\n"
291 " BL sub_FF85F284\n"
292 " B loc_FF861208\n"
293 "loc_FF861128:\n"
294
295 " BL sub_FF8619FC\n"
296 "loc_FF86112C:\n"
297 " BL sub_FF85ED58\n"
298 " B loc_FF861208\n"
299 "loc_FF861134:\n"
300
301 " LDR R0, [R4,#0x54]\n"
302 " BL sub_FF861E10\n"
303 " B loc_FF861208\n"
304 "loc_FF861140:\n"
305
306 " BL sub_FF8620B8\n"
307 " B loc_FF861208\n"
308 "loc_FF861148:\n"
309
310 " BL sub_FF86214C\n"
311 " B loc_FF861208\n"
312 "loc_FF861150:\n"
313
314 " BL sub_FF861844\n"
315 " B loc_FF861208\n"
316 "loc_FF861158:\n"
317
318 " BL sub_FF93373C\n"
319 " B loc_FF861208\n"
320 "loc_FF861160:\n"
321
322 " BL sub_FF933924\n"
323 " B loc_FF861208\n"
324 "loc_FF861168:\n"
325
326 " BL sub_FF9339B4\n"
327 " B loc_FF861208\n"
328 "loc_FF861170:\n"
329
330 " BL sub_FF933A68\n"
331 " B loc_FF861208\n"
332 "loc_FF861178:\n"
333
334 " MOV R0, #0\n"
335 " B loc_FF86119C\n"
336 "loc_FF861180:\n"
337
338 " BL sub_FF933DC4\n"
339 " B loc_FF861208\n"
340 "loc_FF861188:\n"
341
342 " BL sub_FF933E54\n"
343 " B loc_FF861208\n"
344 "loc_FF861190:\n"
345
346 " BL sub_FF933F14\n"
347 " B loc_FF861208\n"
348 "loc_FF861198:\n"
349
350 " MOV R0, #1\n"
351 "loc_FF86119C:\n"
352 " BL sub_FF933C8C\n"
353 " B loc_FF861208\n"
354 "loc_FF8611A4:\n"
355
356 " BL sub_FF861BFC\n"
357 " B loc_FF861208\n"
358 "loc_FF8611AC:\n"
359
360 " BL sub_FF861C9C\n"
361 " BL sub_FF824A48\n"
362 " B loc_FF861208\n"
363 "loc_FF8611B8:\n"
364
365 " BL sub_FF933B24\n"
366 " B loc_FF861208\n"
367 "loc_FF8611C0:\n"
368
369 " BL sub_FF933B90\n"
370 " B loc_FF861208\n"
371 "loc_FF8611C8:\n"
372
373 " BL sub_FF86408C\n"
374 " B loc_FF861208\n"
375 "loc_FF8611D0:\n"
376
377 " BL sub_FF8640F4\n"
378 " B loc_FF861208\n"
379 "loc_FF8611D8:\n"
380
381 " BL sub_FF864150\n"
382 " BL sub_FF864110\n"
383 " B loc_FF861208\n"
384 "loc_FF8611E4:\n"
385
386 " MOV R0, #1\n"
387 " BL sub_FF935130\n"
388 " LDRH R0, [R4,#0x98]\n"
389 " CMP R0, #4\n"
390 " BLNE sub_FF8643BC\n"
391 " B loc_FF861208\n"
392 "loc_FF8611FC:\n"
393
394 " LDR R1, =0x6C9\n"
395 " LDR R0, =0xFF860A98\n"
396 " BL sub_FF81B284\n"
397 "loc_FF861208:\n"
398
399 " LDR R0, [SP]\n"
400 " LDR R1, [R0,#4]\n"
401 " LDR R0, [R6]\n"
402 " BL sub_FF869BC0\n"
403 " LDR R5, [SP]\n"
404 " LDR R0, [R5,#8]\n"
405 " CMP R0, #0\n"
406 " LDREQ R1, =0x12B\n"
407 " LDREQ R0, =0xFF860A98\n"
408 " BLEQ sub_FF81B284\n"
409 " STR R7, [R5,#8]\n"
410 " B loc_FF860F48\n"
411 );
412 }
413
414
415 void __attribute__((naked,noinline)) exp_drv_task() {
416 asm volatile (
417 " STMFD SP!, {R4-R8,LR}\n"
418 " SUB SP, SP, #0x20\n"
419 " LDR R8, =0xBB8\n"
420 " LDR R7, =0x3D08\n"
421 " LDR R5, =0x18FAC\n"
422 " MOV R0, #0\n"
423 " ADD R6, SP, #0x10\n"
424 " STR R0, [SP,#0xC]\n"
425 "loc_FF89DC7C:\n"
426 " LDR R0, [R7,#0x20]\n"
427 " MOV R2, #0\n"
428 " ADD R1, SP, #0x1C\n"
429 " BL sub_FF826C30\n"
430 " LDR R0, [SP,#0xC]\n"
431 " CMP R0, #1\n"
432 " BNE loc_FF89DCC8\n"
433 " LDR R0, [SP,#0x1C]\n"
434 " LDR R0, [R0]\n"
435 " CMP R0, #0x13\n"
436 " CMPNE R0, #0x14\n"
437 " CMPNE R0, #0x15\n"
438 " CMPNE R0, #0x16\n"
439 " BEQ loc_FF89DDE4\n"
440 " CMP R0, #0x28\n"
441 " BEQ loc_FF89DDBC\n"
442 " ADD R1, SP, #0xC\n"
443 " MOV R0, #0\n"
444 " BL sub_FF89DC0C\n"
445 "loc_FF89DCC8:\n"
446 " LDR R0, [SP,#0x1C]\n"
447 " LDR R1, [R0]\n"
448 " CMP R1, #0x2D\n"
449 " BNE loc_FF89DCF8\n"
450 " LDR R0, [SP,#0x1C]\n"
451 " BL sub_FF89EF14\n"
452 " LDR R0, [R7,#0x1C]\n"
453 " MOV R1, #1\n"
454 " BL sub_FF869BC0\n"
455 " BL sub_FF81B23C\n"
456 " ADD SP, SP, #0x20\n"
457 " LDMFD SP!, {R4-R8,PC}\n"
458 "loc_FF89DCF8:\n"
459 " CMP R1, #0x2C\n"
460 " BNE loc_FF89DD14\n"
461 " LDR R2, [R0,#0x88]!\n"
462 " LDR R1, [R0,#4]\n"
463 " MOV R0, R1\n"
464 " BLX R2\n"
465 " B loc_FF89E20C\n"
466 "loc_FF89DD14:\n"
467 " CMP R1, #0x26\n"
468 " BNE loc_FF89DD64\n"
469 " LDR R0, [R7,#0x1C]\n"
470 " MOV R1, #0x80\n"
471 " BL sub_FF869BF4\n"
472 " LDR R0, =0xFF89A570\n"
473 " MOV R1, #0x80\n"
474 " BL sub_FF928074\n"
475 " LDR R0, [R7,#0x1C]\n"
476 " MOV R2, R8\n"
477 " MOV R1, #0x80\n"
478 " BL sub_FF869B00\n"
479 " TST R0, #1\n"
480 " LDRNE R1, =0xDD2\n"
481 " BNE loc_FF89DDA8\n"
482 "loc_FF89DD50:\n"
483 " LDR R1, [SP,#0x1C]\n"
484 " LDR R0, [R1,#0x8C]\n"
485 " LDR R1, [R1,#0x88]\n"
486 " BLX R1\n"
487 " B loc_FF89E20C\n"
488 "loc_FF89DD64:\n"
489 " CMP R1, #0x27\n"
490 " BNE loc_FF89DDB4\n"
491 " ADD R1, SP, #0xC\n"
492 " BL sub_FF89DC0C\n"
493 " LDR R0, [R7,#0x1C]\n"
494 " MOV R1, #0x100\n"
495 " BL sub_FF869BF4\n"
496 " LDR R0, =0xFF89A580\n"
497 " MOV R1, #0x100\n"
498 " BL sub_FF9282FC\n"
499 " LDR R0, [R7,#0x1C]\n"
500 " MOV R2, R8\n"
501 " MOV R1, #0x100\n"
502 " BL sub_FF869B00\n"
503 " TST R0, #1\n"
504 " BEQ loc_FF89DD50\n"
505 " LDR R1, =0xDDC\n"
506 "loc_FF89DDA8:\n"
507 " LDR R0, =0xFF89ABB0\n"
508 " BL _DebugAssert\n"
509 " B loc_FF89DD50\n"
510 "loc_FF89DDB4:\n"
511 " CMP R1, #0x28\n"
512 " BNE loc_FF89DDCC\n"
513 "loc_FF89DDBC:\n"
514 " LDR R0, [SP,#0x1C]\n"
515 " ADD R1, SP, #0xC\n"
516 " BL sub_FF89DC0C\n"
517 " B loc_FF89DD50\n"
518 "loc_FF89DDCC:\n"
519 " CMP R1, #0x2B\n"
520 " BNE loc_FF89DDE4\n"
521 " BL sub_FF88D090\n"
522 " BL sub_FF88DD1C\n"
523 " BL sub_FF88D854\n"
524 " B loc_FF89DD50\n"
525 "loc_FF89DDE4:\n"
526 " LDR R0, [SP,#0x1C]\n"
527 " MOV R4, #1\n"
528 " LDR R1, [R0]\n"
529 " CMP R1, #0x11\n"
530 " CMPNE R1, #0x12\n"
531 " BNE loc_FF89DE54\n"
532 " LDR R1, [R0,#0x7C]\n"
533 " ADD R1, R1, R1,LSL#1\n"
534 " ADD R1, R0, R1,LSL#2\n"
535 " SUB R1, R1, #8\n"
536 " LDMIA R1, {R2-R4}\n"
537 " STMIA R6, {R2-R4}\n"
538 " BL sub_FF89C648\n"
539 " LDR R0, [SP,#0x1C]\n"
540 " LDR R1, [R0,#0x7C]\n"
541 " LDR R3, [R0,#0x88]\n"
542 " LDR R2, [R0,#0x8C]\n"
543 " ADD R0, R0, #4\n"
544 " BLX R3\n"
545 " LDR R0, [SP,#0x1C]\n"
546 " BL sub_FF89F2CC\n"
547 " LDR R0, [SP,#0x1C]\n"
548 " LDR R1, [R0,#0x7C]\n"
549 " LDR R3, [R0,#0x90]\n"
550 " LDR R2, [R0,#0x94]\n"
551 " ADD R0, R0, #4\n"
552 " BLX R3\n"
553 " B loc_FF89E14C\n"
554 "loc_FF89DE54:\n"
555 " CMP R1, #0x13\n"
556 " CMPNE R1, #0x14\n"
557 " CMPNE R1, #0x15\n"
558 " CMPNE R1, #0x16\n"
559 " BNE loc_FF89DF0C\n"
560 " ADD R3, SP, #0xC\n"
561 " MOV R2, SP\n"
562 " ADD R1, SP, #0x10\n"
563 " BL sub_FF89C88C\n"
564 " CMP R0, #1\n"
565 " MOV R4, R0\n"
566 " CMPNE R4, #5\n"
567 " BNE loc_FF89DEA8\n"
568 " LDR R0, [SP,#0x1C]\n"
569 " MOV R2, R4\n"
570 " LDR R1, [R0,#0x7C]!\n"
571 " LDR R12, [R0,#0xC]!\n"
572 " LDR R3, [R0,#4]\n"
573 " MOV R0, SP\n"
574 " BLX R12\n"
575 " B loc_FF89DEE0\n"
576 "loc_FF89DEA8:\n"
577 " LDR R0, [SP,#0x1C]\n"
578 " CMP R4, #2\n"
579 " LDR R3, [R0,#0x8C]\n"
580 " CMPNE R4, #6\n"
581 " BNE loc_FF89DEF4\n"
582 " LDR R12, [R0,#0x88]\n"
583 " MOV R0, SP\n"
584 " MOV R2, R4\n"
585 " MOV R1, #1\n"
586 " BLX R12\n"
587 " LDR R0, [SP,#0x1C]\n"
588 " MOV R2, SP\n"
589 " ADD R1, SP, #0x10\n"
590 " BL sub_FF89D8E8\n"
591 "loc_FF89DEE0:\n"
592 " LDR R0, [SP,#0x1C]\n"
593 " LDR R2, [SP,#0xC]\n"
594 " MOV R1, R4\n"
595 " BL sub_FF89DBAC\n"
596 " B loc_FF89E14C\n"
597 "loc_FF89DEF4:\n"
598 " LDR R1, [R0,#0x7C]\n"
599 " LDR R12, [R0,#0x88]\n"
600 " ADD R0, R0, #4\n"
601 " MOV R2, R4\n"
602 " BLX R12\n"
603 " B loc_FF89E14C\n"
604 "loc_FF89DF0C:\n"
605 " CMP R1, #0x22\n"
606 " CMPNE R1, #0x23\n"
607 " BNE loc_FF89DF58\n"
608 " LDR R1, [R0,#0x7C]\n"
609 " ADD R1, R1, R1,LSL#1\n"
610 " ADD R1, R0, R1,LSL#2\n"
611 " SUB R1, R1, #8\n"
612 " LDMIA R1, {R2-R4}\n"
613 " STMIA R6, {R2-R4}\n"
614 " BL sub_FF89BBD4\n"
615 " LDR R0, [SP,#0x1C]\n"
616 " LDR R1, [R0,#0x7C]\n"
617 " LDR R3, [R0,#0x88]\n"
618 " LDR R2, [R0,#0x8C]\n"
619 " ADD R0, R0, #4\n"
620 " BLX R3\n"
621 " LDR R0, [SP,#0x1C]\n"
622 " BL sub_FF89BEC4\n"
623 " B loc_FF89E14C\n"
624 "loc_FF89DF58:\n"
625 " ADD R1, R0, #4\n"
626 " LDMIA R1, {R2,R3,R12}\n"
627 " STMIA R6, {R2,R3,R12}\n"
628 " LDR R1, [R0]\n"
629 " CMP R1, #0x25\n"
630 " ADDLS PC, PC, R1,LSL#2\n"
631 " B loc_FF89E12C\n"
632 " B loc_FF89E00C\n"
633 " B loc_FF89E00C\n"
634 " B loc_FF89E014\n"
635 " B loc_FF89E01C\n"
636 " B loc_FF89E01C\n"
637 " B loc_FF89E01C\n"
638 " B loc_FF89E00C\n"
639 " B loc_FF89E014\n"
640 " B loc_FF89E01C\n"
641 " B loc_FF89E01C\n"
642 " B loc_FF89E034\n"
643 " B loc_FF89E034\n"
644 " B loc_FF89E120\n"
645 " B loc_FF89E128\n"
646 " B loc_FF89E128\n"
647 " B loc_FF89E128\n"
648 " B loc_FF89E128\n"
649 " B loc_FF89E12C\n"
650 " B loc_FF89E12C\n"
651 " B loc_FF89E12C\n"
652 " B loc_FF89E12C\n"
653 " B loc_FF89E12C\n"
654 " B loc_FF89E12C\n"
655 " B loc_FF89E024\n"
656 " B loc_FF89E02C\n"
657 " B loc_FF89E02C\n"
658 " B loc_FF89E040\n"
659 " B loc_FF89E040\n"
660 " B loc_FF89E048\n"
661 " B loc_FF89E078\n"
662 " B loc_FF89E0A8\n"
663 " B loc_FF89E0D8\n"
664 " B loc_FF89E108\n"
665 " B loc_FF89E108\n"
666 " B loc_FF89E12C\n"
667 " B loc_FF89E12C\n"
668 " B loc_FF89E110\n"
669 " B loc_FF89E118\n"
670 "loc_FF89E00C:\n"
671
672 " BL sub_FF89AA5C\n"
673 " B loc_FF89E12C\n"
674 "loc_FF89E014:\n"
675
676 " BL sub_FF89ACD0\n"
677 " B loc_FF89E12C\n"
678 "loc_FF89E01C:\n"
679
680 " BL sub_FF89AED4\n"
681 " B loc_FF89E12C\n"
682 "loc_FF89E024:\n"
683
684 " BL sub_FF89B13C\n"
685 " B loc_FF89E12C\n"
686 "loc_FF89E02C:\n"
687
688 " BL sub_FF89B330\n"
689 " B loc_FF89E12C\n"
690 "loc_FF89E034:\n"
691
692 " BL sub_FF89B5C0_my\n"
693 " MOV R4, #0\n"
694 " B loc_FF89E12C\n"
695 "loc_FF89E040:\n"
696
697 " BL sub_FF89B6FC\n"
698 " B loc_FF89E12C\n"
699 "loc_FF89E048:\n"
700
701 " LDRH R1, [R0,#4]\n"
702 " STRH R1, [SP,#0x10]\n"
703 " LDRH R1, [R5,#2]\n"
704 " STRH R1, [SP,#0x12]\n"
705 " LDRH R1, [R5,#4]\n"
706 " STRH R1, [SP,#0x14]\n"
707 " LDRH R1, [R5,#6]\n"
708 " STRH R1, [SP,#0x16]\n"
709 " LDRH R1, [R0,#0xC]\n"
710 " STRH R1, [SP,#0x18]\n"
711 " BL sub_FF89EF88\n"
712 " B loc_FF89E12C\n"
713 "loc_FF89E078:\n"
714
715 " LDRH R1, [R0,#4]\n"
716 " STRH R1, [SP,#0x10]\n"
717 " LDRH R1, [R5,#2]\n"
718 " STRH R1, [SP,#0x12]\n"
719 " LDRH R1, [R5,#4]\n"
720 " STRH R1, [SP,#0x14]\n"
721 " LDRH R1, [R5,#6]\n"
722 " STRH R1, [SP,#0x16]\n"
723 " LDRH R1, [R5,#8]\n"
724 " STRH R1, [SP,#0x18]\n"
725 " BL sub_FF89F0E8\n"
726 " B loc_FF89E12C\n"
727 "loc_FF89E0A8:\n"
728
729 " LDRH R1, [R5]\n"
730 " STRH R1, [SP,#0x10]\n"
731 " LDRH R1, [R0,#6]\n"
732 " STRH R1, [SP,#0x12]\n"
733 " LDRH R1, [R5,#4]\n"
734 " STRH R1, [SP,#0x14]\n"
735 " LDRH R1, [R5,#6]\n"
736 " STRH R1, [SP,#0x16]\n"
737 " LDRH R1, [R5,#8]\n"
738 " STRH R1, [SP,#0x18]\n"
739 " BL sub_FF89F194\n"
740 " B loc_FF89E12C\n"
741 "loc_FF89E0D8:\n"
742
743 " LDRH R1, [R5]\n"
744 " STRH R1, [SP,#0x10]\n"
745 " LDRH R1, [R5,#2]\n"
746 " STRH R1, [SP,#0x12]\n"
747 " LDRH R1, [R5,#4]\n"
748 " STRH R1, [SP,#0x14]\n"
749 " LDRH R1, [R5,#6]\n"
750 " STRH R1, [SP,#0x16]\n"
751 " LDRH R1, [R0,#0xC]\n"
752 " STRH R1, [SP,#0x18]\n"
753 " BL sub_FF89F234\n"
754 " B loc_FF89E12C\n"
755 "loc_FF89E108:\n"
756
757 " BL sub_FF89B99C\n"
758 " B loc_FF89E12C\n"
759 "loc_FF89E110:\n"
760
761 " BL sub_FF89BFC8\n"
762 " B loc_FF89E12C\n"
763 "loc_FF89E118:\n"
764
765 " BL sub_FF89C200\n"
766 " B loc_FF89E12C\n"
767 "loc_FF89E120:\n"
768
769 " BL sub_FF89C378\n"
770 " B loc_FF89E12C\n"
771 "loc_FF89E128:\n"
772
773 " BL sub_FF89C510\n"
774 "loc_FF89E12C:\n"
775
776
777 " LDR R0, [SP,#0x1C]\n"
778 " LDR R1, [R0,#0x7C]\n"
779 " LDR R3, [R0,#0x88]\n"
780 " LDR R2, [R0,#0x8C]\n"
781 " ADD R0, R0, #4\n"
782 " BLX R3\n"
783 " CMP R4, #1\n"
784 " BNE loc_FF89E194\n"
785 "loc_FF89E14C:\n"
786 " LDR R0, [SP,#0x1C]\n"
787 " MOV R2, #0xC\n"
788 " LDR R1, [R0,#0x7C]\n"
789 " ADD R1, R1, R1,LSL#1\n"
790 " ADD R0, R0, R1,LSL#2\n"
791 " SUB R4, R0, #8\n"
792 " LDR R0, =0x18FAC\n"
793 " ADD R1, SP, #0x10\n"
794 " BL sub_FFACBD60\n"
795 " LDR R0, =0x18FB8\n"
796 " MOV R2, #0xC\n"
797 " ADD R1, SP, #0x10\n"
798 " BL sub_FFACBD60\n"
799 " LDR R0, =0x18FC4\n"
800 " MOV R2, #0xC\n"
801 " MOV R1, R4\n"
802 " BL sub_FFACBD60\n"
803 " B loc_FF89E20C\n"
804 "loc_FF89E194:\n"
805 " LDR R0, [SP,#0x1C]\n"
806 " LDR R0, [R0]\n"
807 " CMP R0, #0xB\n"
808 " BNE loc_FF89E1DC\n"
809 " MOV R3, #0\n"
810 " STR R3, [SP]\n"
811 " MOV R3, #1\n"
812 " MOV R2, #1\n"
813 " MOV R1, #1\n"
814 " MOV R0, #0\n"
815 " BL sub_FF89A864\n"
816 " MOV R3, #0\n"
817 " STR R3, [SP]\n"
818 " MOV R3, #1\n"
819 " MOV R2, #1\n"
820 " MOV R1, #1\n"
821 " MOV R0, #0\n"
822 " B loc_FF89E208\n"
823 "loc_FF89E1DC:\n"
824 " MOV R3, #1\n"
825 " MOV R2, #1\n"
826 " MOV R1, #1\n"
827 " MOV R0, #1\n"
828 " STR R3, [SP]\n"
829 " BL sub_FF89A864\n"
830 " MOV R3, #1\n"
831 " MOV R2, #1\n"
832 " MOV R1, #1\n"
833 " MOV R0, #1\n"
834 " STR R3, [SP]\n"
835 "loc_FF89E208:\n"
836 " BL sub_FF89A9A4\n"
837 "loc_FF89E20C:\n"
838 " LDR R0, [SP,#0x1C]\n"
839 " BL sub_FF89EF14\n"
840 " B loc_FF89DC7C\n"
841 );
842 }
843 void __attribute__((naked,noinline)) sub_FF89B5C0_my()
844 {
845 asm volatile (
846 " STMFD SP!, {R4-R8,LR}\n"
847 " LDR R7, =0x3D08\n"
848 " MOV R4, R0\n"
849 " LDR R0, [R7,#0x1C]\n"
850 " MOV R1, #0x3E\n"
851 " BL sub_FF869BF4\n"
852 " LDRSH R0, [R4,#4]\n"
853 " MOV R2, #0\n"
854 " MOV R1, #0\n"
855 " BL sub_FF89A5F4\n"
856 " MOV R6, R0\n"
857 " LDRSH R0, [R4,#6]\n"
858 " BL sub_FF89A704\n"
859 " LDRSH R0, [R4,#8]\n"
860 " BL sub_FF89A75C\n"
861 " LDRSH R0, [R4,#0xA]\n"
862 " BL sub_FF89A7B4\n"
863 " LDRSH R0, [R4,#0xC]\n"
864 " BL sub_FF89A80C\n"
865 " MOV R5, R0\n"
866 " LDR R0, [R4]\n"
867 " LDR R8, =0x18FC4\n"
868 " CMP R0, #0xB\n"
869 " MOVEQ R6, #0\n"
870 " MOVEQ R5, #0\n"
871 " BEQ loc_FF89B650\n"
872 " CMP R6, #1\n"
873 " BNE loc_FF89B650\n"
874 " LDRSH R0, [R4,#4]\n"
875 " LDR R1, =0xFF89A560\n"
876 " MOV R2, #2\n"
877 " BL sub_FF9281C8\n"
878 " STRH R0, [R4,#4]\n"
879 " MOV R0, #0\n"
880 " STR R0, [R7,#0x28]\n"
881 " B loc_FF89B658\n"
882 "loc_FF89B650:\n"
883 " LDRH R0, [R8]\n"
884 " STRH R0, [R4,#4]\n"
885 "loc_FF89B658:\n"
886 " CMP R5, #1\n"
887 " LDRNEH R0, [R8,#8]\n"
888 " BNE loc_FF89B674\n"
889 " LDRSH R0, [R4,#0xC]\n"
890 " LDR R1, =0xFF89A5E4\n"
891 " MOV R2, #0x20\n"
892 " BL sub_FF89EF44\n"
893 "loc_FF89B674:\n"
894 " STRH R0, [R4,#0xC]\n"
895 " LDRSH R0, [R4,#6]\n"
896 " BL sub_FF88CE00_my\n"
897 " LDR PC,=0xFF89B680\n"
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932 );
933 }
934 void __attribute__((naked,noinline)) sub_FF88CE00_my() {
935 asm volatile (
936 " STMFD SP!, {R4-R6,LR}\n"
937 " LDR R5, =0x39FC\n"
938 " MOV R4, R0\n"
939 " LDR R0, [R5,#4]\n"
940 " CMP R0, #1\n"
941 " MOVNE R1, #0x140\n"
942 " LDRNE R0, =0xFF88CC04\n"
943 " BLNE _DebugAssert\n"
944 " CMN R4, #0xC00\n"
945 " LDREQSH R4, [R5,#2]\n"
946 " CMN R4, #0xC00\n"
947 " LDREQ R1, =0x146\n"
948 " LDREQ R0, =0xFF88CC04\n"
949 " STRH R4, [R5,#2]\n"
950 " BLEQ _DebugAssert\n"
951 " MOV R0, R4\n"
952 " BL apex2us\n"
953 " LDR PC, =0xFF88CE44\n"
954
955
956
957
958
959
960
961
962
963
964
965
966 );
967 }
968