This source file includes following definitions.
- capt_seq_task
- sub_FF94242C_my
- sub_FF873374_my
- exp_drv_task
- sub_FF8B0758_my
- sub_FF8A2F04_my
1
2 #include "lolevel.h"
3 #include "platform.h"
4 #include "core.h"
5 #include "conf.h"
6
7 static long *nrflag = (long*)0x6718;
8
9 #include "../../../generic/capt_seq.c"
10
11
12
13
14 void __attribute__((naked,noinline)) capt_seq_task() {
15 asm volatile (
16 " STMFD SP!, {R3-R9,LR} \n"
17 " LDR R6, =0x2988 \n"
18 " LDR R4, =0x37B08 \n"
19 " MOV R9, #1 \n"
20 " MOV R7, #0 \n"
21 "loc_FF872F98:\n"
22 " LDR R0, [R6, #4] \n"
23 " MOV R2, #0 \n"
24 " MOV R1, SP \n"
25 " BL sub_FF837DC8 \n"
26 " TST R0, #1 \n"
27 " BEQ loc_FF872FC4 \n"
28 " LDR R1, =0x5B4 \n"
29 " LDR R0, =0xFF872B14 \n"
30 " BL sub_FF81E88C \n"
31 " BL sub_FF81E844 \n"
32 " LDMFD SP!, {R3-R9,PC} \n"
33 "loc_FF872FC4:\n"
34 " LDR R0, [SP] \n"
35 " LDR R1, [R0] \n"
36 " CMP R1, #0x1D \n"
37 " ADDLS PC, PC, R1, LSL #2 \n"
38 " B loc_FF873250 \n"
39
40 " B loc_FF873050 \n"
41 " B loc_FF8730B4 \n"
42 " B loc_FF8730F0 \n"
43 " B loc_FF873104 \n"
44 " B loc_FF8730FC \n"
45 " B loc_FF87310C \n"
46 " B loc_FF873114 \n"
47 " B loc_FF87311C \n"
48 " B loc_FF873174 \n"
49 " B loc_FF87319C \n"
50 " B loc_FF873180 \n"
51 " B loc_FF87318C \n"
52 " B loc_FF873194 \n"
53 " B loc_FF8731A4 \n"
54 " B loc_FF8731AC \n"
55 " B loc_FF8731B4 \n"
56 " B loc_FF8731BC \n"
57 " B loc_FF8731C4 \n"
58 " B loc_FF8731D0 \n"
59 " B loc_FF8731D8 \n"
60 " B loc_FF8731E0 \n"
61 " B loc_FF8731E8 \n"
62 " B loc_FF8731F0 \n"
63 " B loc_FF8731FC \n"
64 " B loc_FF873204 \n"
65 " B loc_FF87320C \n"
66 " B loc_FF873214 \n"
67 " B loc_FF87321C \n"
68 " B loc_FF873228 \n"
69 " B loc_FF87325C \n"
70
71 "loc_FF873050:\n"
72 " BL sub_FF8738DC \n"
73 " BL shooting_expo_param_override\n"
74 " BL sub_FF870DCC \n"
75
76
77
78 " MOV R0, #0\n"
79 " STR R0, [R4,#0x24]\n"
80
81 " LDR R0, [R4, #0x24] \n"
82 " CMP R0, #0 \n"
83 " BEQ loc_FF87325C \n"
84 " BL sub_FF8727F4 \n"
85 " MOV R5, R0 \n"
86 " LDR R0, [R4, #0x24] \n"
87 " CMP R0, #0 \n"
88 " BEQ loc_FF873098 \n"
89 " MOV R0, #0xC \n"
90 " BL sub_FF877A20 \n"
91 " TST R0, #1 \n"
92 " STRNE R9, [R6, #0x10] \n"
93 " LDRNE R0, [R5, #8] \n"
94 " ORRNE R0, R0, #0x40000000 \n"
95 " STRNE R0, [R5, #8] \n"
96 " BNE loc_FF87325C \n"
97
98 "loc_FF873098:\n"
99 " MOV R0, R5 \n"
100 " BL sub_FF872A98 \n"
101 " MOV R0, R5 \n"
102
103
104 " BL sub_FF94242C_my\n"
105
106 " TST R0, #1 \n"
107 " STRNE R9, [R6, #0x10] \n"
108 " B loc_FF87325C \n"
109
110 "loc_FF8730B4:\n"
111 " LDR R0, [R4, #0x24] \n"
112 " CMP R0, #0 \n"
113 " BNE loc_FF8730E0 \n"
114 " MOV R0, #0xC \n"
115 " BL sub_FF877A20 \n"
116 " TST R0, #1 \n"
117 " LDRNE R0, [SP] \n"
118 " MOVNE R1, #1 \n"
119 " LDRNE R2, [R0, #0xC] \n"
120 " MOVNE R0, #1 \n"
121 " BNE loc_FF87316C \n"
122
123 "loc_FF8730E0:\n"
124 " LDR R0, [SP] \n"
125
126 " BL sub_FF873374_my \n"
127
128
129 "loc_FF8730E8:\n"
130 " STR R7, [R4, #0x24] \n"
131 " B loc_FF87325C \n"
132
133 "loc_FF8730F0:\n"
134 " MOV R0, #1 \n"
135 " BL sub_FF873B30 \n"
136 " B loc_FF87325C \n"
137
138 "loc_FF8730FC:\n"
139 " BL sub_FF87351C \n"
140 " B loc_FF8730E8 \n"
141
142 "loc_FF873104:\n"
143 " BL sub_FF8738BC \n"
144 " B loc_FF8730E8 \n"
145
146 "loc_FF87310C:\n"
147 " BL sub_FF8738C4 \n"
148 " B loc_FF87325C \n"
149
150 "loc_FF873114:\n"
151 " BL sub_FF873A50 \n"
152 " B loc_FF873178 \n"
153
154 "loc_FF87311C:\n"
155 " LDR R5, [R0, #0xC] \n"
156 " BL sub_FF8738CC \n"
157 " MOV R0, R5 \n"
158 " BL sub_FF941244 \n"
159 " TST R0, #1 \n"
160 " MOV R8, R0 \n"
161 " BNE loc_FF87315C \n"
162 " BL sub_FF884AD8 \n"
163 " STR R0, [R5, #0x18] \n"
164 " MOV R0, R5 \n"
165 " BL sub_FF942344 \n"
166 " MOV R0, R5 \n"
167 " BL sub_FF942740 \n"
168 " MOV R8, R0 \n"
169 " LDR R0, [R5, #0x18] \n"
170 " BL sub_FF884CDC \n"
171 "loc_FF87315C:\n"
172 " BL sub_FF8738BC \n"
173 " MOV R2, R5 \n"
174 " MOV R1, #9 \n"
175 " MOV R0, R8 \n"
176 "loc_FF87316C:\n"
177 " BL sub_FF8712B8 \n"
178 " B loc_FF87325C \n"
179
180
181 "loc_FF873174:\n"
182 " BL sub_FF873AB0 \n"
183 "loc_FF873178:\n"
184 " BL sub_FF870DCC \n"
185 " B loc_FF87325C \n"
186 "loc_FF873180:\n"
187 " LDR R0, [R4, #0x54] \n"
188 " BL sub_FF873EBC \n"
189 " B loc_FF87325C \n"
190 "loc_FF87318C:\n"
191 " BL sub_FF874170 \n"
192 " B loc_FF87325C \n"
193 "loc_FF873194:\n"
194 " BL sub_FF874204 \n"
195 " B loc_FF87325C \n"
196 "loc_FF87319C:\n"
197 " BL sub_FF8738BC \n"
198 " B loc_FF87325C \n"
199 "loc_FF8731A4:\n"
200 " BL sub_FF94145C \n"
201 " B loc_FF87325C \n"
202 "loc_FF8731AC:\n"
203 " BL sub_FF941670 \n"
204 " B loc_FF87325C \n"
205 "loc_FF8731B4:\n"
206 " BL sub_FF941708 \n"
207 " B loc_FF87325C \n"
208 "loc_FF8731BC:\n"
209 " BL sub_FF9417D8 \n"
210 " B loc_FF87325C \n"
211 "loc_FF8731C4:\n"
212 " MOV R0, #0 \n"
213 " BL sub_FF941A28 \n"
214 " B loc_FF87325C \n"
215 "loc_FF8731D0:\n"
216 " BL sub_FF941B78 \n"
217 " B loc_FF87325C \n"
218 "loc_FF8731D8:\n"
219 " BL sub_FF941C08 \n"
220 " B loc_FF87325C \n"
221 "loc_FF8731E0:\n"
222 " BL sub_FF941CC8 \n"
223 " B loc_FF87325C \n"
224 "loc_FF8731E8:\n"
225 " BL sub_FF873CA8 \n"
226 " B loc_FF87325C \n"
227 "loc_FF8731F0:\n"
228 " BL sub_FF873D48 \n"
229 " BL sub_FF835F18 \n"
230 " B loc_FF87325C \n"
231 "loc_FF8731FC:\n"
232 " BL sub_FF9418A4 \n"
233 " B loc_FF87325C \n"
234 "loc_FF873204:\n"
235 " BL sub_FF941910 \n"
236 " B loc_FF87325C \n"
237 "loc_FF87320C:\n"
238 " BL sub_FF8761D0 \n"
239 " B loc_FF87325C \n"
240 "loc_FF873214:\n"
241 " BL sub_FF876238 \n"
242 " B loc_FF87325C \n"
243 "loc_FF87321C:\n"
244 " BL sub_FF876294 \n"
245 " BL sub_FF876254 \n"
246 " B loc_FF87325C \n"
247 "loc_FF873228:\n"
248 " MOV R0, #1 \n"
249 " BL sub_FF942F84 \n"
250 " MOV R0, #1 \n"
251 " BL sub_FF943094 \n"
252 " LDRH R0, [R4, #0x98] \n"
253 " CMP R0, #4 \n"
254 " BNE loc_FF87325C \n"
255 " BL sub_FF876238 \n"
256 " BL sub_FF876674 \n"
257 " B loc_FF87325C \n"
258
259 "loc_FF873250:\n"
260 " LDR R1, =0x709 \n"
261 " LDR R0, =0xFF872B14 \n"
262 " BL sub_FF81E88C \n"
263
264 "loc_FF87325C:\n"
265 " LDR R0, [SP] \n"
266 " LDR R1, [R0, #4] \n"
267 " LDR R0, [R6] \n"
268 " BL sub_FF87C7DC \n"
269 " LDR R5, [SP] \n"
270 " LDR R0, [R5, #8] \n"
271 " CMP R0, #0 \n"
272 " LDREQ R1, =0x132 \n"
273 " LDREQ R0, =0xFF872B14 \n"
274 " BLEQ sub_FF81E88C \n"
275 " STR R7, [R5, #8] \n"
276 " B loc_FF872F98 \n"
277 );
278 }
279
280
281
282
283
284 void __attribute__((naked,noinline)) sub_FF94242C_my() {
285 asm volatile (
286 " STMFD SP!, {R0-R8,LR} \n"
287 " MOV R4, R0 \n"
288 " BL sub_FF943280 \n"
289 " MVN R1, #0 \n"
290 " BL sub_FF87C810 \n"
291 " LDR R5, =0x6718 \n"
292 " LDR R0, [R5, #0xC] \n"
293 " CMP R0, #0 \n"
294 " BNE loc_FF94247C \n"
295 " MOV R1, #1 \n"
296 " MOV R0, #0 \n"
297 " BL sub_FF838610 \n"
298 " STR R0, [R5, #0xC] \n"
299 " MOV R3, #0 \n"
300 " STR R3, [SP] \n"
301 " LDR R3, =0xFF941DB8 \n"
302 " LDR R0, =0xFF9426A8 \n"
303 " MOV R2, #0x400\n"
304 " MOV R1, #0x17 \n"
305 " BL sub_FF8385DC \n"
306 "loc_FF94247C:\n"
307 " MOV R2, #4 \n"
308 " ADD R1, SP, #0x08 \n"
309 " MOV R0, #0x8A \n"
310 " BL sub_FF884948 \n"
311 " TST R0, #1 \n"
312 " LDRNE R1, =0x3C5 \n"
313 " LDRNE R0, =0xFF942050 \n"
314 " BLNE sub_FF81E88C \n"
315 " LDR R6, =0x37BCC \n"
316 " LDR R8, =0x37B08 \n"
317 " LDRSH R2, [R6, #0xC] \n"
318 " LDRSH R1, [R6, #0xE] \n"
319 " LDR R0, [R8, #0x8C] \n"
320 " BL sub_FF90B564 \n"
321 " BL sub_FF85BC98 \n"
322 " LDR R3, =0x6720 \n"
323 " STRH R0, [R4, #0xA4] \n"
324 " SUB R2, R3, #4 \n"
325 " STRD R2, [SP]\n"
326 " MOV R1, R0 \n"
327 " LDRH R0, [R8, #0x5C] \n"
328 " LDRSH R2, [R6, #0xC] \n"
329 " SUB R3, R3, #8 \n"
330 " BL sub_FF9448C4 \n"
331
332 " BL wait_until_remote_button_is_released\n"
333 " BL capt_seq_hook_set_nr\n"
334
335 " B sub_FF9424DC \n"
336 );
337 }
338
339
340
341
342
343
344 void __attribute__((naked,noinline)) sub_FF873374_my() {
345 asm volatile (
346 " STMFD SP!, {R4-R6,LR} \n"
347 " LDR R4, [R0, #0xC] \n"
348 " LDR R6, =0x37B08 \n"
349 " LDR R0, [R4, #8] \n"
350 " MOV R5, #0 \n"
351 " ORR R0, R0, #1 \n"
352 " STR R0, [R4, #8] \n"
353 " LDR R0, [R6, #0x24] \n"
354 " CMP R0, #0 \n"
355 " MOVEQ R0, #2 \n"
356 " BLEQ sub_FF86F4AC \n"
357 " BL sub_FF8738CC \n"
358 " LDR R0, [R6, #0x24] \n"
359 " CMP R0, #0 \n"
360 " BNE loc_FF87343C \n"
361 " MOV R0, #0 \n"
362 " BL sub_FF942F84 \n"
363 " MOV R0, #0 \n"
364 " BL sub_FF943094 \n"
365 " MOV R0, R4 \n"
366 " BL sub_FF873C50 \n"
367 " MOV R0, R4 \n"
368 " BL sub_FF940E94 \n"
369 " CMP R0, #0 \n"
370 " BEQ loc_FF873404 \n"
371 " BL sub_FF942FC4 \n"
372 " BL sub_FF9430D8 \n"
373 " BL sub_FF943128 \n"
374 " MOV R0, R4 \n"
375 " BL sub_FF940F78 \n"
376 " TST R0, #1 \n"
377 " MOVNE R2, R4 \n"
378 " LDMNEFD SP!, {R4-R6,LR} \n"
379 " MOVNE R1, #1 \n"
380 " BNE sub_FF8712B8 \n"
381 " B loc_FF873418 \n"
382 "loc_FF873404:\n"
383 " MOV R0, R4 \n"
384 " BL sub_FF940F14 \n"
385 " BL sub_FF942FC4 \n"
386 " BL sub_FF9430D8 \n"
387 " BL sub_FF943128 \n"
388 "loc_FF873418:\n"
389 " MOV R0, R4 \n"
390 " BL sub_FF872A98 \n"
391 " MOV R0, R4 \n"
392 " BL sub_FF942344 \n"
393 " BL sub_FF942DBC \n"
394 " MOV R0, R4 \n"
395
396
397 " BL sub_FF94242C_my \n"
398
399 " MOV R5, R0 \n"
400 " BL capt_seq_hook_raw_here\n"
401 " B loc_FF87344C \n"
402
403
404
405 "loc_FF87343C:\n"
406 " LDR R0, =0x2988 \n"
407 " LDR R0, [R0, #0x10] \n"
408 " CMP R0, #0 \n"
409 " MOVNE R5, #0x1D \n"
410
411 "loc_FF87344C:\n"
412 " BL sub_FF876238 \n"
413 " BL sub_FF876280 \n"
414 " BL sub_FF8762C0 \n"
415 " MOV R2, R4 \n"
416 " MOV R1, #1 \n"
417 " MOV R0, R5 \n"
418 " BL sub_FF8712B8 \n"
419 " BL sub_FF9426E4 \n"
420 " CMP R0, #0 \n"
421 " LDRNE R0, [R4, #8] \n"
422 " ORRNE R0, R0, #0x2000 \n"
423 " STRNE R0, [R4, #8] \n"
424 " LDMFD SP!, {R4-R6,PC} \n"
425 );
426 }
427
428
429
430
431
432 void __attribute__((naked,noinline)) exp_drv_task() {
433 asm volatile (
434 " STMFD SP!, {R4-R8,LR} \n"
435 " SUB SP, SP, #0x20 \n"
436 " LDR R8, =0xBB8 \n"
437 " LDR R7, =0x3C80 \n"
438 " LDR R5, =0x3C760 \n"
439 " MOV R0, #0 \n"
440 " ADD R6, SP, #0x10 \n"
441 " STR R0, [SP, #0x0C] \n"
442 "loc_FF8B2F94:\n"
443 " LDR R0, [R7, #0x20] \n"
444 " MOV R2, #0 \n"
445 " ADD R1, SP, #0x1C \n"
446 " BL sub_FF837DC8 \n"
447 " LDR R0, [SP, #0x0C] \n"
448 " CMP R0, #1 \n"
449 " BNE loc_FF8B2FE0 \n"
450 " LDR R0, [SP, #0x1C] \n"
451 " LDR R0, [R0] \n"
452 " CMP R0, #0x13 \n"
453 " CMPNE R0, #0x14 \n"
454 " CMPNE R0, #0x15 \n"
455 " CMPNE R0, #0x16 \n"
456 " BEQ loc_FF8B30FC \n"
457 " CMP R0, #0x28 \n"
458 " BEQ loc_FF8B30D4 \n"
459 " ADD R1, SP, #0x0C \n"
460 " MOV R0, #0 \n"
461 " BL sub_FF8B2F24 \n"
462 "loc_FF8B2FE0:\n"
463 " LDR R0, [SP, #0x1C] \n"
464 " LDR R1, [R0] \n"
465 " CMP R1, #0x2D \n"
466 " BNE loc_FF8B3010 \n"
467 " LDR R0, [SP, #0x1C] \n"
468 " BL sub_FF8B41E4 \n"
469 " LDR R0, [R7, #0x1C] \n"
470 " MOV R1, #1 \n"
471 " BL sub_FF87C7DC \n"
472 " BL sub_FF81E844 \n"
473 " ADD SP, SP, #0x20 \n"
474 " LDMFD SP!, {R4-R8,PC} \n"
475 "loc_FF8B3010:\n"
476 " CMP R1, #0x2C \n"
477 " BNE loc_FF8B302C \n"
478 " LDR R2, [R0, #0x8C]! \n"
479 " LDR R1, [R0, #4] \n"
480 " MOV R0, R1 \n"
481 " BLX R2 \n"
482 " B loc_FF8B3524 \n"
483 "loc_FF8B302C:\n"
484 " CMP R1, #0x26 \n"
485 " BNE loc_FF8B307C \n"
486 " LDR R0, [R7, #0x1C] \n"
487 " MOV R1, #0x80 \n"
488 " BL sub_FF87C810 \n"
489 " LDR R0, =0xFF8AF684 \n"
490 " MOV R1, #0x80 \n"
491 " BL sub_FF936254 \n"
492 " LDR R0, [R7, #0x1C] \n"
493 " MOV R2, R8 \n"
494 " MOV R1, #0x80 \n"
495 " BL sub_FF87C71C \n"
496 " TST R0, #1 \n"
497 " LDRNE R1, =0xE54 \n"
498 " BNE loc_FF8B30C0 \n"
499 "loc_FF8B3068:\n"
500 " LDR R1, [SP, #0x1C] \n"
501 " LDR R0, [R1, #0x90] \n"
502 " LDR R1, [R1, #0x8C] \n"
503 " BLX R1 \n"
504 " B loc_FF8B3524 \n"
505 "loc_FF8B307C:\n"
506 " CMP R1, #0x27 \n"
507 " BNE loc_FF8B30CC \n"
508 " ADD R1, SP, #0xC \n"
509 " BL sub_FF8B2F24 \n"
510 " LDR R0, [R7, #0x1C] \n"
511 " MOV R1, #0x100 \n"
512 " BL sub_FF87C810 \n"
513 " LDR R0, =0xFF8AF694 \n"
514 " MOV R1, #0x100 \n"
515 " BL sub_FF9364DC \n"
516 " LDR R0, [R7, #0x1C] \n"
517 " MOV R2, R8 \n"
518 " MOV R1, #0x100 \n"
519 " BL sub_FF87C71C \n"
520 " TST R0, #1 \n"
521 " BEQ loc_FF8B3068 \n"
522 " LDR R1, =0xE5E \n"
523 "loc_FF8B30C0:\n"
524 " LDR R0, =0xFF8AFCF8 \n"
525 " BL sub_FF81E88C \n"
526 " B loc_FF8B3068 \n"
527 "loc_FF8B30CC:\n"
528 " CMP R1, #0x28 \n"
529 " BNE loc_FF8B30E4 \n"
530 "loc_FF8B30D4:\n"
531 " LDR R0, [SP, #0x1C] \n"
532 " ADD R1, SP, #0x0C \n"
533 " BL sub_FF8B2F24 \n"
534 " B loc_FF8B3068 \n"
535 "loc_FF8B30E4:\n"
536 " CMP R1, #0x2B \n"
537 " BNE loc_FF8B30FC \n"
538 " BL sub_FF8A3194 \n"
539 " BL sub_FF8A3DB8 \n"
540 " BL sub_FF8A390C \n"
541 " B loc_FF8B3068 \n"
542 "loc_FF8B30FC:\n"
543 " LDR R0, [SP, #0x1C] \n"
544 " MOV R4, #1 \n"
545 " LDR R1, [R0] \n"
546 " CMP R1, #0x11 \n"
547 " CMPNE R1, #0x12 \n"
548 " BNE loc_FF8B316C \n"
549 " LDR R1, [R0, #0x7C] \n"
550 " ADD R1, R1, R1, LSL #1 \n"
551 " ADD R1, R0, R1, LSL #2 \n"
552 " SUB R1, R1, #8 \n"
553 " LDMIA R1, {R2-R4} \n"
554 " STMIA R6, {R2-R4} \n"
555 " BL sub_FF8B1838 \n"
556 " LDR R0, [SP, #0x1C] \n"
557 " LDR R1, [R0, #0x7C] \n"
558 " LDR R3, [R0, #0x8C] \n"
559 " LDR R2, [R0, #0x90] \n"
560 " ADD R0, R0, #4 \n"
561 " BLX R3 \n"
562 " LDR R0, [SP, #0x1C] \n"
563 " BL sub_FF8B45A4 \n"
564 " LDR R0, [SP, #0x1C] \n"
565 " LDR R1, [R0, #0x7C] \n"
566 " LDR R3, [R0, #0x94] \n"
567 " LDR R2, [R0, #0x98] \n"
568 " ADD R0, R0, #4 \n"
569 " BLX R3 \n"
570 " B loc_FF8B3464 \n"
571 "loc_FF8B316C:\n"
572 " CMP R1, #0x13 \n"
573 " CMPNE R1, #0x14 \n"
574 " CMPNE R1, #0x15 \n"
575 " CMPNE R1, #0x16 \n"
576 " BNE loc_FF8B3224 \n"
577 " ADD R3, SP, #0x0C \n"
578 " MOV R2, SP \n"
579 " ADD R1, SP, #0x10 \n"
580 " BL sub_FF8B1B20 \n"
581 " CMP R0, #1 \n"
582 " MOV R4, R0 \n"
583 " CMPNE R4, #5 \n"
584 " BNE loc_FF8B31C0 \n"
585 " LDR R0, [SP, #0x1C] \n"
586 " MOV R2, R4 \n"
587 " LDR R1, [R0, #0x7C]! \n"
588 " LDR R12, [R0, #0x10]! \n"
589 " LDR R3, [R0, #4] \n"
590 " MOV R0, SP \n"
591 " BLX R12 \n"
592 " B loc_FF8B31F8 \n"
593 "loc_FF8B31C0:\n"
594 " LDR R0, [SP, #0x1C] \n"
595 " CMP R4, #2 \n"
596 " LDR R3, [R0, #0x90] \n"
597 " CMPNE R4, #6 \n"
598 " BNE loc_FF8B320C \n"
599 " LDR R12, [R0, #0x8C] \n"
600 " MOV R0, SP \n"
601 " MOV R2, R4 \n"
602 " MOV R1, #1 \n"
603 " BLX R12 \n"
604 " LDR R0, [SP, #0x1C] \n"
605 " MOV R2, SP \n"
606 " ADD R1, SP, #0x10 \n"
607 " BL sub_FF8B2C38 \n"
608 "loc_FF8B31F8:\n"
609 " LDR R0, [SP, #0x1C] \n"
610 " LDR R2, [SP, #0x0C] \n"
611 " MOV R1, R4 \n"
612 " BL sub_FF8B2EC4 \n"
613 " B loc_FF8B3464 \n"
614 "loc_FF8B320C:\n"
615 " LDR R1, [R0, #0x7C] \n"
616 " LDR R12, [R0, #0x8C] \n"
617 " ADD R0, R0, #4 \n"
618 " MOV R2, R4 \n"
619 " BLX R12 \n"
620 " B loc_FF8B3464 \n"
621 "loc_FF8B3224:\n"
622 " CMP R1, #0x22 \n"
623 " CMPNE R1, #0x23 \n"
624 " BNE loc_FF8B3270 \n"
625 " LDR R1, [R0, #0x7C] \n"
626 " ADD R1, R1, R1, LSL #1 \n"
627 " ADD R1, R0, R1, LSL #2 \n"
628 " SUB R1, R1, #8 \n"
629 " LDMIA R1, {R2-R4} \n"
630 " STMIA R6, {R2-R4} \n"
631 " BL sub_FF8B0D88 \n"
632 " LDR R0, [SP, #0x1C] \n"
633 " LDR R1, [R0, #0x7C] \n"
634 " LDR R3, [R0, #0x8C] \n"
635 " LDR R2, [R0, #0x90] \n"
636 " ADD R0, R0, #4 \n"
637 " BLX R3 \n"
638 " LDR R0, [SP, #0x1C] \n"
639 " BL sub_FF8B107C \n"
640 " B loc_FF8B3464 \n"
641 "loc_FF8B3270:\n"
642 " ADD R1, R0, #4 \n"
643 " LDMIA R1, {R2,R3,R12} \n"
644 " STMIA R6, {R2,R3,R12} \n"
645 " LDR R1, [R0] \n"
646 " CMP R1, #0x25 \n"
647 " ADDLS PC, PC, R1, LSL #2 \n"
648 " B loc_FF8B3444 \n"
649
650 " B loc_FF8B3324 \n"
651 " B loc_FF8B3324 \n"
652 " B loc_FF8B332C \n"
653 " B loc_FF8B3334 \n"
654 " B loc_FF8B3334 \n"
655 " B loc_FF8B3334 \n"
656 " B loc_FF8B3324 \n"
657 " B loc_FF8B332C \n"
658 " B loc_FF8B3334 \n"
659 " B loc_FF8B3334 \n"
660 " B loc_FF8B334C \n"
661 " B loc_FF8B334C \n"
662 " B loc_FF8B3438 \n"
663 " B loc_FF8B3440 \n"
664 " B loc_FF8B3440 \n"
665 " B loc_FF8B3440 \n"
666 " B loc_FF8B3440 \n"
667 " B loc_FF8B3444 \n"
668 " B loc_FF8B3444 \n"
669 " B loc_FF8B3444 \n"
670 " B loc_FF8B3444 \n"
671 " B loc_FF8B3444 \n"
672 " B loc_FF8B3444 \n"
673 " B loc_FF8B333C \n"
674 " B loc_FF8B3344 \n"
675 " B loc_FF8B3344 \n"
676 " B loc_FF8B3358 \n"
677 " B loc_FF8B3358 \n"
678 " B loc_FF8B3360 \n"
679 " B loc_FF8B3390 \n"
680 " B loc_FF8B33C0 \n"
681 " B loc_FF8B33F0 \n"
682 " B loc_FF8B3420 \n"
683 " B loc_FF8B3420 \n"
684 " B loc_FF8B3444 \n"
685 " B loc_FF8B3444 \n"
686 " B loc_FF8B3428 \n"
687 " B loc_FF8B3430 \n"
688
689
690 "loc_FF8B3324:\n"
691 " BL sub_FF8AFB9C \n"
692 " B loc_FF8B3444 \n"
693
694 "loc_FF8B332C:\n"
695 " BL sub_FF8AFE24 \n"
696 " B loc_FF8B3444 \n"
697
698 "loc_FF8B3334:\n"
699 " BL sub_FF8B002C \n"
700 " B loc_FF8B3444 \n"
701
702
703 "loc_FF8B333C:\n"
704 " BL sub_FF8B02A4 \n"
705 " B loc_FF8B3444 \n"
706
707 "loc_FF8B3344:\n"
708 " BL sub_FF8B049C \n"
709 " B loc_FF8B3444 \n"
710
711 "loc_FF8B334C:\n"
712
713 " BL sub_FF8B0758_my \n"
714
715
716 " MOV R4, #0 \n"
717 " B loc_FF8B3444 \n"
718
719 "loc_FF8B3358:\n"
720 " BL sub_FF8B0898 \n"
721 " B loc_FF8B3444 \n"
722
723 "loc_FF8B3360:\n"
724 " LDRH R1, [R0, #4] \n"
725 " STRH R1, [SP, #0x10] \n"
726 " LDRH R1, [R5, #2] \n"
727 " STRH R1, [SP, #0x12] \n"
728 " LDRH R1, [R5, #4] \n"
729 " STRH R1, [SP, #0x14] \n"
730 " LDRH R1, [R5, #6] \n"
731 " STRH R1, [SP, #0x16] \n"
732 " LDRH R1, [R0, #0xC] \n"
733 " STRH R1, [SP, #0x18] \n"
734 " BL sub_FF8B4258 \n"
735 " B loc_FF8B3444 \n"
736
737 "loc_FF8B3390:\n"
738 " LDRH R1, [R0, #4] \n"
739 " STRH R1, [SP, #0x10] \n"
740 " LDRH R1, [R5, #2] \n"
741 " STRH R1, [SP, #0x12] \n"
742 " LDRH R1, [R5, #4] \n"
743 " STRH R1, [SP, #0x14] \n"
744 " LDRH R1, [R5, #6] \n"
745 " STRH R1, [SP, #0x16] \n"
746 " LDRH R1, [R5, #8] \n"
747 " STRH R1, [SP, #0x18] \n"
748 " BL sub_FF8B43BC \n"
749 " B loc_FF8B3444 \n"
750
751 "loc_FF8B33C0:\n"
752 " LDRH R1, [R5] \n"
753 " STRH R1, [SP, #0x10] \n"
754 " LDRH R1, [R0, #6] \n"
755 " STRH R1, [SP, #0x12] \n"
756 " LDRH R1, [R5, #4] \n"
757 " STRH R1, [SP, #0x14] \n"
758 " LDRH R1, [R5, #6] \n"
759 " STRH R1, [SP, #0x16] \n"
760 " LDRH R1, [R5, #8] \n"
761 " STRH R1, [SP, #0x18] \n"
762 " BL sub_FF8B4468 \n"
763 " B loc_FF8B3444 \n"
764
765 "loc_FF8B33F0:\n"
766 " LDRH R1, [R5] \n"
767 " STRH R1, [SP, #0x10] \n"
768 " LDRH R1, [R5, #2] \n"
769 " STRH R1, [SP, #0x12] \n"
770 " LDRH R1, [R5, #4] \n"
771 " STRH R1, [SP, #0x14] \n"
772 " LDRH R1, [R5, #6] \n"
773 " STRH R1, [SP, #0x16] \n"
774 " LDRH R1, [R0, #0xC] \n"
775 " STRH R1, [SP, #0x18] \n"
776 " BL sub_FF8B4508 \n"
777 " B loc_FF8B3444 \n"
778
779 "loc_FF8B3420:\n"
780 " BL sub_FF8B0BE0 \n"
781 " B loc_FF8B3444 \n"
782
783 "loc_FF8B3428:\n"
784 " BL sub_FF8B1180 \n"
785 " B loc_FF8B3444 \n"
786
787 "loc_FF8B3430:\n"
788 " BL sub_FF8B13BC \n"
789 " B loc_FF8B3444 \n"
790
791 "loc_FF8B3438:\n"
792 " BL sub_FF8B1538 \n"
793 " B loc_FF8B3444 \n"
794
795 "loc_FF8B3440:\n"
796 " BL sub_FF8B16D4 \n"
797
798 "loc_FF8B3444:\n"
799 " LDR R0, [SP, #0x1C] \n"
800 " LDR R1, [R0, #0x7C] \n"
801 " LDR R3, [R0, #0x8C] \n"
802 " LDR R2, [R0, #0x90] \n"
803 " ADD R0, R0, #4 \n"
804 " BLX R3 \n"
805 " CMP R4, #1 \n"
806 " BNE loc_FF8B34AC \n"
807
808 "loc_FF8B3464:\n"
809 " LDR R0, [SP, #0x1C] \n"
810 " MOV R2, #0xC \n"
811 " LDR R1, [R0, #0x7C] \n"
812 " ADD R1, R1, R1, LSL #1 \n"
813 " ADD R0, R0, R1, LSL #2 \n"
814 " SUB R4, R0, #8 \n"
815 " LDR R0, =0x3C760 \n"
816 " ADD R1, SP, #0x10 \n"
817 " BL sub_FFB077B8 \n"
818 " LDR R0, =0x3C76C \n"
819 " MOV R2, #0xC \n"
820 " ADD R1, SP, #0x10 \n"
821 " BL sub_FFB077B8 \n"
822 " LDR R0, =0x3C778 \n"
823 " MOV R2, #0xC \n"
824 " MOV R1, R4 \n"
825 " BL sub_FFB077B8 \n"
826 " B loc_FF8B3524 \n"
827 "loc_FF8B34AC:\n"
828 " LDR R0, [SP, #0x1C] \n"
829 " LDR R0, [R0] \n"
830 " CMP R0, #0xB \n"
831 " BNE loc_FF8B34F4 \n"
832 " MOV R3, #0 \n"
833 " STR R3, [SP] \n"
834 " MOV R3, #1 \n"
835 " MOV R2, #1 \n"
836 " MOV R1, #1 \n"
837 " MOV R0, #0 \n"
838 " BL sub_FF8AF9A4 \n"
839 " MOV R3, #0 \n"
840 " STR R3, [SP] \n"
841 " MOV R3, #1 \n"
842 " MOV R2, #1 \n"
843 " MOV R1, #1 \n"
844 " MOV R0, #0 \n"
845 " B loc_FF8B3520 \n"
846 "loc_FF8B34F4:\n"
847 " MOV R3, #1 \n"
848 " MOV R2, #1 \n"
849 " MOV R1, #1 \n"
850 " MOV R0, #1 \n"
851 " STR R3, [SP] \n"
852 " BL sub_FF8AF9A4 \n"
853 " MOV R3, #1 \n"
854 " MOV R2, #1 \n"
855 " MOV R1, #1 \n"
856 " MOV R0, #1 \n"
857 " STR R3, [SP] \n"
858
859 "loc_FF8B3520:\n"
860 " BL sub_FF8AFAE4 \n"
861
862 "loc_FF8B3524:\n"
863 " LDR R0, [SP, #0x1C] \n"
864 " BL sub_FF8B41E4 \n"
865 " B loc_FF8B2F94 \n"
866 );
867 }
868
869
870
871
872 void __attribute__((naked,noinline)) sub_FF8B0758_my() {
873 asm volatile (
874 " STMFD SP!, {R4-R8,LR} \n"
875 " LDR R7, =0x3C80 \n"
876 " MOV R4, R0 \n"
877 " LDR R0, [R7, #0x1C] \n"
878 " MOV R1, #0x3E \n"
879 " BL sub_FF87C810 \n"
880 " LDRSH R0, [R4, #4] \n"
881 " MOV R2, #0 \n"
882 " MOV R1, #0 \n"
883 " BL sub_FF8AF708 \n"
884 " MOV R6, R0 \n"
885 " LDRSH R0, [R4, #6] \n"
886 " BL sub_FF8AF818 \n"
887 " LDRSH R0, [R4, #8] \n"
888 " BL sub_FF8AF870 \n"
889 " LDRSH R0, [R4, #0xA] \n"
890 " BL sub_FF8AF8C8 \n"
891 " LDRSH R0, [R4, #0xC] \n"
892 " MOV R1, #0 \n"
893 " BL sub_FF8AF920 \n"
894 " MOV R5, R0 \n"
895 " LDR R0, [R4] \n"
896 " LDR R8, =0x3C778 \n"
897 " CMP R0, #0xB \n"
898 " MOVEQ R6, #0 \n"
899 " MOVEQ R5, #0 \n"
900 " BEQ loc_FF8B07EC \n"
901 " CMP R6, #1 \n"
902 " BNE loc_FF8B07EC \n"
903 " LDRSH R0, [R4, #4] \n"
904 " LDR R1, =0xFF8AF674 \n"
905 " MOV R2, #2 \n"
906 " BL sub_FF9363A8 \n"
907 " STRH R0, [R4, #4] \n"
908 " MOV R0, #0 \n"
909 " STR R0, [R7, #0x28] \n"
910 " B loc_FF8B07F4 \n"
911 "loc_FF8B07EC:\n"
912 " LDRH R0, [R8, #0] \n"
913 " STRH R0, [R4, #4] \n"
914 "loc_FF8B07F4:\n"
915 " CMP R5, #1 \n"
916 " LDRNEH R0, [R8, #8] \n"
917 " BNE loc_FF8B0810 \n"
918 " LDRSH R0, [R4, #0xC] \n"
919 " LDR R1, =0xFF8AF6F8 \n"
920 " MOV R2, #0x20 \n"
921 " BL sub_FF8B4214 \n"
922 "loc_FF8B0810:\n"
923 " STRH R0, [R4, #0xC] \n"
924 " LDRSH R0, [R4, #6] \n"
925
926
927 " BL sub_FF8A2F04_my \n"
928
929 " LDRSH R0, [R4, #8] \n"
930 " MOV R1, #1 \n"
931 " BL sub_FF8A3654 \n"
932 " MOV R1, #0 \n"
933 " ADD R0, R4, #8 \n"
934 " BL sub_FF8A36DC \n"
935 " LDRSH R0, [R4, #0xE] \n"
936 " BL sub_FF8AB1C8 \n"
937 " LDR R4, =0xBB8 \n"
938 " CMP R6, #1 \n"
939 " BNE loc_FF8B0868 \n"
940 " LDR R0, [R7, #0x1C] \n"
941 " MOV R2, R4 \n"
942 " MOV R1, #2 \n"
943 " BL sub_FF87C71C \n"
944 " TST R0, #1 \n"
945 " SUBNE R1, R4, #0x620 \n"
946 " LDRNE R0, =0xFF8AFCF8 \n"
947 " BLNE sub_FF81E88C \n"
948 "loc_FF8B0868:\n"
949 " CMP R5, #1 \n"
950 " LDMNEFD SP!, {R4-R8,PC} \n"
951 " LDR R0, [R7, #0x1C] \n"
952 " MOV R2, R4 \n"
953 " MOV R1, #0x20 \n"
954 " BL sub_FF87C71C \n"
955 " TST R0, #1 \n"
956 " LDRNE R1, =0x59D \n"
957 " LDRNE R0, =0xFF8AFCF8 \n"
958 " LDMNEFD SP!, {R4-R8,LR} \n"
959 " BNE sub_FF81E88C \n"
960 " LDMFD SP!, {R4-R8,PC} \n"
961 );
962 }
963
964
965
966
967
968 void __attribute__((naked,noinline)) sub_FF8A2F04_my() {
969 asm volatile (
970 " STMFD SP!, {R4-R6,LR} \n"
971 " LDR R5, =0x3998 \n"
972 " MOV R4, R0 \n"
973 " LDR R0, [R5, #4] \n"
974 " CMP R0, #1 \n"
975 " LDRNE R1, =0x146 \n"
976 " LDRNE R0, =0xFF8A2D08 \n"
977 " BLNE sub_FF81E88C \n"
978 " CMN R4, #0xC00 \n"
979 " LDREQSH R4, [R5, #2] \n"
980 " CMN R4, #0xC00 \n"
981 " MOVEQ R1, #0x14C \n"
982 " LDREQ R0, =0xFF8A2D08 \n"
983 " STRH R4, [R5, #2] \n"
984 " BLEQ sub_FF81E88C \n"
985 " MOV R0, R4 \n"
986
987
988 " BL apex2us\n"
989
990 " MOV R4, R0 \n"
991
992 " MOV R0, R4 \n"
993 " BL sub_FF8DB778 \n"
994 " TST R0, #1 \n"
995 " LDRNE R1, =0x0151 \n"
996 " LDMNEFD SP!, {R4-R6,LR} \n"
997 " LDRNE R0, =0xFF8A2D08 \n"
998 " BNE sub_FF81E88C \n"
999 " LDMFD SP!, {R4-R6,PC} \n"
1000 );
1001 }
1002