This source file includes following definitions.
- capt_seq_hook_set_nr_my
- capt_seq_task
- sub_FF96E09C_my
- sub_FFAB050C_my
- exp_drv_task
- sub_FF8BCB0C_my
- sub_FF8ADF00_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6
7
8 static long *nrflag = (long*)0x5CB4;
9
10 #include "../../../generic/capt_seq.c"
11
12
13 int capt_seq_hook_set_nr_my(int orig)
14 {
15
16 camera_info.state.shutter_open_time = _time((void*)0);
17 camera_info.state.shutter_open_tick_count = get_tick_count();
18
19
20 if (orig!=NR_ON && orig!=NR_OFF)
21 return orig;
22
23 switch (conf.raw_nr){
24 case NOISE_REDUCTION_OFF:
25 return NR_OFF;
26 case NOISE_REDUCTION_ON:
27 return NR_ON;
28 case NOISE_REDUCTION_AUTO_CANON:
29 default:
30 return orig;
31 };
32 }
33
34
35
36
37
38 void __attribute__((naked,noinline)) capt_seq_task()
39 {
40
41 asm volatile (
42 " STMFD SP!, {R3-R7,LR} \n"
43 " LDR R6, =0x2C6C \n"
44 " LDR R5, =0x38B44 \n"
45 "loc_FF87B570: \n"
46 " LDR R0, [R6,#4] \n"
47 " MOV R2, #0 \n"
48 " MOV R1, SP \n"
49 " BL sub_FF839B8C \n"
50 " TST R0, #1 \n"
51 " BEQ loc_FF87B59C \n"
52 " LDR R1, =0x43F \n"
53 " LDR R0, =0xFF87B07C \n"
54 " BL _DebugAssert \n"
55 " BL sub_FF81EB30 \n"
56 " LDMFD SP!, {R3-R7,PC} \n"
57 "loc_FF87B59C: \n"
58 " LDR R0, [SP] \n"
59 " LDR R1, [R0] \n"
60 " CMP R1, #0x21 \n"
61 " ADDLS PC, PC, R1,LSL#2 \n"
62 " B loc_FF87B794 \n"
63 "loc_FF87B5B0: \n"
64 " B loc_FF87B638 \n"
65 "loc_FF87B5B4: \n"
66 " B loc_FF87B640 \n"
67 "loc_FF87B5B8: \n"
68 " B loc_FF87B658 \n"
69 "loc_FF87B5BC: \n"
70 " B loc_FF87B66C \n"
71 "loc_FF87B5C0: \n"
72 " B loc_FF87B664 \n"
73 "loc_FF87B5C4: \n"
74 " B loc_FF87B674 \n"
75 "loc_FF87B5C8: \n"
76 " B loc_FF87B67C \n"
77 "loc_FF87B5CC: \n"
78 " B loc_FF87B688 \n"
79 "loc_FF87B5D0: \n"
80 " B loc_FF87B694 \n"
81 "loc_FF87B5D4: \n"
82 " B loc_FF87B66C \n"
83 "loc_FF87B5D8: \n"
84 " B loc_FF87B69C \n"
85 "loc_FF87B5DC: \n"
86 " B loc_FF87B6A8 \n"
87 "loc_FF87B5E0: \n"
88 " B loc_FF87B6B0 \n"
89 "loc_FF87B5E4: \n"
90 " B loc_FF87B6B8 \n"
91 "loc_FF87B5E8: \n"
92 " B loc_FF87B6C0 \n"
93 "loc_FF87B5EC: \n"
94 " B loc_FF87B6C8 \n"
95 "loc_FF87B5F0: \n"
96 " B loc_FF87B6D0 \n"
97 "loc_FF87B5F4: \n"
98 " B loc_FF87B6D8 \n"
99 "loc_FF87B5F8: \n"
100 " B loc_FF87B6E0 \n"
101 "loc_FF87B5FC: \n"
102 " B loc_FF87B6E8 \n"
103 "loc_FF87B600: \n"
104 " B loc_FF87B6F0 \n"
105 "loc_FF87B604: \n"
106 " B loc_FF87B6F8 \n"
107 "loc_FF87B608: \n"
108 " B loc_FF87B700 \n"
109 "loc_FF87B60C: \n"
110 " B loc_FF87B70C \n"
111 "loc_FF87B610: \n"
112 " B loc_FF87B714 \n"
113 "loc_FF87B614: \n"
114 " B loc_FF87B720 \n"
115 "loc_FF87B618: \n"
116 " B loc_FF87B728 \n"
117 "loc_FF87B61C: \n"
118 " B loc_FF87B730 \n"
119 "loc_FF87B620: \n"
120 " B loc_FF87B738 \n"
121 "loc_FF87B624: \n"
122 " B loc_FF87B740 \n"
123 "loc_FF87B628: \n"
124 " B loc_FF87B748 \n"
125 "loc_FF87B62C: \n"
126 " B loc_FF87B750 \n"
127 "loc_FF87B630: \n"
128 " B loc_FF87B75C \n"
129 "loc_FF87B634: \n"
130 " B loc_FF87B7A0 \n"
131 "loc_FF87B638: \n"
132
133 " BL sub_FF87BD1C \n"
134 " BL shooting_expo_param_override \n"
135 " B loc_FF87B680 \n"
136 "loc_FF87B640: \n"
137
138 " LDRH R1, [R5] \n"
139 " SUB R12, R1, #0x8200 \n"
140 " SUBS R12, R12, #0x2E \n"
141 " LDRNE R0, [R0,#0xC] \n"
142
143 " BLNE sub_FF96E09C_my \n"
144 " B loc_FF87B7A0 \n"
145 "loc_FF87B658: \n"
146
147 " MOV R0, #1 \n"
148 " BL sub_FF87BFA8 \n"
149 " B loc_FF87B7A0 \n"
150 "loc_FF87B664: \n"
151
152 " BL sub_FF87B9CC \n"
153 " B loc_FF87B7A0 \n"
154 "loc_FF87B66C: \n"
155
156 " BL sub_FF87BCFC \n"
157 " B loc_FF87B7A0 \n"
158 "loc_FF87B674: \n"
159
160 " BL sub_FF87BD04 \n"
161 " B loc_FF87B7A0 \n"
162 "loc_FF87B67C: \n"
163
164 " BL sub_FF87BEBC \n"
165 "loc_FF87B680: \n"
166 " BL sub_FF879260 \n"
167 " B loc_FF87B7A0 \n"
168 "loc_FF87B688: \n"
169
170 " LDR R0, [R0,#0xC] \n"
171 " BL sub_FF96E20C \n"
172 " B loc_FF87B7A0 \n"
173 "loc_FF87B694: \n"
174
175 " BL sub_FF87BF20 \n"
176 " B loc_FF87B680 \n"
177 "loc_FF87B69C: \n"
178
179 " LDR R0, [R5,#0x4C] \n"
180 " BL sub_FF87C57C \n"
181 " B loc_FF87B7A0 \n"
182 "loc_FF87B6A8: \n"
183
184 " BL sub_FF87C8C8 \n"
185 " B loc_FF87B7A0 \n"
186 "loc_FF87B6B0: \n"
187
188 " BL sub_FF87C92C \n"
189 " B loc_FF87B7A0 \n"
190 "loc_FF87B6B8: \n"
191
192 " BL sub_FF96D5DC \n"
193 " B loc_FF87B7A0 \n"
194 "loc_FF87B6C0: \n"
195
196 " BL sub_FF96D7E8 \n"
197 " B loc_FF87B7A0 \n"
198 "loc_FF87B6C8: \n"
199
200 " BL sub_FF96D86C \n"
201 " B loc_FF87B7A0 \n"
202 "loc_FF87B6D0: \n"
203
204 " BL sub_FF96D958 \n"
205 " B loc_FF87B7A0 \n"
206 "loc_FF87B6D8: \n"
207
208 " BL sub_FF96DA28 \n"
209 " B loc_FF87B7A0 \n"
210 "loc_FF87B6E0: \n"
211
212 " MOV R0, #0 \n"
213 " B loc_FF87B704 \n"
214 "loc_FF87B6E8: \n"
215
216 " BL sub_FF96DE24 \n"
217 " B loc_FF87B7A0 \n"
218 "loc_FF87B6F0: \n"
219
220 " BL sub_FF96DEC8 \n"
221 " B loc_FF87B7A0 \n"
222 "loc_FF87B6F8: \n"
223
224 " BL sub_FF96DFA8 \n"
225 " B loc_FF87B7A0 \n"
226 "loc_FF87B700: \n"
227
228 " MOV R0, #1 \n"
229 "loc_FF87B704: \n"
230 " BL sub_FF96DCC4 \n"
231 " B loc_FF87B7A0 \n"
232 "loc_FF87B70C: \n"
233
234 " BL sub_FF87C178 \n"
235 " B loc_FF87B7A0 \n"
236 "loc_FF87B714: \n"
237
238 " BL sub_FF87C1A4 \n"
239 " BL sub_FF96EE48 \n"
240 " B loc_FF87B7A0 \n"
241 "loc_FF87B720: \n"
242
243 " BL sub_FF96DB9C \n"
244 " B loc_FF87B7A0 \n"
245 "loc_FF87B728: \n"
246
247 " BL sub_FF96DC34 \n"
248 " B loc_FF87B7A0 \n"
249 "loc_FF87B730: \n"
250
251 " BL sub_FF96EF18 \n"
252 " B loc_FF87B7A0 \n"
253 "loc_FF87B738: \n"
254
255 " BL sub_FF83790C \n"
256 " B loc_FF87B7A0 \n"
257 "loc_FF87B740: \n"
258
259 " BL sub_FF87E998 \n"
260 " B loc_FF87B7A0 \n"
261 "loc_FF87B748: \n"
262
263 " BL sub_FF87EA18 \n"
264 " B loc_FF87B7A0 \n"
265 "loc_FF87B750: \n"
266
267 " BL sub_FF87EA74 \n"
268 " BL sub_FF87EA34 \n"
269 " B loc_FF87B7A0 \n"
270 "loc_FF87B75C: \n"
271
272 " MOV R0, #1 \n"
273 " BL sub_FF96E990 \n"
274 " MOV R0, #1 \n"
275 " BL sub_FF96EAB4 \n"
276 " LDRH R0, [R5,#0x94] \n"
277 " CMP R0, #4 \n"
278 " LDRNEH R0, [R5] \n"
279 " SUBNE R12, R0, #0x4200 \n"
280 " SUBNES R12, R12, #0x2A \n"
281 " BNE loc_FF87B7A0 \n"
282 " BL sub_FF87EA18 \n"
283 " BL sub_FF87EF84 \n"
284 " BL sub_FF87EE94 \n"
285 " B loc_FF87B7A0 \n"
286 "loc_FF87B794: \n"
287
288 " LDR R1, =0x591 \n"
289 " LDR R0, =0xFF87B07C \n"
290 " BL _DebugAssert \n"
291 "loc_FF87B7A0: \n"
292
293 " LDR R0, [SP] \n"
294 " LDR R1, [R0,#4] \n"
295 " LDR R0, [R6] \n"
296 " BL sub_FF8855D8 \n"
297 " LDR R4, [SP] \n"
298 " LDR R0, [R4,#8] \n"
299 " CMP R0, #0 \n"
300 " LDREQ R1, =0x115 \n"
301 " LDREQ R0, =0xFF87B07C \n"
302 " BLEQ _DebugAssert \n"
303 " MOV R0, #0 \n"
304 " STR R0, [R4,#8] \n"
305 " B loc_FF87B570 \n"
306 );
307 }
308
309 void __attribute__((naked,noinline)) sub_FF96E09C_my(){
310 asm volatile(
311 " STMFD SP!, {R3-R7,LR}\n"
312 " MOV R4, R0 \n"
313 " MOV R0, #0xC \n"
314 " BL sub_FF880578 \n"
315 " TST R0, #1 \n"
316 " MOVNE R2, R4 \n"
317 " LDMNEFD SP!, {R3-R7,LR} \n"
318 " MOVNE R1, #1 \n"
319 " MOVNE R0, #1 \n"
320 " BNE sub_FF879734 \n"
321 " LDR R0, [R4,#8] \n"
322 " LDR R5, =0x38B44 \n"
323 " ORR R0, R0, #1 \n"
324 " STR R0, [R4,#8] \n"
325 " LDRH R0, [R5,#0x92] \n"
326 " CMP R0, #3 \n"
327 " BEQ loc_FF96E170 \n"
328 " LDR R0, [R4,#0xC] \n"
329 " CMP R0, #1 \n"
330 " BLS loc_FF96E13C \n"
331 " LDRH R0, [R5,#0x90] \n"
332 " CMP R0, #0 \n"
333 " BNE loc_FF96E170 \n"
334 " LDRH R0, [R5,#0x8C] \n"
335 " CMP R0, #2 \n"
336 " BNE loc_FF96E148 \n"
337 " BL sub_FF87C270 \n"
338 " LDRH R0, [R5,#0x92] \n"
339 " CMP R0, #3 \n"
340 " BEQ loc_FF96E170 \n"
341 " LDR R0, [R4,#0xC] \n"
342 " CMP R0, #1 \n"
343 " BLS loc_FF96E13C \n"
344 " LDRH R0, [R5,#0x90] \n"
345 " CMP R0, #0 \n"
346 " BNE loc_FF96E170 \n"
347 " LDRH R0, [R5,#0x8C] \n"
348 " CMP R0, #2 \n"
349 " BEQ loc_FF96E16C \n"
350 " B loc_FF96E148 \n"
351 "loc_FF96E13C: \n"
352 " LDRH R0, [R5,#0x90] \n"
353 " CMP R0, #0 \n"
354 " BNE loc_FF96E170 \n"
355 "loc_FF96E148: \n"
356 " LDRH R0, [R5,#0x8C] \n"
357 " CMP R0, #1 \n"
358 " BNE loc_FF96E170 \n"
359 " LDR R0, [R4,#0xC] \n"
360 " CMP R0, #1 \n"
361 " BLS loc_FF96E170 \n"
362 " LDR R0, [R4,#0x10] \n"
363 " CMP R0, #1 \n"
364 " BNE loc_FF96E170 \n"
365 "loc_FF96E16C: \n"
366 " BL sub_FF96EF50 \n"
367 "loc_FF96E170: \n"
368 " BL sub_FF96EF18 \n"
369 " BL sub_FF87BD0C \n"
370 " MOV R0, R4 \n"
371 " BL sub_FFAAFCA8 \n"
372 " TST R0, #1 \n"
373 " BNE locret_FF96E208 \n"
374 " MOV R0, R4 \n"
375 " BL sub_FFAB0088 \n"
376 " BL sub_FF96E774 \n"
377 " MOV R6, #1 \n"
378 " MOV R0, #2 \n"
379 " BL sub_FF877954 \n"
380 " LDRH R0, [R5] \n"
381 " SUB R12, R0, #0x8200 \n"
382 " SUBS R12, R12, #0x2D \n"
383 " BNE loc_FF96E1F0 \n"
384 " MOV R2, #2 \n"
385 " ADD R0, R2, #0x15C \n"
386 " MOV R1, SP \n"
387 " STR R6, [SP] \n"
388 " BL sub_FF88D7A0 \n"
389 " TST R0, #1 \n"
390 " MOVNE R1, #0xC3 \n"
391
392 " LDRNE R0, =0xFF96E27C \n"
393 " BLNE _DebugAssert \n"
394 " LDRH R0, [SP] \n"
395 " CMP R0, #1 \n"
396 " MOVHI R0, #0x1D \n"
397 " STRHI R6, [R4,#0xD4] \n"
398 " BHI loc_FF96E1F8 \n"
399 " MOV R0, #0 \n"
400 " STR R0, [R4,#0xD4] \n"
401 "loc_FF96E1F0: \n"
402 " MOV R0, R4 \n"
403
404 " BL sub_FFAB050C_my \n"
405 " BL capt_seq_hook_raw_here \n"
406 "loc_FF96E1F8: \n"
407 " MOV R1, R0 \n"
408 " MOV R0, R4 \n"
409 " LDMFD SP!, {R3-R7,LR} \n"
410 " B sub_FFAAFDAC \n"
411 "locret_FF96E208: \n"
412 " LDMFD SP!, {R3-R7,PC} \n"
413 );
414 }
415
416 void __attribute__((naked,noinline)) sub_FFAB050C_my()
417 {
418 asm volatile(
419 " STMFD SP!, {R2-R6,LR} \n"
420 " MOV R5, R0 \n"
421 " BL sub_FF96EC78 \n"
422 " MOV R1, #0xFFFFFFFF \n"
423 " BL sub_FF88560C \n"
424 " LDR R0, =0xFFAAFE18 \n"
425 " MOV R1, R5 \n"
426 " BL sub_FF8B571C \n"
427 " MOV R0, R5 \n"
428 " BL sub_FFAAFD34 \n"
429 " MOV R0, R5 \n"
430 " BL sub_FFAB0150 \n"
431 " MOV R4, R0 \n"
432 " LDR R1, =0xC918 \n"
433 " MOV R0, #0x8A \n"
434 " MOV R2, #4 \n"
435 " BL sub_FF88D7A0 \n"
436 " TST R0, #1 \n"
437 " LDRNE R1, =0x1F6 \n"
438
439 " LDRNE R0, =0xFFAB067C \n"
440 " BLNE _DebugAssert \n"
441 " BL sub_FF87E0F8 \n"
442 " MOV R0, R4 \n"
443
444 " BL wait_until_remote_button_is_released\n"
445 " BL capt_seq_hook_set_nr_my \n"
446
447 " B sub_FFAB0568 \n"
448 );
449 }
450
451
452
453
454 void __attribute__((naked,noinline)) exp_drv_task()
455 {
456
457 asm volatile(
458 " STMFD SP!, {R4-R8,LR} \n"
459 " SUB SP, SP, #0x20 \n"
460 " LDR R8, =0xBB8 \n"
461 " LDR R7, =0x43F8 \n"
462 " LDR R5, =0x544E0 \n"
463 " MOV R0, #0 \n"
464 " ADD R6, SP, #0x10 \n"
465 " STR R0, [SP,#0xC] \n"
466 "loc_FF8BFAB4: \n"
467 " LDR R0, [R7,#0x20] \n"
468 " MOV R2, #0 \n"
469 " ADD R1, SP, #0x1C \n"
470 " BL sub_FF839B8C \n"
471 " LDR R0, [SP,#0xC] \n"
472 " CMP R0, #1 \n"
473 " BNE loc_FF8BFB00 \n"
474 " LDR R0, [SP,#0x1C] \n"
475 " LDR R0, [R0] \n"
476 " CMP R0, #0x14 \n"
477 " CMPNE R0, #0x15 \n"
478 " CMPNE R0, #0x16 \n"
479 " CMPNE R0, #0x17 \n"
480 " BEQ loc_FF8BFC64 \n"
481 " CMP R0, #0x29 \n"
482 " BEQ loc_FF8BFBEC \n"
483 " ADD R1, SP, #0xC \n"
484 " MOV R0, #0 \n"
485 " BL sub_FF8BFA44 \n"
486 "loc_FF8BFB00: \n"
487 " LDR R0, [SP,#0x1C] \n"
488 " LDR R1, [R0] \n"
489 " CMP R1, #0x2F \n"
490 " BNE loc_FF8BFB30 \n"
491 " LDR R0, [SP,#0x1C] \n"
492 " BL sub_FF8C0E38 \n"
493 " LDR R0, [R7,#0x1C] \n"
494 " MOV R1, #1 \n"
495 " BL sub_FF8855D8 \n"
496 " BL sub_FF81EB30 \n"
497 " ADD SP, SP, #0x20 \n"
498 " LDMFD SP!, {R4-R8,PC} \n"
499 "loc_FF8BFB30: \n"
500 " CMP R1, #0x2E \n"
501 " BNE loc_FF8BFB4C \n"
502 " LDR R2, [R0,#0x8C]! \n"
503 " LDR R1, [R0,#4] \n"
504 " MOV R0, R1 \n"
505 " BLX R2 \n"
506 " B loc_FF8C0120 \n"
507 "loc_FF8BFB4C: \n"
508 " CMP R1, #0x27 \n"
509 " BNE loc_FF8BFB9C \n"
510 " LDR R0, [R7,#0x1C] \n"
511 " MOV R1, #0x80 \n"
512 " BL sub_FF88560C \n"
513 " LDR R0, =0xFF8BB8F4 \n"
514 " MOV R1, #0x80 \n"
515 " BL sub_FF961628 \n"
516 " LDR R0, [R7,#0x1C] \n"
517 " MOV R2, R8 \n"
518 " MOV R1, #0x80 \n"
519 " BL sub_FF885518 \n"
520 " TST R0, #1 \n"
521 " LDRNE R1, =0x1089 \n"
522 " BNE loc_FF8BFC58 \n"
523 "loc_FF8BFB88: \n"
524 " LDR R1, [SP,#0x1C] \n"
525 " LDR R0, [R1,#0x90] \n"
526 " LDR R1, [R1,#0x8C] \n"
527 " BLX R1 \n"
528 " B loc_FF8C0120 \n"
529 "loc_FF8BFB9C: \n"
530 " CMP R1, #0x28 \n"
531 " BNE loc_FF8BFBE4 \n"
532 " ADD R1, SP, #0xC \n"
533 " BL sub_FF8BFA44 \n"
534 " LDR R0, [R7,#0x1C] \n"
535 " MOV R1, #0x100 \n"
536 " BL sub_FF88560C \n"
537 " LDR R0, =0xFF8BB904 \n"
538 " MOV R1, #0x100 \n"
539 " BL sub_FF962058 \n"
540 " LDR R0, [R7,#0x1C] \n"
541 " MOV R2, R8 \n"
542 " MOV R1, #0x100 \n"
543 " BL sub_FF885518 \n"
544 " TST R0, #1 \n"
545 " BEQ loc_FF8BFB88 \n"
546 " LDR R1, =0x1093 \n"
547 " B loc_FF8BFC58 \n"
548 "loc_FF8BFBE4: \n"
549 " CMP R1, #0x29 \n"
550 " BNE loc_FF8BFBFC \n"
551 "loc_FF8BFBEC: \n"
552 " LDR R0, [SP,#0x1C] \n"
553 " ADD R1, SP, #0xC \n"
554 " BL sub_FF8BFA44 \n"
555 " B loc_FF8BFB88 \n"
556 "loc_FF8BFBFC: \n"
557 " CMP R1, #0x2C \n"
558 " BNE loc_FF8BFC14 \n"
559 " BL sub_FF8AE190 \n"
560 " BL sub_FF8AED9C \n"
561 " BL sub_FF8AE908 \n"
562 " B loc_FF8BFB88 \n"
563 "loc_FF8BFC14: \n"
564 " CMP R1, #0x2D \n"
565 " BNE loc_FF8BFC64 \n"
566 " LDR R0, [R7,#0x1C] \n"
567 " MOV R1, #4 \n"
568 " BL sub_FF88560C \n"
569 " LDR R1, =0xFF8BB924 \n"
570 " LDR R0, =0xFFFFF400 \n"
571 " MOV R2, #4 \n"
572 " BL sub_FF8ADC0C \n"
573 " BL sub_FF8ADE94 \n"
574 " LDR R0, [R7,#0x1C] \n"
575 " MOV R2, R8 \n"
576 " MOV R1, #4 \n"
577 " BL sub_FF885434 \n"
578 " TST R0, #1 \n"
579 " BEQ loc_FF8BFB88 \n"
580 " LDR R1, =0x10BB \n"
581 "loc_FF8BFC58: \n"
582 " LDR R0, =0xFF8BBFAC \n"
583 " BL _DebugAssert \n"
584 " B loc_FF8BFB88 \n"
585 "loc_FF8BFC64: \n"
586 " LDR R0, [SP,#0x1C] \n"
587 " MOV R4, #1 \n"
588 " LDR R1, [R0] \n"
589 " CMP R1, #0x12 \n"
590 " CMPNE R1, #0x13 \n"
591 " BNE loc_FF8BFCD4 \n"
592 " LDR R1, [R0,#0x7C] \n"
593 " ADD R1, R1, R1,LSL#1 \n"
594 " ADD R1, R0, R1,LSL#2 \n"
595 " SUB R1, R1, #8 \n"
596 " LDMIA R1, {R2-R4} \n"
597 " STMIA R6, {R2-R4} \n"
598 " BL sub_FF8BE1CC \n"
599 " LDR R0, [SP,#0x1C] \n"
600 " LDR R1, [R0,#0x7C] \n"
601 " LDR R3, [R0,#0x8C] \n"
602 " LDR R2, [R0,#0x90] \n"
603 " ADD R0, R0, #4 \n"
604 " BLX R3 \n"
605 " LDR R0, [SP,#0x1C] \n"
606 " BL sub_FF8C1244 \n"
607 " LDR R0, [SP,#0x1C] \n"
608 " LDR R1, [R0,#0x7C] \n"
609 " LDR R3, [R0,#0x94] \n"
610 " LDR R2, [R0,#0x98] \n"
611 " ADD R0, R0, #4 \n"
612 " BLX R3 \n"
613 " B loc_FF8C005C \n"
614 "loc_FF8BFCD4: \n"
615 " CMP R1, #0x14 \n"
616 " CMPNE R1, #0x15 \n"
617 " CMPNE R1, #0x16 \n"
618 " CMPNE R1, #0x17 \n"
619 " BNE loc_FF8BFD8C \n"
620 " ADD R3, SP, #0xC \n"
621 " MOV R2, SP \n"
622 " ADD R1, SP, #0x10 \n"
623 " BL sub_FF8BE438 \n"
624 " CMP R0, #1 \n"
625 " MOV R4, R0 \n"
626 " CMPNE R4, #5 \n"
627 " BNE loc_FF8BFD28 \n"
628 " LDR R0, [SP,#0x1C] \n"
629 " MOV R2, R4 \n"
630 " LDR R1, [R0,#0x7C]! \n"
631 " LDR R12, [R0,#0x10]! \n"
632 " LDR R3, [R0,#4] \n"
633 " MOV R0, SP \n"
634 " BLX R12 \n"
635 " B loc_FF8BFD60 \n"
636 "loc_FF8BFD28: \n"
637 " LDR R0, [SP,#0x1C] \n"
638 " CMP R4, #2 \n"
639 " LDR R3, [R0,#0x90] \n"
640 " CMPNE R4, #6 \n"
641 " BNE loc_FF8BFD74 \n"
642 " LDR R12, [R0,#0x8C] \n"
643 " MOV R0, SP \n"
644 " MOV R2, R4 \n"
645 " MOV R1, #1 \n"
646 " BLX R12 \n"
647 " LDR R0, [SP,#0x1C] \n"
648 " MOV R2, SP \n"
649 " ADD R1, SP, #0x10 \n"
650 " BL sub_FF8BF790 \n"
651 "loc_FF8BFD60: \n"
652 " LDR R0, [SP,#0x1C] \n"
653 " LDR R2, [SP,#0xC] \n"
654 " MOV R1, R4 \n"
655 " BL sub_FF8BF9E4 \n"
656 " B loc_FF8C005C \n"
657 "loc_FF8BFD74: \n"
658 " LDR R1, [R0,#0x7C] \n"
659 " LDR R12, [R0,#0x8C] \n"
660 " ADD R0, R0, #4 \n"
661 " MOV R2, R4 \n"
662 " BLX R12 \n"
663 " B loc_FF8C005C \n"
664 "loc_FF8BFD8C: \n"
665 " CMP R1, #0x23 \n"
666 " CMPNE R1, #0x24 \n"
667 " BNE loc_FF8BFDD8 \n"
668 " LDR R1, [R0,#0x7C] \n"
669 " ADD R1, R1, R1,LSL#1 \n"
670 " ADD R1, R0, R1,LSL#2 \n"
671 " SUB R1, R1, #8 \n"
672 " LDMIA R1, {R2-R4} \n"
673 " STMIA R6, {R2-R4} \n"
674 " BL sub_FF8BD250 \n"
675 " LDR R0, [SP,#0x1C] \n"
676 " LDR R1, [R0,#0x7C] \n"
677 " LDR R3, [R0,#0x8C] \n"
678 " LDR R2, [R0,#0x90] \n"
679 " ADD R0, R0, #4 \n"
680 " BLX R3 \n"
681 " LDR R0, [SP,#0x1C] \n"
682 " BL sub_FF8BD69C \n"
683 " B loc_FF8C005C \n"
684 "loc_FF8BFDD8: \n"
685 " ADD R1, R0, #4 \n"
686 " LDMIA R1, {R2,R3,R12} \n"
687 " STMIA R6, {R2,R3,R12} \n"
688 " LDR R1, [R0] \n"
689 " CMP R1, #0x26 \n"
690 " ADDLS PC, PC, R1,LSL#2 \n"
691 " B loc_FF8C003C \n"
692 "loc_FF8BFDF4: \n"
693 " B loc_FF8BFE90 \n"
694 "loc_FF8BFDF8: \n"
695 " B loc_FF8BFE90 \n"
696 "loc_FF8BFDFC: \n"
697 " B loc_FF8BFE98 \n"
698 "loc_FF8BFE00: \n"
699 " B loc_FF8BFEA0 \n"
700 "loc_FF8BFE04: \n"
701 " B loc_FF8BFEA0 \n"
702 "loc_FF8BFE08: \n"
703 " B loc_FF8BFEA0 \n"
704 "loc_FF8BFE0C: \n"
705 " B loc_FF8BFE90 \n"
706 "loc_FF8BFE10: \n"
707 " B loc_FF8BFE98 \n"
708 "loc_FF8BFE14: \n"
709 " B loc_FF8BFEA0 \n"
710 "loc_FF8BFE18: \n"
711 " B loc_FF8BFEA0 \n"
712 "loc_FF8BFE1C: \n"
713 " B loc_FF8BFEB8 \n"
714 "loc_FF8BFE20: \n"
715 " B loc_FF8BFEB8 \n"
716 "loc_FF8BFE24: \n"
717 " B loc_FF8C0028 \n"
718 "loc_FF8BFE28: \n"
719 " B loc_FF8C0030 \n"
720 "loc_FF8BFE2C: \n"
721 " B loc_FF8C0030 \n"
722 "loc_FF8BFE30: \n"
723 " B loc_FF8C0030 \n"
724 "loc_FF8BFE34: \n"
725 " B loc_FF8C0030 \n"
726 "loc_FF8BFE38: \n"
727 " B loc_FF8C0038 \n"
728 "loc_FF8BFE3C: \n"
729 " B loc_FF8C003C \n"
730 "loc_FF8BFE40: \n"
731 " B loc_FF8C003C \n"
732 "loc_FF8BFE44: \n"
733 " B loc_FF8C003C \n"
734 "loc_FF8BFE48: \n"
735 " B loc_FF8C003C \n"
736 "loc_FF8BFE4C: \n"
737 " B loc_FF8C003C \n"
738 "loc_FF8BFE50: \n"
739 " B loc_FF8C003C \n"
740 "loc_FF8BFE54: \n"
741 " B loc_FF8BFEA8 \n"
742 "loc_FF8BFE58: \n"
743 " B loc_FF8BFEB0 \n"
744 "loc_FF8BFE5C: \n"
745 " B loc_FF8BFEB0 \n"
746 "loc_FF8BFE60: \n"
747 " B loc_FF8BFEC4 \n"
748 "loc_FF8BFE64: \n"
749 " B loc_FF8BFEC4 \n"
750 "loc_FF8BFE68: \n"
751 " B loc_FF8BFECC \n"
752 "loc_FF8BFE6C: \n"
753 " B loc_FF8BFF04 \n"
754 "loc_FF8BFE70: \n"
755 " B loc_FF8BFF3C \n"
756 "loc_FF8BFE74: \n"
757 " B loc_FF8BFFD8 \n"
758 "loc_FF8BFE78: \n"
759 " B loc_FF8C0010 \n"
760 "loc_FF8BFE7C: \n"
761 " B loc_FF8C0010 \n"
762 "loc_FF8BFE80: \n"
763 " B loc_FF8C003C \n"
764 "loc_FF8BFE84: \n"
765 " B loc_FF8C003C \n"
766 "loc_FF8BFE88: \n"
767 " B loc_FF8C0018 \n"
768 "loc_FF8BFE8C: \n"
769 " B loc_FF8C0020 \n"
770 "loc_FF8BFE90: \n"
771
772 " BL sub_FF8BBE34 \n"
773 " B loc_FF8C003C \n"
774 "loc_FF8BFE98: \n"
775
776 " BL sub_FF8BC0D0 \n"
777 " B loc_FF8C003C \n"
778 "loc_FF8BFEA0: \n"
779
780 " BL sub_FF8BC2F8 \n"
781 " B loc_FF8C003C \n"
782 "loc_FF8BFEA8: \n"
783
784 " BL sub_FF8BC5D0 \n"
785 " B loc_FF8C003C \n"
786 "loc_FF8BFEB0: \n"
787
788 " BL sub_FF8BC7E8 \n"
789 " B loc_FF8C003C \n"
790 "loc_FF8BFEB8: \n"
791
792
793 " BL sub_FF8BCB0C_my \n"
794 " MOV R4, #0 \n"
795 " B loc_FF8C003C \n"
796 "loc_FF8BFEC4: \n"
797
798 " BL sub_FF8BCC54 \n"
799 " B loc_FF8C003C \n"
800 "loc_FF8BFECC: \n"
801
802 " LDRH R1, [R0,#4] \n"
803 " STRH R1, [SP,#0x10] \n"
804 " LDRH R1, [R5,#2] \n"
805 " STRH R1, [SP,#0x12] \n"
806 " LDRH R1, [R5,#4] \n"
807 " STRH R1, [SP,#0x14] \n"
808 " LDRH R1, [R5,#6] \n"
809 " STRH R1, [SP,#0x16] \n"
810 " LDRH R1, [R0,#0xC] \n"
811 " STRH R1, [SP,#0x18] \n"
812 " LDRH R1, [R5,#0xA] \n"
813 " STRH R1, [SP,#0x1A] \n"
814 " BL sub_FF8C0F3C \n"
815 " B loc_FF8C003C \n"
816 "loc_FF8BFF04: \n"
817
818 " LDRH R1, [R0,#4] \n"
819 " STRH R1, [SP,#0x10] \n"
820 " LDRH R1, [R5,#2] \n"
821 " STRH R1, [SP,#0x12] \n"
822 " LDRH R1, [R5,#4] \n"
823 " STRH R1, [SP,#0x14] \n"
824 " LDRH R1, [R5,#6] \n"
825 " STRH R1, [SP,#0x16] \n"
826 " LDRH R1, [R5,#8] \n"
827 " STRH R1, [SP,#0x18] \n"
828 " LDRH R1, [R5,#0xA] \n"
829 " STRH R1, [SP,#0x1A] \n"
830 " BL sub_FF8C1044 \n"
831 " B loc_FF8C003C \n"
832 "loc_FF8BFF3C: \n"
833
834 " LDRH R1, [R5] \n"
835 " STRH R1, [SP,#0x10] \n"
836 " LDRH R1, [R0,#6] \n"
837 " STRH R1, [SP,#0x12] \n"
838 " LDRH R1, [R5,#4] \n"
839 " STRH R1, [SP,#0x14] \n"
840 " LDRH R1, [R5,#6] \n"
841 " STRH R1, [SP,#0x16] \n"
842 " LDRH R1, [R5,#8] \n"
843 " STRH R1, [SP,#0x18] \n"
844 " LDRH R1, [R5,#0xA] \n"
845 " STRH R1, [SP,#0x1A] \n"
846 " BL sub_FF8C10F8 \n"
847 " B loc_FF8C003C \n"
848 "loc_FF8BFFD8: \n"
849
850 " LDRH R1, [R5] \n"
851 " STRH R1, [SP,#0x10] \n"
852 " LDRH R1, [R5,#2] \n"
853 " STRH R1, [SP,#0x12] \n"
854 " LDRH R1, [R5,#4] \n"
855 " STRH R1, [SP,#0x14] \n"
856 " LDRH R1, [R5,#6] \n"
857 " STRH R1, [SP,#0x16] \n"
858 " LDRH R1, [R0,#0xC] \n"
859 " STRH R1, [SP,#0x18] \n"
860 " LDRH R1, [R5,#0xA] \n"
861 " STRH R1, [SP,#0x1A] \n"
862 " BL sub_FF8C11A0 \n"
863 " B loc_FF8C003C \n"
864 "loc_FF8C0010: \n"
865
866 " BL sub_FF8BD028 \n"
867 " B loc_FF8C003C \n"
868 "loc_FF8C0018: \n"
869
870 " BL sub_FF8BD7A0 \n"
871 " B loc_FF8C003C \n"
872 "loc_FF8C0020: \n"
873
874 " BL sub_FF8BDA3C \n"
875 " B loc_FF8C003C \n"
876 "loc_FF8C0028: \n"
877
878 " BL sub_FF8BDC1C \n"
879 " B loc_FF8C003C \n"
880 "loc_FF8C0030: \n"
881
882 " BL sub_FF8BDDD8 \n"
883 " B loc_FF8C003C \n"
884 "loc_FF8C0038: \n"
885
886 " BL sub_FF8BDFC4 \n"
887 "loc_FF8C003C: \n"
888
889
890 " LDR R0, [SP,#0x1C] \n"
891 " LDR R1, [R0,#0x7C] \n"
892 " LDR R3, [R0,#0x8C] \n"
893 " LDR R2, [R0,#0x90] \n"
894 " ADD R0, R0, #4 \n"
895 " BLX R3 \n"
896 " CMP R4, #1 \n"
897 " BNE loc_FF8C00A4 \n"
898 "loc_FF8C005C: \n"
899 " LDR R0, [SP,#0x1C] \n"
900 " MOV R2, #0xC \n"
901 " LDR R1, [R0,#0x7C] \n"
902 " ADD R1, R1, R1,LSL#1 \n"
903 " ADD R0, R0, R1,LSL#2 \n"
904 " SUB R4, R0, #8 \n"
905 " LDR R0, =0x544E0 \n"
906 " ADD R1, SP, #0x10 \n"
907 " BL sub_FFB49F28 \n"
908 " LDR R0, =0x544EC \n"
909 " MOV R2, #0xC \n"
910 " ADD R1, SP, #0x10 \n"
911 " BL sub_FFB49F28 \n"
912 " LDR R0, =0x544F8 \n"
913 " MOV R2, #0xC \n"
914 " MOV R1, R4 \n"
915 " BL sub_FFB49F28 \n"
916 " B loc_FF8C0120 \n"
917 "loc_FF8C00A4: \n"
918 " LDR R0, [SP,#0x1C] \n"
919 " MOV R3, #1 \n"
920 " LDR R0, [R0] \n"
921 " CMP R0, #0xB \n"
922 " BNE loc_FF8C00EC \n"
923 " MOV R2, #0 \n"
924 " STRD R2, [SP] \n"
925 " MOV R2, #1 \n"
926 " MOV R1, #1 \n"
927 " MOV R0, #0 \n"
928 " BL sub_FF8BBC14 \n"
929 " MOV R3, #1 \n"
930 " MOV R2, #0 \n"
931 " STRD R2, [SP] \n"
932 " MOV R2, #1 \n"
933 " MOV R1, #1 \n"
934 " MOV R0, #0 \n"
935 " B loc_FF8C011C \n"
936 "loc_FF8C00EC: \n"
937 " MOV R2, #1 \n"
938 " STRD R2, [SP] \n"
939 " MOV R3, #1 \n"
940 " MOV R1, #1 \n"
941 " MOV R0, #1 \n"
942 " BL sub_FF8BBC14 \n"
943 " MOV R3, #1 \n"
944 " MOV R2, #1 \n"
945 " MOV R1, #1 \n"
946 " MOV R0, #1 \n"
947 " STR R3, [SP] \n"
948 " STR R3, [SP,#0x4] \n"
949 "loc_FF8C011C: \n"
950 " BL sub_FF8BBD7C \n"
951 "loc_FF8C0120: \n"
952 " LDR R0, [SP,#0x1C] \n"
953 " BL sub_FF8C0E38 \n"
954 " B loc_FF8BFAB4 \n"
955 );
956 }
957
958 void __attribute__((naked,noinline)) sub_FF8BCB0C_my()
959 {
960 asm volatile (
961 " STMFD SP!, {R4-R8,LR} \n"
962 " LDR R7, =0x43F8 \n"
963 " MOV R4, R0 \n"
964 " LDR R0, [R7,#0x1C] \n"
965 " MOV R1, #0x3E \n"
966 " BL sub_FF88560C \n"
967 " LDRSH R0, [R4,#4] \n"
968 " MOV R2, #0 \n"
969 " MOV R1, #0 \n"
970 " BL sub_FF8BB978 \n"
971 " MOV R5, R0 \n"
972 " LDRSH R0, [R4,#6] \n"
973 " BL sub_FF8BBA88 \n"
974 " LDRSH R0, [R4,#8] \n"
975 " BL sub_FF8BBAE0 \n"
976 " LDRSH R0, [R4,#0xA] \n"
977 " BL sub_FF8BBB38 \n"
978 " LDRSH R0, [R4,#0xC] \n"
979 " MOV R1, #0 \n"
980 " BL sub_FF8BBB90 \n"
981 " MOV R6, R0 \n"
982 " LDRSH R0, [R4,#0xE] \n"
983 " BL sub_FF8C0EDC \n"
984 " LDR R0, [R4] \n"
985 " LDR R8, =0x544F8 \n"
986 " CMP R0, #0xB \n"
987 " MOVEQ R5, #0 \n"
988 " MOVEQ R6, #0 \n"
989 " BEQ loc_FF8BCBA8 \n"
990 " CMP R5, #1 \n"
991 " BNE loc_FF8BCBA8 \n"
992 " LDRSH R0, [R4,#4] \n"
993 " LDR R1, =0xFF8BB8E4 \n"
994 " MOV R2, #2 \n"
995 " BL sub_FF961974 \n"
996 " STRH R0, [R4,#4] \n"
997 " MOV R0, #0 \n"
998 " STR R0, [R7,#0x28] \n"
999 " B loc_FF8BCBB0 \n"
1000 "loc_FF8BCBA8: \n"
1001 " LDRH R0, [R8] \n"
1002 " STRH R0, [R4,#4] \n"
1003 "loc_FF8BCBB0: \n"
1004 " CMP R6, #1 \n"
1005 " LDRNEH R0, [R8,#8] \n"
1006 " BNE loc_FF8BCBCC \n"
1007 " LDRSH R0, [R4,#0xC] \n"
1008 " LDR R1, =0xFF8BB968 \n"
1009 " MOV R2, #0x20 \n"
1010 " BL sub_FF8C0EF8 \n"
1011 "loc_FF8BCBCC: \n"
1012 " STRH R0, [R4,#0xC] \n"
1013 " LDRSH R0, [R4,#6] \n"
1014
1015 " BL sub_FF8ADF00_my \n"
1016 " LDRSH R0, [R4,#8] \n"
1017 " MOV R1, #1 \n"
1018 " BL sub_FF8AE650 \n"
1019 " MOV R1, #0 \n"
1020 " ADD R0, R4, #8 \n"
1021 " BL sub_FF8AE6D8 \n"
1022 " LDRSH R0, [R4,#0xE] \n"
1023 " BL sub_FF8B68D8 \n"
1024 " LDR R4, =0xBB8 \n"
1025 " CMP R5, #1 \n"
1026 " BNE loc_FF8BCC24 \n"
1027 " LDR R0, [R7,#0x1C] \n"
1028 " MOV R2, R4 \n"
1029 " MOV R1, #2 \n"
1030 " BL sub_FF885518 \n"
1031 " TST R0, #1 \n"
1032 " LDRNE R1, =0x61E \n"
1033 " LDRNE R0, =0xFF8BBFAC \n"
1034 " BLNE _DebugAssert \n"
1035 "loc_FF8BCC24: \n"
1036 " CMP R6, #1 \n"
1037 " LDMNEFD SP!, {R4-R8,PC} \n"
1038 " LDR R0, [R7,#0x1C] \n"
1039 " MOV R2, R4 \n"
1040 " MOV R1, #0x20 \n"
1041 " BL sub_FF885518 \n"
1042 " TST R0, #1 \n"
1043 " LDRNE R1, =0x623 \n"
1044
1045 " LDRNE R0, =0xFF8BBFAC \n"
1046 " LDMNEFD SP!, {R4-R8,LR} \n"
1047 " BNE _DebugAssert \n"
1048 " LDMFD SP!, {R4-R8,PC} \n"
1049 );
1050 }
1051
1052 void __attribute__((naked,noinline))sub_FF8ADF00_my() {
1053
1054 asm volatile (
1055 " STMFD SP!, {R4-R6,LR} \n"
1056 " LDR R5, =0x40DC \n"
1057 " MOV R4, R0 \n"
1058 " LDR R0, [R5,#4] \n"
1059 " CMP R0, #1 \n"
1060 " LDRNE R1, =0x146 \n"
1061
1062 " LDRNE R0, =0xFF8ADD04 \n"
1063 " BLNE _DebugAssert \n"
1064 " CMN R4, #0xC00 \n"
1065 " LDREQSH R4, [R5,#2] \n"
1066 " CMN R4, #0xC00 \n"
1067 " MOVEQ R1, #0x14C \n"
1068
1069 " LDREQ R0, =0xFF8ADD04 \n"
1070 " STRH R4, [R5,#2] \n"
1071 " BLEQ _DebugAssert \n"
1072 " MOV R0, R4 \n"
1073
1074 " BL apex2us \n"
1075 " MOV R4, R0 \n"
1076 " BL sub_FF8F6B80 \n"
1077 " MOV R0, R4 \n"
1078 " BL sub_FF9030B0 \n"
1079 " TST R0, #1 \n"
1080 " LDRNE R1, =0x151 \n"
1081 " LDMNEFD SP!, {R4-R6,LR} \n"
1082
1083 " LDRNE R0, =0xFF8ADD04 \n"
1084 " BNE _DebugAssert \n"
1085 " LDMFD SP!, {R4-R6,PC} \n"
1086 );
1087 }