This source file includes following definitions.
- capt_seq_task
- sub_FF926654_my
- sub_FF85EEC4_my
- exp_drv_task
- sub_FF89B23C_my
- sub_FF88CB14_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6 static long *nrflag = (long*)(0x6418-0x08);
7
8 #include "../../../generic/capt_seq.c"
9
10
11 void __attribute__((naked,noinline)) capt_seq_task() {
12 asm volatile (
13 " STMFD SP!, {R3-R9,LR} \n"
14 " LDR R6, =0x298C \n"
15 " LDR R4, =0x14FD4 \n"
16 " MOV R9, #1 \n"
17 " MOV R7, #0 \n"
18 "loc_FF85EAF8:\n"
19 " LDR R0, [R6, #4] \n"
20 " MOV R2, #0 \n"
21 " MOV R1, SP \n"
22 " BL sub_FF826A0C \n"
23 " TST R0, #1 \n"
24 " BEQ loc_FF85EB24 \n"
25 " LDR R1, =0x588 \n"
26 " LDR R0, =0xFF85E670 \n"
27 " BL _DebugAssert \n"
28 " BL _ExitTask \n"
29 " LDMFD SP!, {R3-R9,PC} \n"
30 "loc_FF85EB24:\n"
31 " LDR R0, [SP] \n"
32 " LDR R1, [R0] \n"
33 " CMP R1, #0x1D \n"
34 " ADDLS PC, PC, R1, LSL #2 \n"
35 " B loc_FF85EDA0 \n"
36 " B loc_FF85EBB0 \n"
37 " B loc_FF85EC14 \n"
38 " B loc_FF85EC50 \n"
39 " B loc_FF85EC64 \n"
40 " B loc_FF85EC5C \n"
41 " B loc_FF85EC6C \n"
42 " B loc_FF85EC74 \n"
43 " B loc_FF85EC7C \n"
44 " B loc_FF85ECD4 \n"
45 " B loc_FF85ECFC \n"
46 " B loc_FF85ECE0 \n"
47 " B loc_FF85ECEC \n"
48 " B loc_FF85ECF4 \n"
49 " B loc_FF85ED04 \n"
50 " B loc_FF85ED0C \n"
51 " B loc_FF85ED14 \n"
52 " B loc_FF85ED1C \n"
53 " B loc_FF85ED24 \n"
54 " B loc_FF85ED30 \n"
55 " B loc_FF85ED38 \n"
56 " B loc_FF85ED40 \n"
57 " B loc_FF85ED48 \n"
58 " B loc_FF85ED50 \n"
59 " B loc_FF85ED5C \n"
60 " B loc_FF85ED64 \n"
61 " B loc_FF85ED6C \n"
62 " B loc_FF85ED74 \n"
63 " B loc_FF85ED7C \n"
64 " B loc_FF85ED88 \n"
65 " B loc_FF85EDAC \n"
66 "loc_FF85EBB0:\n"
67 " BL sub_FF85F404 \n"
68
69 " BL captseq_hack_override_active\n"
70 " STR R0,[SP,#-4]!\n"
71 " BL shooting_expo_param_override\n"
72 " BL sub_FF85C938 \n"
73 " LDR R0,[SP],#4\n"
74 " CMP R0, #1\n"
75 " MOVEQ R0, #0\n"
76 " STREQ R0, [R4,#0x24]\n"
77 " LDRNE R0, [R4,#0x24]\n"
78 " CMPNE R0, #0\n"
79
80
81 " BEQ loc_FF85EDAC \n"
82 " BL sub_FF85E34C \n"
83 " MOV R5, R0 \n"
84 " LDR R0, [R4, #0x24] \n"
85 " CMP R0, #0 \n"
86 " BEQ loc_FF85EBF8 \n"
87 " MOV R0, #0xC \n"
88 " BL sub_FF863420 \n"
89 " TST R0, #1 \n"
90 " STRNE R9, [R6, #0x10] \n"
91 " LDRNE R0, [R5, #8] \n"
92 " ORRNE R0, R0, #0x40000000 \n"
93 " STRNE R0, [R5, #8] \n"
94 " BNE loc_FF85EDAC \n"
95 "loc_FF85EBF8:\n"
96 " MOV R0, R5 \n"
97 " BL sub_FF85E5F0 \n"
98 " MOV R0, R5 \n"
99 " BL sub_FF926654_my \n"
100 " TST R0, #1 \n"
101 " STRNE R9, [R6, #0x10] \n"
102 " B loc_FF85EDAC \n"
103 "loc_FF85EC14:\n"
104 " LDR R0, [R4, #0x24] \n"
105 " CMP R0, #0 \n"
106 " BNE loc_FF85EC40 \n"
107 " MOV R0, #0xC \n"
108 " BL sub_FF863420 \n"
109 " TST R0, #1 \n"
110 " LDRNE R0, [SP] \n"
111 " MOVNE R1, #1 \n"
112 " LDRNE R2, [R0, #0xC] \n"
113 " MOVNE R0, #1 \n"
114 " BNE loc_FF85ECCC \n"
115 "loc_FF85EC40:\n"
116 " LDR R0, [SP] \n"
117 " BL sub_FF85EEC4_my \n"
118 "loc_FF85EC48:\n"
119 " STR R7, [R4, #0x24] \n"
120 " B loc_FF85EDAC \n"
121 "loc_FF85EC50:\n"
122 " MOV R0, #1 \n"
123 " BL sub_FF85F61C \n"
124 " B loc_FF85EDAC \n"
125 "loc_FF85EC5C:\n"
126 " BL sub_FF85F04C \n"
127 " B loc_FF85EC48 \n"
128 "loc_FF85EC64:\n"
129 " BL sub_FF85F3E4 \n"
130 " B loc_FF85EC48 \n"
131 "loc_FF85EC6C:\n"
132 " BL sub_FF85F3EC \n"
133 " B loc_FF85EDAC \n"
134 "loc_FF85EC74:\n"
135 " BL sub_FF85F53C \n"
136 " B loc_FF85ECD8 \n"
137 "loc_FF85EC7C:\n"
138 " LDR R5, [R0, #0xC] \n"
139 " BL sub_FF85F3F4 \n"
140 " MOV R0, R5 \n"
141 " BL sub_FF925634 \n"
142 " TST R0, #1 \n"
143 " MOV R8, R0 \n"
144 " BNE loc_FF85ECBC \n"
145 " BL sub_FF86F780 \n"
146 " STR R0, [R5, #0x18] \n"
147 " MOV R0, R5 \n"
148 " BL sub_FF92656C \n"
149 " MOV R0, R5 \n"
150 " BL sub_FF926970 \n"
151 " MOV R8, R0 \n"
152 " LDR R0, [R5, #0x18] \n"
153 " BL sub_FF86F994 \n"
154 "loc_FF85ECBC:\n"
155 " BL sub_FF85F3E4 \n"
156 " MOV R2, R5 \n"
157 " MOV R1, #9 \n"
158 " MOV R0, R8 \n"
159 "loc_FF85ECCC:\n"
160 " BL sub_FF85CE4C \n"
161 " B loc_FF85EDAC \n"
162 "loc_FF85ECD4:\n"
163 " BL sub_FF85F59C \n"
164 "loc_FF85ECD8:\n"
165 " BL sub_FF85C938 \n"
166 " B loc_FF85EDAC \n"
167 "loc_FF85ECE0:\n"
168 " LDR R0, [R4, #0x54] \n"
169 " BL sub_FF85F9B0 \n"
170 " B loc_FF85EDAC \n"
171 "loc_FF85ECEC:\n"
172 " BL sub_FF85FC64 \n"
173 " B loc_FF85EDAC \n"
174 "loc_FF85ECF4:\n"
175 " BL sub_FF85FCF8 \n"
176 " B loc_FF85EDAC \n"
177 "loc_FF85ECFC:\n"
178 " BL sub_FF85F3E4 \n"
179 " B loc_FF85EDAC \n"
180 "loc_FF85ED04:\n"
181 " BL sub_FF925844 \n"
182 " B loc_FF85EDAC \n"
183 "loc_FF85ED0C:\n"
184 " BL sub_FF925A2C \n"
185 " B loc_FF85EDAC \n"
186 "loc_FF85ED14:\n"
187 " BL sub_FF925ABC \n"
188 " B loc_FF85EDAC \n"
189 "loc_FF85ED1C:\n"
190 " BL sub_FF925B70 \n"
191 " B loc_FF85EDAC \n"
192 "loc_FF85ED24:\n"
193 " MOV R0, #0 \n"
194 " BL sub_FF925D94 \n"
195 " B loc_FF85EDAC \n"
196 "loc_FF85ED30:\n"
197 " BL sub_FF925ECC \n"
198 " B loc_FF85EDAC \n"
199 "loc_FF85ED38:\n"
200 " BL sub_FF925F5C \n"
201 " B loc_FF85EDAC \n"
202 "loc_FF85ED40:\n"
203 " BL sub_FF92601C \n"
204 " B loc_FF85EDAC \n"
205 "loc_FF85ED48:\n"
206 " BL sub_FF85F79C \n"
207 " B loc_FF85EDAC \n"
208 "loc_FF85ED50:\n"
209 " BL sub_FF85F83C \n"
210 " BL sub_FF824A34 \n"
211 " B loc_FF85EDAC \n"
212 "loc_FF85ED5C:\n"
213 " BL sub_FF925C2C \n"
214 " B loc_FF85EDAC \n"
215 "loc_FF85ED64:\n"
216 " BL sub_FF925C98 \n"
217 " B loc_FF85EDAC \n"
218 "loc_FF85ED6C:\n"
219 " BL sub_FF861C30 \n"
220 " B loc_FF85EDAC \n"
221 "loc_FF85ED74:\n"
222 " BL sub_FF861C98 \n"
223 " B loc_FF85EDAC \n"
224 "loc_FF85ED7C:\n"
225 " BL sub_FF861CF4 \n"
226 " BL sub_FF861CB4 \n"
227 " B loc_FF85EDAC \n"
228 "loc_FF85ED88:\n"
229 " MOV R0, #1 \n"
230 " BL sub_FF927248 \n"
231 " LDRH R0, [R4, #0x98] \n"
232 " CMP R0, #4 \n"
233 " BLNE sub_FF861F60 \n"
234 " B loc_FF85EDAC \n"
235 "loc_FF85EDA0:\n"
236 " LDR R1, =0x6C9 \n"
237 " LDR R0, =0xFF85E670 \n"
238 " BL _DebugAssert \n"
239 "loc_FF85EDAC:\n"
240 " LDR R0, [SP] \n"
241 " LDR R1, [R0, #4] \n"
242 " LDR R0, [R6] \n"
243 " BL sub_FF867508 \n"
244 " LDR R5, [SP] \n"
245 " LDR R0, [R5, #8] \n"
246 " CMP R0, #0 \n"
247 " LDREQ R1, =0x12B \n"
248 " LDREQ R0, =0xFF85E670 \n"
249 " BLEQ _DebugAssert \n"
250 " STR R7, [R5, #8] \n"
251 " B loc_FF85EAF8 \n"
252 );
253 }
254
255
256 void __attribute__((naked,noinline)) sub_FF926654_my( ) {
257 asm volatile (
258 " STMFD SP!, {R0-R8,LR} \n"
259 " MOV R4, R0 \n"
260 " BL sub_FF9273B8 \n"
261 " MVN R1, #0 \n"
262 " BL sub_FF86753C \n"
263 " LDR R5, =0x6410 \n"
264 " LDR R0, [R5, #0xC] \n"
265 " CMP R0, #0 \n"
266 " BNE loc_FF9266A4 \n"
267 " MOV R1, #1 \n"
268 " MOV R0, #0 \n"
269 " BL sub_FF827254 \n"
270 " STR R0, [R5, #0xC] \n"
271 " MOV R3, #0 \n"
272 " STR R3, [SP] \n"
273 " LDR R3, =0xFF92610C \n"
274 " LDR R0, =0xFF9268DC \n"
275 " MOV R2, #0x400 \n"
276 " MOV R1, #0x17 \n"
277 " BL sub_FF827220 \n"
278 "loc_FF9266A4:\n"
279 " MOV R2, #4 \n"
280 " ADD R1, SP, #8 \n"
281 " MOV R0, #0x8A \n"
282 " BL sub_FF86F5F0 \n"
283 " TST R0, #1 \n"
284 " LDRNE R1, =0x3A7 \n"
285 " LDRNE R0, =0xFF9263A4 \n"
286 " BLNE _DebugAssert \n"
287 " LDR R8, =0x15098 \n"
288 " LDR R7, =0x14FD4 \n"
289 " LDRSH R1, [R8, #0xE] \n"
290 " LDR R0, [R7, #0x8C] \n"
291 " BL sub_FF8E660C \n"
292 " BL sub_FF8470A4 \n"
293 " LDR R3, =0x6418 \n"
294 " STRH R0, [R4, #0x9C] \n"
295 " SUB R2, R3, #4 \n"
296 " STRD R2, [SP] \n"
297 " MOV R1, R0 \n"
298 " LDRH R0, [R7, #0x5C] \n"
299 " LDRSH R2, [R8, #0xC] \n"
300 " SUB R3, R3, #8 \n"
301 " BL sub_FF9289F0 \n"
302 " BL wait_until_remote_button_is_released\n"
303 " BL capt_seq_hook_set_nr\n"
304 " LDR PC, =0xff926700\n"
305 );
306 }
307
308
309 void __attribute__((naked,noinline)) sub_FF85EEC4_my( ) {
310 asm volatile (
311 " STMFD SP!, {R4-R6,LR} \n"
312 " LDR R4, [R0, #0xC] \n"
313 " LDR R6, =0x14FD4 \n"
314 " LDR R0, [R4, #8] \n"
315 " MOV R5, #0 \n"
316 " ORR R0, R0, #1 \n"
317 " STR R0, [R4, #8] \n"
318 " LDR R0, [R6, #0x24] \n"
319 " CMP R0, #0 \n"
320 " MOVEQ R0, #2 \n"
321 " BLEQ sub_FF85A064 \n"
322 " BL sub_FF85F3F4 \n"
323 " LDR R0, [R6, #0x24] \n"
324 " CMP R0, #0 \n"
325 " BNE loc_FF85EF74 \n"
326 " MOV R0, #0 \n"
327 " BL sub_FF927248 \n"
328 " MOV R0, R4 \n"
329 " BL sub_FF85F744 \n"
330 " MOV R0, R4 \n"
331 " BL sub_FF925284 \n"
332 " CMP R0, #0 \n"
333 " BEQ loc_FF85EF44 \n"
334 " BL sub_FF927288 \n"
335 " MOV R0, R4 \n"
336 " BL sub_FF925368 \n"
337 " TST R0, #1 \n"
338 " MOVNE R2, R4 \n"
339 " LDMNEFD SP!, {R4-R6,LR} \n"
340 " MOVNE R1, #1 \n"
341 " BNE sub_FF85CE4C \n"
342 " B loc_FF85EF50 \n"
343 "loc_FF85EF44:\n"
344 " MOV R0, R4 \n"
345 " BL sub_FF925304 \n"
346 " BL sub_FF927288 \n"
347 "loc_FF85EF50:\n"
348 " MOV R0, R4 \n"
349 " BL sub_FF85E5F0 \n"
350 " MOV R0, R4 \n"
351 " BL sub_FF92656C \n"
352 " BL sub_FF9270D8 \n"
353 " MOV R0, R4 \n"
354 " BL sub_FF926654_my \n"
355 " MOV R5, R0 \n"
356 " B loc_FF85EF84 \n"
357 "loc_FF85EF74:\n"
358 " LDR R0, =0x298C \n"
359 " LDR R0, [R0, #0x10] \n"
360 " CMP R0, #0 \n"
361 " MOVNE R5, #0x1D \n"
362 "loc_FF85EF84:\n"
363 " BL capt_seq_hook_raw_here\n"
364 " BL sub_FF861C98 \n"
365 " BL sub_FF861CE0 \n"
366 " BL sub_FF861D20 \n"
367 " MOV R2, R4 \n"
368 " MOV R1, #1 \n"
369 " MOV R0, R5 \n"
370 " BL sub_FF85CE4C \n"
371 " BL sub_FF926914 \n"
372 " CMP R0, #0 \n"
373 " LDRNE R0, [R4, #8] \n"
374 " ORRNE R0, R0, #0x2000 \n"
375 " STRNE R0, [R4, #8] \n"
376 " LDMFD SP!, {R4-R6,PC} \n"
377 );
378 }
379
380
381
382 void __attribute__((naked,noinline)) exp_drv_task() {
383 asm volatile (
384 " STMFD SP!, {R4-R8,LR} \n"
385 " SUB SP, SP, #0x20 \n"
386 " LDR R8, =0xBB8 \n"
387 " LDR R7, =0x3F08 \n"
388 " LDR R5, =0x19D3C \n"
389 " MOV R0, #0 \n"
390 " ADD R6, SP, #0x10 \n"
391 " STR R0, [SP, #0xC] \n"
392 "loc_FF89D8EC:\n"
393 " LDR R0, [R7, #0x20] \n"
394 " MOV R2, #0 \n"
395 " ADD R1, SP, #0x1C \n"
396 " BL sub_FF826A0C \n"
397 " LDR R0, [SP, #0xC] \n"
398 " CMP R0, #1 \n"
399 " BNE loc_FF89D938 \n"
400 " LDR R0, [SP, #0x1C] \n"
401 " LDR R0, [R0] \n"
402 " CMP R0, #0x13 \n"
403 " CMPNE R0, #0x14 \n"
404 " CMPNE R0, #0x15 \n"
405 " CMPNE R0, #0x16 \n"
406 " BEQ loc_FF89DA54 \n"
407 " CMP R0, #0x28 \n"
408 " BEQ loc_FF89DA2C \n"
409 " ADD R1, SP, #0xC \n"
410 " MOV R0, #0 \n"
411 " BL sub_FF89D87C \n"
412 "loc_FF89D938:\n"
413 " LDR R0, [SP, #0x1C] \n"
414 " LDR R1, [R0] \n"
415 " CMP R1, #0x2D \n"
416 " BNE loc_FF89D968 \n"
417 " LDR R0, [SP, #0x1C] \n"
418 " BL sub_FF89EB80 \n"
419 " LDR R0, [R7, #0x1C] \n"
420 " MOV R1, #1 \n"
421 " BL sub_FF867508 \n"
422 " BL _ExitTask \n"
423 " ADD SP, SP, #0x20 \n"
424 " LDMFD SP!, {R4-R8,PC} \n"
425 "loc_FF89D968:\n"
426 " CMP R1, #0x2C \n"
427 " BNE loc_FF89D984 \n"
428 " LDR R2, [R0, #0x88]! \n"
429 " LDR R1, [R0, #4] \n"
430 " MOV R0, R1 \n"
431 " BLX R2 \n"
432 " B loc_FF89DE7C \n"
433 "loc_FF89D984:\n"
434 " CMP R1, #0x26 \n"
435 " BNE loc_FF89D9D4 \n"
436 " LDR R0, [R7, #0x1C] \n"
437 " MOV R1, #0x80 \n"
438 " BL sub_FF86753C \n"
439 " LDR R0, =0xFF89A1EC \n"
440 " MOV R1, #0x80 \n"
441 " BL sub_FF91A0BC \n"
442 " LDR R0, [R7, #0x1C] \n"
443 " MOV R2, R8 \n"
444 " MOV R1, #0x80 \n"
445 " BL sub_FF867448 \n"
446 " TST R0, #1 \n"
447 " LDRNE R1, =0xDC6 \n"
448 " BNE loc_FF89DA18 \n"
449 "loc_FF89D9C0:\n"
450 " LDR R1, [SP, #0x1C] \n"
451 " LDR R0, [R1, #0x8C] \n"
452 " LDR R1, [R1, #0x88] \n"
453 " BLX R1 \n"
454 " B loc_FF89DE7C \n"
455 "loc_FF89D9D4:\n"
456 " CMP R1, #0x27 \n"
457 " BNE loc_FF89DA24 \n"
458 " ADD R1, SP, #0xC \n"
459 " BL sub_FF89D87C \n"
460 " LDR R0, [R7, #0x1C] \n"
461 " MOV R1, #0x100 \n"
462 " BL sub_FF86753C \n"
463 " MOV R1, #0x100 \n"
464 " LDR R0, =0xFF89A1FC \n"
465 " BL sub_FF91A344 \n"
466 " LDR R0, [R7, #0x1C] \n"
467 " MOV R2, R8 \n"
468 " MOV R1, #0x100 \n"
469 " BL sub_FF867448 \n"
470 " TST R0, #1 \n"
471 " BEQ loc_FF89D9C0 \n"
472 " MOV R1, #0xDD0 \n"
473 "loc_FF89DA18:\n"
474 " LDR R0, =0xFF89A82C \n"
475 " BL _DebugAssert \n"
476 " B loc_FF89D9C0 \n"
477 "loc_FF89DA24:\n"
478 " CMP R1, #0x28 \n"
479 " BNE loc_FF89DA3C \n"
480 "loc_FF89DA2C:\n"
481 " LDR R0, [SP, #0x1C] \n"
482 " ADD R1, SP, #0xC \n"
483 " BL sub_FF89D87C \n"
484 " B loc_FF89D9C0 \n"
485 "loc_FF89DA3C:\n"
486 " CMP R1, #0x2B \n"
487 " BNE loc_FF89DA54 \n"
488 " BL sub_FF88CDA4 \n"
489 " BL sub_FF88DA30 \n"
490 " BL sub_FF88D568 \n"
491 " B loc_FF89D9C0 \n"
492 "loc_FF89DA54:\n"
493 " LDR R0, [SP, #0x1C] \n"
494 " MOV R4, #1 \n"
495 " LDR R1, [R0] \n"
496 " CMP R1, #0x11 \n"
497 " CMPNE R1, #0x12 \n"
498 " BNE loc_FF89DAC4 \n"
499 " LDR R1, [R0, #0x7C] \n"
500 " ADD R1, R1, R1, LSL #1 \n"
501 " ADD R1, R0, R1, LSL #2 \n"
502 " SUB R1, R1, #8 \n"
503 " LDMIA R1, {R2-R4} \n"
504 " STMIA R6, {R2-R4} \n"
505 " BL sub_FF89C2C4 \n"
506 " LDR R0, [SP, #0x1C] \n"
507 " LDR R1, [R0, #0x7C] \n"
508 " LDR R3, [R0, #0x88] \n"
509 " LDR R2, [R0, #0x8C] \n"
510 " ADD R0, R0, #4 \n"
511 " BLX R3 \n"
512 " LDR R0, [SP, #0x1C] \n"
513 " BL sub_FF89EF38 \n"
514 " LDR R0, [SP, #0x1C] \n"
515 " LDR R1, [R0, #0x7C] \n"
516 " LDR R3, [R0, #0x90] \n"
517 " LDR R2, [R0, #0x94] \n"
518 " ADD R0, R0, #4 \n"
519 " BLX R3 \n"
520 " B loc_FF89DDBC \n"
521 "loc_FF89DAC4:\n"
522 " CMP R1, #0x13 \n"
523 " CMPNE R1, #0x14 \n"
524 " CMPNE R1, #0x15 \n"
525 " CMPNE R1, #0x16 \n"
526 " BNE loc_FF89DB7C \n"
527 " ADD R3, SP, #0xC \n"
528 " MOV R2, SP \n"
529 " ADD R1, SP, #0x10 \n"
530 " BL sub_FF89C508 \n"
531 " CMP R0, #1 \n"
532 " MOV R4, R0 \n"
533 " CMPNE R4, #5 \n"
534 " BNE loc_FF89DB18 \n"
535 " LDR R0, [SP, #0x1C] \n"
536 " MOV R2, R4 \n"
537 " LDR R1, [R0, #0x7C]! \n"
538 " LDR R12, [R0, #0xC]! \n"
539 " LDR R3, [R0, #4] \n"
540 " MOV R0, SP \n"
541 " BLX R12 \n"
542 " B loc_FF89DB50 \n"
543 "loc_FF89DB18:\n"
544 " LDR R0, [SP, #0x1C] \n"
545 " CMP R4, #2 \n"
546 " LDR R3, [R0, #0x8C] \n"
547 " CMPNE R4, #6 \n"
548 " BNE loc_FF89DB64 \n"
549 " LDR R12, [R0, #0x88] \n"
550 " MOV R0, SP \n"
551 " MOV R2, R4 \n"
552 " MOV R1, #1 \n"
553 " BLX R12 \n"
554 " LDR R0, [SP, #0x1C] \n"
555 " MOV R2, SP \n"
556 " ADD R1, SP, #0x10 \n"
557 " BL sub_FF89D564 \n"
558 "loc_FF89DB50:\n"
559 " LDR R0, [SP, #0x1C] \n"
560 " LDR R2, [SP, #0xC] \n"
561 " MOV R1, R4 \n"
562 " BL sub_FF89D81C \n"
563 " B loc_FF89DDBC \n"
564 "loc_FF89DB64:\n"
565 " LDR R1, [R0, #0x7C] \n"
566 " LDR R12, [R0, #0x88] \n"
567 " ADD R0, R0, #4 \n"
568 " MOV R2, R4 \n"
569 " BLX R12 \n"
570 " B loc_FF89DDBC \n"
571 "loc_FF89DB7C:\n"
572 " CMP R1, #0x22 \n"
573 " CMPNE R1, #0x23 \n"
574 " BNE loc_FF89DBC8 \n"
575 " LDR R1, [R0, #0x7C] \n"
576 " ADD R1, R1, R1, LSL #1 \n"
577 " ADD R1, R0, R1, LSL #2 \n"
578 " SUB R1, R1, #8 \n"
579 " LDMIA R1, {R2-R4} \n"
580 " STMIA R6, {R2-R4} \n"
581 " BL sub_FF89B850 \n"
582 " LDR R0, [SP, #0x1C] \n"
583 " LDR R1, [R0, #0x7C] \n"
584 " LDR R3, [R0, #0x88] \n"
585 " LDR R2, [R0, #0x8C] \n"
586 " ADD R0, R0, #4 \n"
587 " BLX R3 \n"
588 " LDR R0, [SP, #0x1C] \n"
589 " BL sub_FF89BB40 \n"
590 " B loc_FF89DDBC \n"
591 "loc_FF89DBC8:\n"
592 " ADD R1, R0, #4 \n"
593 " LDMIA R1, {R2,R3,R12} \n"
594 " STMIA R6, {R2,R3,R12} \n"
595 " LDR R1, [R0] \n"
596 " CMP R1, #0x25 \n"
597 " ADDLS PC, PC, R1, LSL #2 \n"
598 " B loc_FF89DD9C \n"
599 " B loc_FF89DC7C \n"
600 " B loc_FF89DC7C \n"
601 " B loc_FF89DC84 \n"
602 " B loc_FF89DC8C \n"
603 " B loc_FF89DC8C \n"
604 " B loc_FF89DC8C \n"
605 " B loc_FF89DC7C \n"
606 " B loc_FF89DC84 \n"
607 " B loc_FF89DC8C \n"
608 " B loc_FF89DC8C \n"
609 " B loc_FF89DCA4 \n"
610 " B loc_FF89DCA4 \n"
611 " B loc_FF89DD90 \n"
612 " B loc_FF89DD98 \n"
613 " B loc_FF89DD98 \n"
614 " B loc_FF89DD98 \n"
615 " B loc_FF89DD98 \n"
616 " B loc_FF89DD9C \n"
617 " B loc_FF89DD9C \n"
618 " B loc_FF89DD9C \n"
619 " B loc_FF89DD9C \n"
620 " B loc_FF89DD9C \n"
621 " B loc_FF89DD9C \n"
622 " B loc_FF89DC94 \n"
623 " B loc_FF89DC9C \n"
624 " B loc_FF89DC9C \n"
625 " B loc_FF89DCB0 \n"
626 " B loc_FF89DCB0 \n"
627 " B loc_FF89DCB8 \n"
628 " B loc_FF89DCE8 \n"
629 " B loc_FF89DD18 \n"
630 " B loc_FF89DD48 \n"
631 " B loc_FF89DD78 \n"
632 " B loc_FF89DD78 \n"
633 " B loc_FF89DD9C \n"
634 " B loc_FF89DD9C \n"
635 " B loc_FF89DD80 \n"
636 " B loc_FF89DD88 \n"
637 "loc_FF89DC7C:\n"
638 " BL sub_FF89A6D8 \n"
639 " B loc_FF89DD9C \n"
640 "loc_FF89DC84:\n"
641 " BL sub_FF89A94C \n"
642 " B loc_FF89DD9C \n"
643 "loc_FF89DC8C:\n"
644 " BL sub_FF89AB50 \n"
645 " B loc_FF89DD9C \n"
646 "loc_FF89DC94:\n"
647 " BL sub_FF89ADB8 \n"
648 " B loc_FF89DD9C \n"
649 "loc_FF89DC9C:\n"
650 " BL sub_FF89AFAC \n"
651 " B loc_FF89DD9C \n"
652 "loc_FF89DCA4:\n"
653 " BL sub_FF89B23C_my \n"
654 " MOV R4, #0 \n"
655 " B loc_FF89DD9C \n"
656 "loc_FF89DCB0:\n"
657 " BL sub_FF89B378 \n"
658 " B loc_FF89DD9C \n"
659 "loc_FF89DCB8:\n"
660 " LDRH R1, [R0, #4] \n"
661 " STRH R1, [SP, #0x10] \n"
662 " LDRH R1, [R5, #2] \n"
663 " STRH R1, [SP, #0x12] \n"
664 " LDRH R1, [R5, #4] \n"
665 " STRH R1, [SP, #0x14] \n"
666 " LDRH R1, [R5, #6] \n"
667 " STRH R1, [SP, #0x16] \n"
668 " LDRH R1, [R0, #0xC] \n"
669 " STRH R1, [SP, #0x18] \n"
670 " BL sub_FF89EBF4 \n"
671 " B loc_FF89DD9C \n"
672 "loc_FF89DCE8:\n"
673 " LDRH R1, [R0, #4] \n"
674 " STRH R1, [SP, #0x10] \n"
675 " LDRH R1, [R5, #2] \n"
676 " STRH R1, [SP, #0x12] \n"
677 " LDRH R1, [R5, #4] \n"
678 " STRH R1, [SP, #0x14] \n"
679 " LDRH R1, [R5, #6] \n"
680 " STRH R1, [SP, #0x16] \n"
681 " LDRH R1, [R5, #8] \n"
682 " STRH R1, [SP, #0x18] \n"
683 " BL sub_FF89ED54 \n"
684 " B loc_FF89DD9C \n"
685 "loc_FF89DD18:\n"
686 " LDRH R1, [R5] \n"
687 " STRH R1, [SP, #0x10] \n"
688 " LDRH R1, [R0, #6] \n"
689 " STRH R1, [SP, #0x12] \n"
690 " LDRH R1, [R5, #4] \n"
691 " STRH R1, [SP, #0x14] \n"
692 " LDRH R1, [R5, #6] \n"
693 " STRH R1, [SP, #0x16] \n"
694 " LDRH R1, [R5, #8] \n"
695 " STRH R1, [SP, #0x18] \n"
696 " BL sub_FF89EE00 \n"
697 " B loc_FF89DD9C \n"
698 "loc_FF89DD48:\n"
699 " LDRH R1, [R5] \n"
700 " STRH R1, [SP, #0x10] \n"
701 " LDRH R1, [R5, #2] \n"
702 " STRH R1, [SP, #0x12] \n"
703 " LDRH R1, [R5, #4] \n"
704 " STRH R1, [SP, #0x14] \n"
705 " LDRH R1, [R5, #6] \n"
706 " STRH R1, [SP, #0x16] \n"
707 " LDRH R1, [R0, #0xC] \n"
708 " STRH R1, [SP, #0x18] \n"
709 " BL sub_FF89EEA0 \n"
710 " B loc_FF89DD9C \n"
711 "loc_FF89DD78:\n"
712 " BL sub_FF89B618 \n"
713 " B loc_FF89DD9C \n"
714 "loc_FF89DD80:\n"
715 " BL sub_FF89BC44 \n"
716 " B loc_FF89DD9C \n"
717 "loc_FF89DD88:\n"
718 " BL sub_FF89BE7C \n"
719 " B loc_FF89DD9C \n"
720 "loc_FF89DD90:\n"
721 " BL sub_FF89BFF4 \n"
722 " B loc_FF89DD9C \n"
723 "loc_FF89DD98:\n"
724 " BL sub_FF89C18C \n"
725 "loc_FF89DD9C:\n"
726 " LDR R0, [SP, #0x1C] \n"
727 " LDR R1, [R0, #0x7C] \n"
728 " LDR R3, [R0, #0x88] \n"
729 " LDR R2, [R0, #0x8C] \n"
730 " ADD R0, R0, #4 \n"
731 " BLX R3 \n"
732 " CMP R4, #1 \n"
733 " BNE loc_FF89DE04 \n"
734 "loc_FF89DDBC:\n"
735 " LDR R0, [SP, #0x1C] \n"
736 " MOV R2, #0xC \n"
737 " LDR R1, [R0, #0x7C] \n"
738 " ADD R1, R1, R1, LSL #1 \n"
739 " ADD R0, R0, R1, LSL #2 \n"
740 " SUB R4, R0, #8 \n"
741 " LDR R0, =0x19D3C \n"
742 " ADD R1, SP, #0x10 \n"
743 " BL sub_FFAE9218 \n"
744 " LDR R0, =0x19D48 \n"
745 " MOV R2, #0xC \n"
746 " ADD R1, SP, #0x10 \n"
747 " BL sub_FFAE9218 \n"
748 " LDR R0, =0x19D54 \n"
749 " MOV R2, #0xC \n"
750 " MOV R1, R4 \n"
751 " BL sub_FFAE9218 \n"
752 " B loc_FF89DE7C \n"
753 "loc_FF89DE04:\n"
754 " LDR R0, [SP, #0x1C] \n"
755 " LDR R0, [R0] \n"
756 " CMP R0, #0xB \n"
757 " BNE loc_FF89DE4C \n"
758 " MOV R3, #0 \n"
759 " STR R3, [SP] \n"
760 " MOV R3, #1 \n"
761 " MOV R2, #1 \n"
762 " MOV R1, #1 \n"
763 " MOV R0, #0 \n"
764 " BL sub_FF89A4E0 \n"
765 " MOV R3, #0 \n"
766 " STR R3, [SP] \n"
767 " MOV R3, #1 \n"
768 " MOV R2, #1 \n"
769 " MOV R1, #1 \n"
770 " MOV R0, #0 \n"
771 " B loc_FF89DE78 \n"
772 "loc_FF89DE4C:\n"
773 " MOV R3, #1 \n"
774 " MOV R2, #1 \n"
775 " MOV R1, #1 \n"
776 " MOV R0, #1 \n"
777 " STR R3, [SP] \n"
778 " BL sub_FF89A4E0 \n"
779 " MOV R3, #1 \n"
780 " MOV R2, #1 \n"
781 " MOV R1, #1 \n"
782 " MOV R0, #1 \n"
783 " STR R3, [SP] \n"
784 "loc_FF89DE78:\n"
785 " BL sub_FF89A620 \n"
786 "loc_FF89DE7C:\n"
787 " LDR R0, [SP, #0x1C] \n"
788 " BL sub_FF89EB80 \n"
789 " B loc_FF89D8EC \n"
790 );
791 }
792
793 void __attribute__((naked,noinline)) sub_FF89B23C_my( ) {
794 asm volatile (
795 " STMFD SP!, {R4-R8,LR} \n"
796 " LDR R7, =0x3F08 \n"
797 " MOV R4, R0 \n"
798 " LDR R0, [R7, #0x1C] \n"
799 " MOV R1, #0x3E \n"
800 " BL sub_FF86753C \n"
801 " LDRSH R0, [R4, #4] \n"
802 " MOV R2, #0 \n"
803 " MOV R1, #0 \n"
804 " BL sub_FF89A270 \n"
805 " MOV R6, R0 \n"
806 " LDRSH R0, [R4, #6] \n"
807 " BL sub_FF89A380 \n"
808 " LDRSH R0, [R4, #8] \n"
809 " BL sub_FF89A3D8 \n"
810 " LDRSH R0, [R4, #0xA] \n"
811 " BL sub_FF89A430 \n"
812 " LDRSH R0, [R4, #0xC] \n"
813 " BL sub_FF89A488 \n"
814 " MOV R5, R0 \n"
815 " LDR R0, [R4] \n"
816 " LDR R8, =0x19D54 \n"
817 " CMP R0, #0xB \n"
818 " MOVEQ R6, #0 \n"
819 " MOVEQ R5, #0 \n"
820 " BEQ loc_FF89B2CC \n"
821 " CMP R6, #1 \n"
822 " BNE loc_FF89B2CC \n"
823 " LDRSH R0, [R4, #4] \n"
824 " LDR R1, =0xFF89A1DC \n"
825 " MOV R2, #2 \n"
826 " BL sub_FF91A210 \n"
827 " STRH R0, [R4, #4] \n"
828 " MOV R0, #0 \n"
829 " STR R0, [R7, #0x28] \n"
830 " B loc_FF89B2D4 \n"
831 "loc_FF89B2CC:\n"
832 " LDRH R0, [R8] \n"
833 " STRH R0, [R4, #4] \n"
834 "loc_FF89B2D4:\n"
835 " CMP R5, #1 \n"
836 " LDRNEH R0, [R8, #8] \n"
837 " BNE loc_FF89B2F0 \n"
838 " LDRSH R0, [R4, #0xC] \n"
839 " LDR R1, =0xFF89A260 \n"
840 " MOV R2, #0x20 \n"
841 " BL sub_FF89EBB0 \n"
842 "loc_FF89B2F0:\n"
843 " STRH R0, [R4, #0xC] \n"
844 " LDRSH R0, [R4, #6] \n"
845 " BL sub_FF88CB14_my \n"
846 " LDR PC, =0xff89b2fc\n"
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879 );
880 }
881
882
883 void __attribute__((naked,noinline)) sub_FF88CB14_my( ) {
884 asm volatile (
885 " STMFD SP!, {R4-R6,LR} \n"
886 " LDR R5, =0x3C04 \n"
887 " MOV R4, R0 \n"
888 " LDR R0, [R5, #4] \n"
889 " CMP R0, #1 \n"
890 " MOVNE R1, #0x140 \n"
891 " LDRNE R0, =0xFF88C918 \n"
892 " BLNE _DebugAssert \n"
893 " CMN R4, #0xC00 \n"
894 " LDREQSH R4, [R5, #2] \n"
895 " CMN R4, #0xC00 \n"
896 " LDREQ R1, =0x146 \n"
897 " LDREQ R0, =0xFF88C918 \n"
898 " STRH R4, [R5, #2] \n"
899 " BLEQ _DebugAssert \n"
900 " MOV R0, R4 \n"
901 " BL apex2us\n"
902 " LDR PC, =0xff88cb64\n"
903
904
905
906
907
908
909
910
911
912
913
914
915 );
916 }
917