This source file includes following definitions.
- hangdebug
- blinko
- capt_seq_task
- sub_FF962520_my
- sub_FF87C698_my
- exp_drv_task
- sub_FF8BEC90_my
- sub_FF8B157C_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6 static long *nrflag = (long*)0x7910;
7
8 #include "../../../generic/capt_seq.c"
9
10 void __attribute__((naked,noinline)) hangdebug() {
11 debug_led(1);
12 while(1);
13 }
14
15 void __attribute__((naked,noinline)) blinko(void) {
16 int i;
17
18 *((volatile int *) 0xC02200B6) = 0x46;
19 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }
20
21 *((volatile int *) 0xC02200B6) = 0x44;
22 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }
23
24 *((volatile int *) 0xC02200B6) = 0x46;
25 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }
26
27 *((volatile int *) 0xC02200B6) = 0x44;
28 for (i=0; i<0x900000; i++) { asm volatile ( "nop\n" ); }
29
30 }
31
32 void __attribute__((naked,noinline)) capt_seq_task() {
33
34 asm volatile (
35
36 "STMFD SP!, {R3-R9,LR}\n"
37 "LDR R6, =0x2D50\n"
38 "LDR R4, =0x3894C\n"
39 "MOV R9, #1\n"
40 "MOV R7, #0\n"
41
42 "loc_FF87CDA4:\n"
43 "LDR R0, [R6,#4]\n"
44 "MOV R2, #0\n"
45 "MOV R1, SP\n"
46 "BL sub_FF838318\n"
47 "TST R0, #1\n"
48 "BEQ loc_FF87CDD0\n"
49 "LDR R1, =0x5B4\n"
50 "LDR R0, =0xFF87C568\n"
51 "BL sub_FF81E88C\n"
52 "BL sub_FF81E844\n"
53 "LDMFD SP!, {R3-R9,PC}\n"
54
55
56 "loc_FF87CDD0:\n"
57 "LDR R0, [SP]\n"
58 "LDR R1, [R0]\n"
59 "CMP R1, #0x22\n"
60 "ADDLS PC, PC, R1,LSL#2\n"
61 "B loc_FF87D0D4\n"
62
63 "loc_FF87CDE4: B loc_FF87CE70\n"
64 "loc_FF87CDE8: B loc_FF87CEDC\n"
65 "loc_FF87CDEC: B loc_FF87CF18\n"
66 "loc_FF87CDF0: B loc_FF87CF38\n"
67 "loc_FF87CDF4: B loc_FF87CF30\n"
68 "loc_FF87CDF8: B loc_FF87CF40\n"
69 "loc_FF87CDFC: B loc_FF87CF48\n"
70 "loc_FF87CE00: B loc_FF87CF50\n"
71 "loc_FF87CE04: B loc_FF87CFA8\n"
72 "loc_FF87CE08: B loc_FF87CFD0\n"
73 "loc_FF87CE0C: B loc_FF87CFB4\n"
74 "loc_FF87CE10: B loc_FF87CFC0\n"
75 "loc_FF87CE14: B loc_FF87CFC8\n"
76 "loc_FF87CE18: B loc_FF87CFD8\n"
77 "loc_FF87CE1C: B loc_FF87CFE0\n"
78 "loc_FF87CE20: B loc_FF87CFE8\n"
79 "loc_FF87CE24: B loc_FF87CFF0\n"
80 "loc_FF87CE28: B loc_FF87CFF8\n"
81 "loc_FF87CE2C: B loc_FF87D000\n"
82 "loc_FF87CE30: B loc_FF87D008\n"
83 "loc_FF87CE34: B loc_FF87D010\n"
84 "loc_FF87CE38: B loc_FF87D018\n"
85 "loc_FF87CE3C: B loc_FF87D020\n"
86 "loc_FF87CE40: B loc_FF87D02C\n"
87 "loc_FF87CE44: B loc_FF87D034\n"
88 "loc_FF87CE48: B loc_FF87D040\n"
89 "loc_FF87CE4C: B loc_FF87D048\n"
90 "loc_FF87CE50: B loc_FF87D078\n"
91 "loc_FF87CE54: B loc_FF87D080\n"
92 "loc_FF87CE58: B loc_FF87D088\n"
93 "loc_FF87CE5C: B loc_FF87D090\n"
94 "loc_FF87CE60: B loc_FF87D098\n"
95 "loc_FF87CE64: B loc_FF87D0A0\n"
96 "loc_FF87CE68: B loc_FF87D0AC\n"
97 "loc_FF87CE6C: B loc_FF87D0E0\n"
98
99 "loc_FF87CE70:\n"
100 "BL sub_FF87D6F8\n"
101 "BL shooting_expo_param_override\n"
102 "BL sub_FF87A530\n"
103
104
105 "MOV R0, #0\n"
106 "STR R0, [R4,#0x24]\n"
107
108 "LDR R0, [R4,#0x24]\n"
109 "CMP R0, #0\n"
110 "BEQ loc_FF87D0E0\n"
111 "BL sub_FF87C240\n"
112 "MOV R5, R0\n"
113 "LDR R0, [R4,#0x24]\n"
114 "CMP R0, #0\n"
115 "BEQ loc_FF87CEB8\n"
116 "MOV R0, #0xC\n"
117 "BL sub_FF8821A4\n"
118 "TST R0, #1\n"
119 "STRNE R9, [R6,#0x10]\n"
120 "LDRNE R0, [R5,#8]\n"
121 "ORRNE R0, R0, #0x40000000\n"
122 "STRNE R0, [R5,#8]\n"
123 "BNE loc_FF87D0E0\n"
124 "loc_FF87CEB8:\n"
125 "MOV R0, R5\n"
126 "BL sub_FF961C84\n"
127 "MOV R0, R5\n"
128 "BL sub_FF87C620\n"
129 "MOV R0, R5\n"
130 "BL sub_FF962520_my\n"
131
132 "BL capt_seq_hook_raw_here\n"
133 "TST R0, #1\n"
134 "STRNE R9, [R6,#0x10]\n"
135 "B loc_FF87D0E0\n"
136 "loc_FF87CEDC:\n"
137 "LDR R0, [R4,#0x24]\n"
138 "CMP R0, #0\n"
139 "BNE loc_FF87CF08\n"
140 "MOV R0, #0xC\n"
141 "BL sub_FF8821A4\n"
142 "TST R0, #1\n"
143 "LDRNE R0, [SP]\n"
144 "MOVNE R1, #1\n"
145 "LDRNE R2, [R0,#0xC]\n"
146 "MOVNE R0, #1\n"
147 "BNE loc_FF87CFA0\n"
148 "loc_FF87CF08:\n"
149 "LDR R0, [SP]\n"
150
151 "BL sub_FF87C698_my\n"
152 "loc_FF87CF10:\n"
153 "STR R7, [R4,#0x24]\n"
154 "B loc_FF87D0E0\n"
155 "loc_FF87CF18:\n"
156 "MOV R0, #1\n"
157 "BL sub_FF87D9A8\n"
158 "LDR R0, [R4,#0xC]\n"
159 "CMP R0, #0\n"
160 "BLNE sub_FF87E494\n"
161 "B loc_FF87D0E0\n"
162 "loc_FF87CF30:\n"
163 "BL sub_FF87D3A8\n"
164 "B loc_FF87CF10\n"
165 "loc_FF87CF38:\n"
166 "BL sub_FF87D6D8\n"
167 "B loc_FF87CF10\n"
168 "loc_FF87CF40:\n"
169 "BL sub_FF87D6E0\n"
170 "B loc_FF87D0E0\n"
171 "loc_FF87CF48:\n"
172 "BL sub_FF87D898\n"
173 "B loc_FF87CFAC\n"
174 "loc_FF87CF50:\n"
175 "LDR R5, [R0,#0xC]\n"
176 "BL sub_FF87D6E8\n"
177 "MOV R0, R5\n"
178 "BL sub_FF960CC8\n"
179 "TST R0, #1\n"
180 "MOV R8, R0\n"
181 "BNE loc_FF87CF90\n"
182 "BL sub_FF88F4BC\n"
183 "STR R0, [R5,#0x18]\n"
184 "MOV R0, R5\n"
185 "BL sub_FF962438\n"
186 "MOV R0, R5\n"
187 "BL sub_FF962830\n"
188 "MOV R8, R0\n"
189 "LDR R0, [R5,#0x18]\n"
190 "BL sub_FF88F6C0\n"
191 "loc_FF87CF90:\n"
192 "BL sub_FF87D6D8\n"
193 "MOV R2, R5\n"
194 "MOV R1, #9\n"
195 "MOV R0, R8\n"
196 "loc_FF87CFA0:\n"
197 "BL sub_FF87AAC4\n"
198 "B loc_FF87D0E0\n"
199 "loc_FF87CFA8:\n"
200 "BL sub_FF87D928\n"
201 "loc_FF87CFAC:\n"
202 "BL sub_FF87A530\n"
203 "B loc_FF87D0E0\n"
204 "loc_FF87CFB4:\n"
205 "LDR R0, [R4,#0x54]\n"
206 "BL sub_FF87DFAC\n"
207 "B loc_FF87D0E0\n"
208 "loc_FF87CFC0:\n"
209 "BL sub_FF87E254\n"
210 "B loc_FF87D0E0\n"
211 "loc_FF87CFC8:\n"
212 "BL sub_FF87E2E4\n"
213 "B loc_FF87D0E0\n"
214 "loc_FF87CFD0:\n"
215 "BL sub_FF87D6D8\n"
216 "B loc_FF87D0E0\n"
217 "loc_FF87CFD8:\n"
218 "BL sub_FF960EF4\n"
219 "B loc_FF87D0E0\n"
220 "loc_FF87CFE0:\n"
221 "BL sub_FF96114C\n"
222 "B loc_FF87D0E0\n"
223 "loc_FF87CFE8:\n"
224 "BL sub_FF9611EC\n"
225 "B loc_FF87D0E0\n"
226 "loc_FF87CFF0:\n"
227 "BL sub_FF961320\n"
228 "B loc_FF87D0E0\n"
229 "loc_FF87CFF8:\n"
230 "BL sub_FF9613F0\n"
231 "B loc_FF87D0E0\n"
232 "loc_FF87D000:\n"
233 "MOV R0, #0\n"
234 "B loc_FF87D024\n"
235 "loc_FF87D008:\n"
236 "BL sub_FF9619C8\n"
237 "B loc_FF87D0E0\n"
238 "loc_FF87D010:\n"
239 "BL sub_FF961A58\n"
240 "B loc_FF87D0E0\n"
241 "loc_FF87D018:\n"
242 "BL sub_FF961B18\n"
243 "B loc_FF87D0E0\n"
244 "loc_FF87D020:\n"
245 "MOV R0, #1\n"
246 "loc_FF87D024:\n"
247 "BL sub_FF961888\n"
248 "B loc_FF87D0E0\n"
249 "loc_FF87D02C:\n"
250 "BL sub_FF87DBC4\n"
251 "B loc_FF87D0E0\n"
252 "loc_FF87D034:\n"
253 "BL sub_FF87DC64\n"
254 "BL sub_FF87D208\n"
255 "B loc_FF87D0E0\n"
256 "loc_FF87D040:\n"
257 "BL sub_FF9616B0\n"
258 "B loc_FF87D0E0\n"
259 "loc_FF87D048:\n"
260 "MOV R2, #2\n"
261 "ADD R1, R4, #0x6A\n"
262 "MOV R0, #0x6F\n"
263 "BL sub_FF88F32C\n"
264 "TST R0, #1\n"
265 "LDRNE R1, =0x6AB\n"
266 "LDRNE R0, =0xFF87C568\n"
267 "BLNE sub_FF81E88C\n"
268 "LDRH R0, [R4,#0x6A]\n"
269 "CMP R0, #1\n"
270 "BLEQ sub_FF9616A4\n"
271 "B loc_FF87D0E0\n"
272 "loc_FF87D078:\n"
273 "BL sub_FF9617DC\n"
274 "B loc_FF87D0E0\n"
275 "loc_FF87D080:\n"
276 "BL sub_FF87C4F8\n"
277 "B loc_FF87D0E0\n"
278 "loc_FF87D088:\n"
279 "BL sub_FF835E64\n"
280 "B loc_FF87D0E0\n"
281 "loc_FF87D090:\n"
282 "BL sub_FF8805D4\n"
283 "B loc_FF87D0E0\n"
284 "loc_FF87D098:\n"
285 "BL sub_FF88063C\n"
286 "B loc_FF87D0E0\n"
287 "loc_FF87D0A0:\n"
288 "BL sub_FF880698\n"
289 "BL sub_FF880658\n"
290 "B loc_FF87D0E0\n"
291 "loc_FF87D0AC:\n"
292 "MOV R0, #1\n"
293 "BL sub_FF963078\n"
294 "MOV R0, #1\n"
295 "BL sub_FF963188\n"
296 "LDRH R0, [R4,#0xA8]\n"
297 "CMP R0, #4\n"
298 "BNE loc_FF87D0E0\n"
299 "BL sub_FF88063C\n"
300 "BL sub_FF880A84\n"
301 "B loc_FF87D0E0\n"
302 "loc_FF87D0D4:\n"
303 "LDR R1, =0x709\n"
304 "LDR R0, =0xFF87C568\n"
305 "BL sub_FF81E88C\n"
306 "loc_FF87D0E0:\n"
307 "LDR R0, [SP]\n"
308 "LDR R1, [R0,#4]\n"
309 "LDR R0, [R6]\n"
310 "BL sub_FF88717C\n"
311 "LDR R5, [SP]\n"
312 "LDR R0, [R5,#8]\n"
313 "CMP R0, #0\n"
314 "LDREQ R1, =0x132\n"
315 "LDREQ R0, =0xFF87C568\n"
316 "BLEQ sub_FF81E88C\n"
317 "STR R7, [R5,#8]\n"
318 "B loc_FF87CDA4\n"
319
320
321 );
322 }
323
324
325
326
327
328 void __attribute__((naked,noinline)) sub_FF962520_my(){
329
330 asm volatile(
331 "STMFD SP!, {R0-R8,LR}\n"
332 "MOV R4, R0\n"
333
334 "BL sub_FF963374\n"
335 "LDR R1, =0xFFFFFFFF\n"
336 "BL sub_FF8871B0\n"
337 "LDR R5, =0x7910\n"
338 "LDR R0, [R5,#0xC]\n"
339 "CMP R0, #0\n"
340 "BNE loc_FF962570\n"
341 "MOV R1, #1\n"
342 "MOV R0, #0\n"
343 "BL sub_FF838B60\n"
344 "STR R0, [R5,#0xC]\n"
345 "MOV R3, #0\n"
346 "STR R3, [SP]\n"
347 "LDR R3, =0xFF961EAC\n"
348 "LDR R0, =0xFF962798\n"
349 "MOV R2, #0x400\n"
350 "MOV R1, #0x17\n"
351 "BL sub_FF838B2C\n"
352 "loc_FF962570:\n"
353 "MOV R2, #4\n"
354 "ADD R1, SP, #8\n"
355 "MOV R0, #0x8A\n"
356 "BL sub_FF88F32C\n"
357 "TST R0, #1\n"
358 "LDRNE R1, =0x3C5\n"
359 "LDRNE R0, =0xFF962144\n"
360 "BLNE sub_FF81E88C\n"
361 "LDR R8, =0x38A20\n"
362 "LDR R7, =0x3894C\n"
363 "LDRSH R1, [R8,#0xE]\n"
364 "LDR R0, [R7,#0x9C]\n"
365 "BL sub_FF925290\n"
366 "BL sub_FF8626D0\n"
367 "LDR R3, =0x7918\n"
368 "STRH R0, [R4,#0xA4]\n"
369 "SUB R2, R3, #4\n"
370 "STRD R2, [SP]\n"
371 "MOV R1, R0\n"
372 "LDRH R0, [R7,#0x64]\n"
373 "LDRSH R2, [R8,#0xC]\n"
374 "SUB R3, R3, #8\n"
375 "BL sub_FF9649D8\n"
376 "BL wait_until_remote_button_is_released\n"
377 "BL capt_seq_hook_set_nr\n"
378 "B sub_FF9625CC\n"
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 void __attribute__((naked,noinline)) sub_FF87C698_my(){
407 asm volatile(
408 "STMFD SP!, {R3-R9,LR}\n"
409 "LDR R4, [R0,#0xC]\n"
410 "LDR R5, =0x3894C\n"
411 "LDR R0, [R4,#8]\n"
412 "LDR R6, =0x820A\n"
413 "ORR R0, R0, #1\n"
414 "STR R0, [R4,#8]\n"
415 "LDRH R0, [R5]\n"
416 "LDR R8, =0x2D50\n"
417 "MOV R7, #0\n"
418 "CMP R0, R6\n"
419 "BEQ loc_FF87C73C\n"
420 "LDRH R0, [R5,#0xA6]\n"
421 "CMP R0, #3\n"
422 "BEQ loc_FF87C79C\n"
423 "LDR R0, [R4,#0xC]\n"
424 "CMP R0, #1\n"
425 "BLS loc_FF87C748\n"
426 "LDRH R0, [R5,#0xA4]\n"
427 "CMP R0, #0\n"
428 "BNE loc_FF87C79C\n"
429 "LDRH R0, [R5,#0xA0]\n"
430 "CMP R0, #2\n"
431 "BNE loc_FF87C754\n"
432 "BL sub_FF87DD14\n"
433 "LDRH R0, [R5]\n"
434 "CMP R0, R6\n"
435 "BEQ loc_FF87C73C\n"
436 "LDRH R0, [R5,#0xA6]\n"
437 "CMP R0, #3\n"
438 "BEQ loc_FF87C79C\n"
439 "LDR R0, [R4,#0xC]\n"
440 "CMP R0, #1\n"
441 "BLS loc_FF87C748\n"
442 "LDRH R0, [R5,#0xA4]\n"
443 "CMP R0, #0\n"
444 "BNE loc_FF87C79C\n"
445 "LDRH R0, [R5,#0xA0]\n"
446 "CMP R0, #2\n"
447 "BEQ loc_FF87C780\n"
448 "B loc_FF87C754\n"
449 "loc_FF87C73C:\n"
450 "LDRH R0, [R5,#0xA6]\n"
451 "CMP R0, #3\n"
452 "BEQ loc_FF87C79C\n"
453 "loc_FF87C748:\n"
454 "LDRH R0, [R5,#0xA4]\n"
455 "CMP R0, #0\n"
456 "BNE loc_FF87C79C\n"
457 "loc_FF87C754:\n"
458 "LDRH R0, [R5,#0xA0]\n"
459 "CMP R0, #1\n"
460 "BNE loc_FF87C79C\n"
461 "LDRH R0, [R5]\n"
462 "CMP R0, R6\n"
463 "LDRNE R0, [R4,#0xC]\n"
464 "CMPNE R0, #1\n"
465 "BLS loc_FF87C79C\n"
466 "LDR R0, [R4,#0x10]\n"
467 "CMP R0, #1\n"
468 "BNE loc_FF87C79C\n"
469 "loc_FF87C780:\n"
470 "LDR R3, =0x269\n"
471 "LDR R2, =0xEA60\n"
472 "STR R3, [SP]\n"
473 "LDR R0, [R8]\n"
474 "LDR R3, =0xFF87C568\n"
475 "MOV R1, #0x40000000\n"
476 "BL sub_FF882524\n"
477 "loc_FF87C79C:\n"
478 "BL sub_FF87C4F8\n"
479 "LDR R0, [R5,#0x24]\n"
480 "CMP R0, #0\n"
481 "MOVEQ R0, #2\n"
482 "BLEQ sub_FF8761A4\n"
483 "BL sub_FF87D6E8\n"
484 "LDR R0, [R5,#0x24]\n"
485 "CMP R0, #0\n"
486 "BNE loc_FF87C868\n"
487 "MOV R0, #0\n"
488 "BL sub_FF963078\n"
489 "MOV R0, #0\n"
490 "BL sub_FF963188\n"
491 "MOV R0, R4\n"
492 "BL sub_FF961C84\n"
493 "MOV R0, R4\n"
494 "BL sub_FF87DB40\n"
495 "MOV R0, R4\n"
496 "BL sub_FF96087C\n"
497 "CMP R0, #0\n"
498 "BEQ loc_FF87C81C\n"
499 "BL sub_FF9630B8\n"
500 "BL sub_FF9631CC\n"
501 "BL sub_FF96321C\n"
502 "MOV R0, R4\n"
503 "BL sub_FF9609F4\n"
504 "TST R0, #1\n"
505 "MOVNE R2, R4\n"
506 "LDMNEFD SP!, {R3-R9,LR}\n"
507 "MOVNE R1, #1\n"
508 "BNE sub_FF87AAC4\n"
509 "B loc_FF87C844\n"
510 "loc_FF87C81C:\n"
511 "LDR R0, [R5,#0xC]\n"
512 "CMP R0, #0\n"
513 "BEQ loc_FF87C830\n"
514 "BL sub_FF87E418\n"
515 "BL sub_FF877A74\n"
516 "loc_FF87C830:\n"
517 "MOV R0, R4\n"
518 "BL sub_FF960960\n"
519 "BL sub_FF9630B8\n"
520 "BL sub_FF9631CC\n"
521 "BL sub_FF96321C\n"
522 "loc_FF87C844:\n"
523 "MOV R0, R4\n"
524 "BL sub_FF87C620\n"
525 "MOV R0, R4\n"
526 "BL sub_FF962438\n"
527 "BL sub_FF962EB0\n"
528 "MOV R0, R4\n"
529 "BL sub_FF962520_my\n"
530 "MOV R7, R0\n"
531 "BL capt_seq_hook_raw_here\n"
532 "B loc_FF87C874\n"
533 "loc_FF87C868:\n"
534 "LDR R0, [R8,#0x10]\n"
535 "CMP R0, #0\n"
536 "MOVNE R7, #0x1D\n"
537 "loc_FF87C874:\n"
538 "BL sub_FF88063C\n"
539 "BL sub_FF880684\n"
540 "BL sub_FF8806C4\n"
541 "MOV R2, R4\n"
542 "MOV R1, #1\n"
543 "MOV R0, R7\n"
544 "BL sub_FF87AAC4\n"
545 "BL sub_FF9627D4\n"
546 "CMP R0, #0\n"
547 "LDRNE R0, [R4,#8]\n"
548 "ORRNE R0, R0, #0x2000\n"
549 "STRNE R0, [R4,#8]\n"
550 "LDR R0, [R4,#0x1C]\n"
551 "CMP R0, #0\n"
552 "BLNE sub_FF877A8C\n"
553 "LDRH R0, [R5,#0xA6]\n"
554 "CMP R0, #3\n"
555 "BEQ LOCRET_FF87C8D8\n"
556 "LDRH R0, [R5,#0xA4]\n"
557 "CMP R0, #0\n"
558 "LDREQH R0, [R5,#0xA0]\n"
559 "CMPEQ R0, #2\n"
560 "MOVEQ R0, R4\n"
561 "LDMEQFD SP!, {R3-R9,LR}\n"
562 "BEQ sub_FF87DD68\n"
563 "LOCRET_FF87C8D8:\n"
564 "LDMFD SP!, {R3-R9,PC}\n"
565
566 );
567 }
568
569
570
571
572
573 void __attribute__((naked,noinline)) exp_drv_task(){
574
575
576
577 asm volatile(
578 "STMFD SP!, {R4-R8,LR}\n"
579 "SUB SP, SP, #0x20\n"
580 "LDR R8, =0xBB8\n"
581 "LDR R7, =0x4658\n"
582 "LDR R5, =0x3D90C\n"
583 "MOV R0, #0\n"
584 "ADD R6, SP, #0x10\n"
585 "STR R0, [SP,#0xC]\n"
586 "loc_FF8C14A0:\n"
587 "LDR R0, [R7,#0x20]\n"
588 "MOV R2, #0\n"
589 "ADD R1, SP, #0x1C\n"
590 "BL sub_FF838318\n"
591 "LDR R0, [SP,#0xC]\n"
592 "CMP R0, #1\n"
593 "BNE loc_FF8C14EC\n"
594 "LDR R0, [SP,#0x1C]\n"
595 "LDR R0, [R0]\n"
596 "CMP R0, #0x13\n"
597 "CMPNE R0, #0x14\n"
598 "CMPNE R0, #0x15\n"
599 "CMPNE R0, #0x16\n"
600 "BEQ loc_FF8C1608\n"
601 "CMP R0, #0x28\n"
602 "BEQ loc_FF8C15E0\n"
603 "ADD R1, SP, #0xC\n"
604 "MOV R0, #0\n"
605 "BL sub_FF8C1430\n"
606 "loc_FF8C14EC:\n"
607 "LDR R0, [SP,#0x1C]\n"
608 "LDR R1, [R0]\n"
609 "CMP R1, #0x2D\n"
610 "BNE loc_FF8C151C\n"
611 "LDR R0, [SP,#0x1C]\n"
612 "BL sub_FF8C26E8\n"
613 "LDR R0, [R7,#0x1C]\n"
614 "MOV R1, #1\n"
615 "BL sub_FF88717C\n"
616 "BL sub_FF81E844\n"
617 "ADD SP, SP, #0x20\n"
618 "LDMFD SP!, {R4-R8,PC}\n"
619 "loc_FF8C151C:\n"
620 "CMP R1, #0x2C\n"
621 "BNE loc_FF8C1538\n"
622 "LDR R2, [R0,#0x8C]!\n"
623 "LDR R1, [R0,#4]\n"
624 "MOV R0, R1\n"
625 "BLX R2\n"
626 "B loc_FF8C1A30\n"
627 "loc_FF8C1538:\n"
628 "CMP R1, #0x26\n"
629 "BNE loc_FF8C1588\n"
630 "LDR R0, [R7,#0x1C]\n"
631 "MOV R1, #0x80\n"
632 "BL sub_FF8871B0\n"
633 "LDR R0, =0xFF8BDBBC\n"
634 "MOV R1, #0x80\n"
635 "BL sub_FF9518AC\n"
636 "LDR R0, [R7,#0x1C]\n"
637 "MOV R2, R8\n"
638 "MOV R1, #0x80\n"
639 "BL sub_FF8870BC\n"
640 "TST R0, #1\n"
641 "LDRNE R1, =0xE54\n"
642 "BNE loc_FF8C15CC\n"
643 "loc_FF8C1574:\n"
644 "LDR R1, [SP,#0x1C]\n"
645 "LDR R0, [R1,#0x90]\n"
646 "LDR R1, [R1,#0x8C]\n"
647 "BLX R1\n"
648 "B loc_FF8C1A30\n"
649 "loc_FF8C1588:\n"
650 "CMP R1, #0x27\n"
651 "BNE loc_FF8C15D8\n"
652 "ADD R1, SP, #0xC\n"
653 "BL sub_FF8C1430\n"
654 "LDR R0, [R7,#0x1C]\n"
655 "MOV R1, #0x100\n"
656 "BL sub_FF8871B0\n"
657 "LDR R0, =0xFF8BDBCC\n"
658 "MOV R1, #0x100\n"
659 "BL sub_FF952238\n"
660 "LDR R0, [R7,#0x1C]\n"
661 "MOV R2, R8\n"
662 "MOV R1, #0x100\n"
663 "BL sub_FF8870BC\n"
664 "TST R0, #1\n"
665 "BEQ loc_FF8C1574\n"
666 "LDR R1, =0xE5E\n"
667 "loc_FF8C15CC:\n"
668 "LDR R0, =0xFF8BE1E0\n"
669 "BL sub_FF81E88C\n"
670 "B loc_FF8C1574\n"
671 "loc_FF8C15D8:\n"
672 "CMP R1, #0x28\n"
673 "BNE loc_FF8C15F0\n"
674 "loc_FF8C15E0:\n"
675 "LDR R0, [SP,#0x1C]\n"
676 "ADD R1, SP, #0xC\n"
677 "BL sub_FF8C1430\n"
678 "B loc_FF8C1574\n"
679 "loc_FF8C15F0:\n"
680 "CMP R1, #0x2B\n"
681 "BNE loc_FF8C1608\n"
682 "BL sub_FF8B180C\n"
683 "BL sub_FF8B2430\n"
684 "BL sub_FF8B1F84\n"
685 "B loc_FF8C1574\n"
686 "loc_FF8C1608:\n"
687 "LDR R0, [SP,#0x1C]\n"
688 "MOV R4, #1\n"
689 "LDR R1, [R0]\n"
690 "CMP R1, #0x11\n"
691 "CMPNE R1, #0x12\n"
692 "BNE loc_FF8C1678\n"
693 "LDR R1, [R0,#0x7C]\n"
694 "ADD R1, R1, R1,LSL#1\n"
695 "ADD R1, R0, R1,LSL#2\n"
696 "SUB R1, R1, #8\n"
697 "LDMIA R1, {R2-R4}\n"
698 "STMIA R6, {R2-R4}\n"
699 "BL sub_FF8BFD98\n"
700 "LDR R0, [SP,#0x1C]\n"
701 "LDR R1, [R0,#0x7C]\n"
702 "LDR R3, [R0,#0x8C]\n"
703 "LDR R2, [R0,#0x90]\n"
704 "ADD R0, R0, #4\n"
705 "BLX R3\n"
706 "LDR R0, [SP,#0x1C]\n"
707 "BL sub_FF8C2AAC\n"
708 "LDR R0, [SP,#0x1C]\n"
709 "LDR R1, [R0,#0x7C]\n"
710 "LDR R3, [R0,#0x94]\n"
711 "LDR R2, [R0,#0x98]\n"
712 "ADD R0, R0, #4\n"
713 "BLX R3\n"
714 "B loc_FF8C1970\n"
715 "loc_FF8C1678:\n"
716 "CMP R1, #0x13\n"
717 "CMPNE R1, #0x14\n"
718 "CMPNE R1, #0x15\n"
719 "CMPNE R1, #0x16\n"
720 "BNE loc_FF8C1730\n"
721 "ADD R3, SP, #0xC\n"
722 "MOV R2, SP\n"
723 "ADD R1, SP, #0x10\n"
724 "BL sub_FF8C0080\n"
725 "CMP R0, #1\n"
726 "MOV R4, R0\n"
727 "CMPNE R4, #5\n"
728 "BNE loc_FF8C16CC\n"
729 "LDR R0, [SP,#0x1C]\n"
730 "MOV R2, R4\n"
731 "LDR R1, [R0,#0x7C]!\n"
732 "LDR R12, [R0,#0x10]!\n"
733 "LDR R3, [R0,#4]\n"
734 "MOV R0, SP\n"
735 "BLX R12\n"
736 "B loc_FF8C1704\n"
737 "loc_FF8C16CC:\n"
738 "LDR R0, [SP,#0x1C]\n"
739 "CMP R4, #2\n"
740 "LDR R3, [R0,#0x90]\n"
741 "CMPNE R4, #6\n"
742 "BNE loc_FF8C1718\n"
743 "LDR R12, [R0,#0x8C]\n"
744 "MOV R0, SP\n"
745 "MOV R2, R4\n"
746 "MOV R1, #1\n"
747 "BLX R12\n"
748 "LDR R0, [SP,#0x1C]\n"
749 "MOV R2, SP\n"
750 "ADD R1, SP, #0x10\n"
751 "BL sub_FF8C1138\n"
752 "loc_FF8C1704:\n"
753 "LDR R0, [SP,#0x1C]\n"
754 "LDR R2, [SP,#0xC]\n"
755 "MOV R1, R4\n"
756 "BL sub_FF8C13D0\n"
757 "B loc_FF8C1970\n"
758 "loc_FF8C1718:\n"
759 "LDR R1, [R0,#0x7C]\n"
760 "LDR R12, [R0,#0x8C]\n"
761 "ADD R0, R0, #4\n"
762 "MOV R2, R4\n"
763 "BLX R12\n"
764 "B loc_FF8C1970\n"
765 "loc_FF8C1730:\n"
766 "CMP R1, #0x22\n"
767 "CMPNE R1, #0x23\n"
768 "BNE loc_FF8C177C\n"
769 "LDR R1, [R0,#0x7C]\n"
770 "ADD R1, R1, R1,LSL#1\n"
771 "ADD R1, R0, R1,LSL#2\n"
772 "SUB R1, R1, #8\n"
773 "LDMIA R1, {R2-R4}\n"
774 "STMIA R6, {R2-R4}\n"
775 "BL sub_FF8BF2DC\n"
776 "LDR R0, [SP,#0x1C]\n"
777 "LDR R1, [R0,#0x7C]\n"
778 "LDR R3, [R0,#0x8C]\n"
779 "LDR R2, [R0,#0x90]\n"
780 "ADD R0, R0, #4\n"
781 "BLX R3\n"
782 "LDR R0, [SP,#0x1C]\n"
783 "BL sub_FF8BF5DC\n"
784 "B loc_FF8C1970\n"
785 "loc_FF8C177C:\n"
786 "ADD R1, R0, #4\n"
787 "LDMIA R1, {R2,R3,R12}\n"
788 "STMIA R6, {R2,R3,R12}\n"
789 "LDR R1, [R0]\n"
790 "CMP R1, #0x25\n"
791 "ADDLS PC, PC, R1,LSL#2\n"
792 "B loc_FF8C1950\n"
793
794
795 "loc_FF8C1798:\n"
796 "B loc_FF8C1830\n"
797 "loc_FF8C179C:\n"
798 "B loc_FF8C1830\n"
799 "loc_FF8C17A0:\n"
800 "B loc_FF8C1838\n"
801 "loc_FF8C17A4:\n"
802 "B loc_FF8C1840\n"
803 "loc_FF8C17A8:\n"
804 "B loc_FF8C1840\n"
805 "loc_FF8C17AC:\n"
806 "B loc_FF8C1840\n"
807 "loc_FF8C17B0:\n"
808 "B loc_FF8C1830\n"
809 "loc_FF8C17B4:\n"
810 "B loc_FF8C1838\n"
811 "loc_FF8C17B8:\n"
812 "B loc_FF8C1840\n"
813 "loc_FF8C17BC:\n"
814 "B loc_FF8C1840\n"
815 "loc_FF8C17C0:\n"
816 "B loc_FF8C1858\n"
817 "loc_FF8C17C4:\n"
818 "B loc_FF8C1858\n"
819 "loc_FF8C17C8:\n"
820 "B loc_FF8C1944\n"
821 "loc_FF8C17CC:\n"
822 "B loc_FF8C194C\n"
823 "loc_FF8C17D0:\n"
824 "B loc_FF8C194C\n"
825 "loc_FF8C17D4:\n"
826 "B loc_FF8C194C\n"
827 "loc_FF8C17D8:\n"
828 "B loc_FF8C194C\n"
829 "loc_FF8C17DC:\n"
830 "B loc_FF8C1950\n"
831 "loc_FF8C17E0:\n"
832 "B loc_FF8C1950\n"
833 "loc_FF8C17E4:\n"
834 "B loc_FF8C1950\n"
835 "loc_FF8C17E8:\n"
836 "B loc_FF8C1950\n"
837 "loc_FF8C17EC:\n"
838 "B loc_FF8C1950\n"
839 "loc_FF8C17F0:\n"
840 "B loc_FF8C1950\n"
841 "loc_FF8C17F4:\n"
842 "B loc_FF8C1848\n"
843 "loc_FF8C17F8:\n"
844 "B loc_FF8C1850\n"
845 "loc_FF8C17FC:\n"
846 "B loc_FF8C1850\n"
847 "loc_FF8C1800:\n"
848 "B loc_FF8C1864\n"
849 "loc_FF8C1804:\n"
850 "B loc_FF8C1864\n"
851 "loc_FF8C1808:\n"
852 "B loc_FF8C186C\n"
853 "loc_FF8C180C:\n"
854 "B loc_FF8C189C\n"
855 "loc_FF8C1810:\n"
856 "B loc_FF8C18CC\n"
857 "loc_FF8C1814:\n"
858 "B loc_FF8C18FC\n"
859 "loc_FF8C1818:\n"
860 "B loc_FF8C192C\n"
861 "loc_FF8C181C:\n"
862 "B loc_FF8C192C\n"
863 "loc_FF8C1820:\n"
864 "B loc_FF8C1950\n"
865 "loc_FF8C1824:\n"
866 "B loc_FF8C1950\n"
867 "loc_FF8C1828:\n"
868 "B loc_FF8C1934\n"
869 "loc_FF8C182C:\n"
870 "B loc_FF8C193C\n"
871
872
873 "loc_FF8C1830:\n"
874 "BL sub_FF8BE0D4\n"
875 "B loc_FF8C1950\n"
876 "loc_FF8C1838:\n"
877 "BL sub_FF8BE35C\n"
878 "B loc_FF8C1950\n"
879 "loc_FF8C1840:\n"
880 "BL sub_FF8BE564\n"
881 "B loc_FF8C1950\n"
882 "loc_FF8C1848:\n"
883 "BL sub_FF8BE7DC\n"
884 "B loc_FF8C1950\n"
885 "loc_FF8C1850:\n"
886 "BL sub_FF8BE9D4\n"
887 "B loc_FF8C1950\n"
888 "loc_FF8C1858:\n"
889
890 "BL sub_FF8BEC90_my\n"
891 "MOV R4, #0\n"
892 "B loc_FF8C1950\n"
893 "loc_FF8C1864:\n"
894 "BL sub_FF8BEDD0\n"
895 "B loc_FF8C1950\n"
896 "loc_FF8C186C:\n"
897 "LDRH R1, [R0,#4]\n"
898 "STRH R1, [SP,#0x10]\n"
899 "LDRH R1, [R5,#2]\n"
900 "STRH R1, [SP,#0x12]\n"
901 "LDRH R1, [R5,#4]\n"
902 "STRH R1, [SP,#0x14]\n"
903 "LDRH R1, [R5,#6]\n"
904 "STRH R1, [SP,#0x16]\n"
905 "LDRH R1, [R0,#0xC]\n"
906 "STRH R1, [SP,#0x18]\n"
907 "BL sub_FF8C275C\n"
908 "B loc_FF8C1950\n"
909 "loc_FF8C189C:\n"
910 "LDRH R1, [R0,#4]\n"
911 "STRH R1, [SP,#0x10]\n"
912 "LDRH R1, [R5,#2]\n"
913 "STRH R1, [SP,#0x12]\n"
914 "LDRH R1, [R5,#4]\n"
915 "STRH R1, [SP,#0x14]\n"
916 "LDRH R1, [R5,#6]\n"
917 "STRH R1, [SP,#0x16]\n"
918 "LDRH R1, [R5,#8]\n"
919 "STRH R1, [SP,#0x18]\n"
920 "BL sub_FF8C28C4\n"
921 "B loc_FF8C1950\n"
922 "loc_FF8C18CC:\n"
923 "LDRH R1, [R5]\n"
924 "STRH R1, [SP,#0x10]\n"
925 "LDRH R1, [R0,#6]\n"
926 "STRH R1, [SP,#0x12]\n"
927 "LDRH R1, [R5,#4]\n"
928 "STRH R1, [SP,#0x14]\n"
929 "LDRH R1, [R5,#6]\n"
930 "STRH R1, [SP,#0x16]\n"
931 "LDRH R1, [R5,#8]\n"
932 "STRH R1, [SP,#0x18]\n"
933 "BL sub_FF8C2970\n"
934 "B loc_FF8C1950\n"
935 "loc_FF8C18FC:\n"
936 "LDRH R1, [R5]\n"
937 "STRH R1, [SP,#0x10]\n"
938 "LDRH R1, [R5,#2]\n"
939 "STRH R1, [SP,#0x12]\n"
940 "LDRH R1, [R5,#4]\n"
941 "STRH R1, [SP,#0x14]\n"
942 "LDRH R1, [R5,#6]\n"
943 "STRH R1, [SP,#0x16]\n"
944 "LDRH R1, [R0,#0xC]\n"
945 "STRH R1, [SP,#0x18]\n"
946 "BL sub_FF8C2A10\n"
947 "B loc_FF8C1950\n"
948 "loc_FF8C192C:\n"
949 "BL sub_FF8BF118\n"
950 "B loc_FF8C1950\n"
951 "loc_FF8C1934:\n"
952 "BL sub_FF8BF6E0\n"
953 "B loc_FF8C1950\n"
954 "loc_FF8C193C:\n"
955 "BL sub_FF8BF91C\n"
956 "B loc_FF8C1950\n"
957 "loc_FF8C1944:\n"
958 "BL sub_FF8BFA98\n"
959 "B loc_FF8C1950\n"
960 "loc_FF8C194C:\n"
961 "BL sub_FF8BFC34\n"
962 "loc_FF8C1950:\n"
963 "LDR R0, [SP,#0x1C]\n"
964 "LDR R1, [R0,#0x7C]\n"
965 "LDR R3, [R0,#0x8C]\n"
966 "LDR R2, [R0,#0x90]\n"
967 "ADD R0, R0, #4\n"
968 "BLX R3\n"
969 "CMP R4, #1\n"
970 "BNE loc_FF8C19B8\n"
971 "loc_FF8C1970:\n"
972 "LDR R0, [SP,#0x1C]\n"
973 "MOV R2, #0xC\n"
974 "LDR R1, [R0,#0x7C]\n"
975 "ADD R1, R1, R1,LSL#1\n"
976 "ADD R0, R0, R1,LSL#2\n"
977 "SUB R4, R0, #8\n"
978 "LDR R0, =0x3D90C\n"
979 "ADD R1, SP, #0x10\n"
980 "BL sub_FFB36870\n"
981 "LDR R0, =0x3D918\n"
982 "MOV R2, #0xC\n"
983 "ADD R1, SP, #0x10\n"
984 "BL sub_FFB36870\n"
985 "LDR R0, =0x3D924\n"
986 "MOV R2, #0xC\n"
987 "MOV R1, R4\n"
988 "BL sub_FFB36870\n"
989 "B loc_FF8C1A30\n"
990 "loc_FF8C19B8:\n"
991 "LDR R0, [SP,#0x1C]\n"
992 "LDR R0, [R0]\n"
993 "CMP R0, #0xB\n"
994 "BNE loc_FF8C1A00\n"
995 "MOV R3, #0\n"
996 "STR R3, [SP]\n"
997 "MOV R3, #1\n"
998 "MOV R2, #1\n"
999 "MOV R1, #1\n"
1000 "MOV R0, #0\n"
1001 "BL sub_FF8BDEDC\n"
1002 "MOV R3, #0\n"
1003 "STR R3, [SP]\n"
1004 "MOV R3, #1\n"
1005 "MOV R2, #1\n"
1006 "MOV R1, #1\n"
1007 "MOV R0, #0\n"
1008 "B loc_FF8C1A2C\n"
1009 "loc_FF8C1A00:\n"
1010 "MOV R3, #1\n"
1011 "MOV R2, #1\n"
1012 "MOV R1, #1\n"
1013 "MOV R0, #1\n"
1014 "STR R3, [SP]\n"
1015 "BL sub_FF8BDEDC\n"
1016 "MOV R3, #1\n"
1017 "MOV R2, #1\n"
1018 "MOV R1, #1\n"
1019 "MOV R0, #1\n"
1020 "STR R3, [SP]\n"
1021 "loc_FF8C1A2C:\n"
1022 "BL sub_FF8BE01C\n"
1023 "loc_FF8C1A30:\n"
1024 "LDR R0, [SP,#0x1C]\n"
1025 "BL sub_FF8C26E8\n"
1026 "B loc_FF8C14A0\n"
1027
1028
1029 );
1030 }
1031
1032
1033 void __attribute__((naked,noinline)) sub_FF8BEC90_my(){
1034
1035 asm volatile(
1036 "STMFD SP!, {R4-R8,LR}\n"
1037 "LDR R7, =0x4658\n"
1038 "MOV R4, R0\n"
1039 "LDR R0, [R7,#0x1C]\n"
1040 "MOV R1, #0x3E\n"
1041 "BL sub_FF8871B0\n"
1042 "LDRSH R0, [R4,#4]\n"
1043 "MOV R2, #0\n"
1044 "MOV R1, #0\n"
1045 "BL sub_FF8BDC40\n"
1046 "MOV R6, R0\n"
1047 "LDRSH R0, [R4,#6]\n"
1048 "BL sub_FF8BDD50\n"
1049 "LDRSH R0, [R4,#8]\n"
1050 "BL sub_FF8BDDA8\n"
1051 "LDRSH R0, [R4,#0xA]\n"
1052 "BL sub_FF8BDE00\n"
1053 "LDRSH R0, [R4,#0xC]\n"
1054 "MOV R1, #0\n"
1055 "BL sub_FF8BDE58\n"
1056 "MOV R5, R0\n"
1057 "LDR R0, [R4]\n"
1058 "LDR R8, =0x3D924\n"
1059 "CMP R0, #0xB\n"
1060 "MOVEQ R6, #0\n"
1061 "MOVEQ R5, #0\n"
1062 "BEQ loc_FF8BED24\n"
1063 "CMP R6, #1\n"
1064 "BNE loc_FF8BED24\n"
1065 "LDRSH R0, [R4,#4]\n"
1066 "LDR R1, =0xFF8BDBAC\n"
1067 "MOV R2, #2\n"
1068 "BL sub_FF951BF4\n"
1069 "STRH R0, [R4,#4]\n"
1070 "MOV R0, #0\n"
1071 "STR R0, [R7,#0x28]\n"
1072 "B loc_FF8BED2C\n"
1073
1074 "loc_FF8BED24:\n"
1075 "LDRH R0, [R8]\n"
1076 "STRH R0, [R4,#4]\n"
1077 "loc_FF8BED2C:\n"
1078 "CMP R5, #1\n"
1079 "LDRNEH R0, [R8,#8]\n"
1080 "BNE loc_FF8BED48\n"
1081 "LDRSH R0, [R4,#0xC]\n"
1082 "LDR R1, =0xFF8BDC30\n"
1083 "MOV R2, #0x20\n"
1084 "BL sub_FF8C2718\n"
1085 "loc_FF8BED48:\n"
1086 "STRH R0, [R4,#0xC]\n"
1087 "LDRSH R0, [R4,#6]\n"
1088 "BL sub_FF8B157C_my\n"
1089 "LDRSH R0, [R4,#8]\n"
1090 "MOV R1, #1\n"
1091 "BL sub_FF8B1CCC\n"
1092 "MOV R1, #0\n"
1093 "ADD R0, R4, #8\n"
1094 "BL sub_FF8B1D54\n"
1095 "LDRSH R0, [R4,#0xE]\n"
1096 "BL sub_FF8B96F8\n"
1097 "LDR R4, =0xBB8\n"
1098 "CMP R6, #1\n"
1099 "BNE loc_FF8BEDA0\n"
1100 "LDR R0, [R7,#0x1C]\n"
1101 "MOV R2, R4\n"
1102 "MOV R1, #2\n"
1103 "BL sub_FF8870BC\n"
1104 "TST R0, #1\n"
1105 "SUBNE R1, R4, #0x620\n"
1106 "LDRNE R0, =0xFF8BE230\n"
1107 "BLNE sub_FF81E88C\n"
1108 "loc_FF8BEDA0:\n"
1109 "CMP R5, #1\n"
1110 "LDMNEFD SP!, {R4-R8,PC}\n"
1111 "LDR R0, [R7,#0x1C]\n"
1112 "MOV R2, R4\n"
1113 "MOV R1, #0x20\n"
1114 "BL sub_FF8870BC\n"
1115 "TST R0, #1\n"
1116 "LDRNE R1, =0x59D\n"
1117 "LDRNE R0, =0xFF8BE230\n"
1118 "LDMNEFD SP!, {R4-R8,LR}\n"
1119 "BNE sub_FF81E88C\n"
1120 "LDMFD SP!, {R4-R8,PC}\n"
1121
1122 );
1123 }
1124
1125 void __attribute__((naked,noinline)) sub_FF8B157C_my(){
1126
1127 asm volatile(
1128 "STMFD SP!, {R4-R6,LR}\n"
1129 "LDR R5, =0x4370\n"
1130 "MOV R4, R0\n"
1131 "LDR R0, [R5,#4]\n"
1132 "CMP R0, #1\n"
1133 "LDRNE R1, =0x146\n"
1134 "LDRNE R0, =0xFF8B1380\n"
1135 "BLNE sub_FF81E88C\n"
1136 "CMN R4, #0xC00\n"
1137 "LDREQSH R4, [R5,#2]\n"
1138 "CMN R4, #0xC00\n"
1139 "MOVEQ R1, #0x14C\n"
1140 "LDREQ R0, =0xFF8B1380\n"
1141 "STRH R4, [R5,#2]\n"
1142 "BLEQ sub_FF81E88C\n"
1143 "MOV R0, R4\n"
1144
1145 "BL apex2us\n"
1146 "MOV R4, R0\n"
1147
1148 "MOV R0, R4\n"
1149 "BL sub_FF8F3358\n"
1150 "TST R0, #1\n"
1151 "LDRNE R1, =0x151\n"
1152 "LDMNEFD SP!, {R4-R6,LR}\n"
1153 "LDRNE R0, =0xFF8B1380\n"
1154 "BNE sub_FF81E88C\n"
1155 "LDMFD SP!, {R4-R6,PC}\n"
1156
1157 );
1158 }