source: branches/fe50t/platform/ixus90_sd790/sub/100d/capt_seq.c @ 223

Revision 223, 30.2 KB checked in by fe50, 3 years ago (diff)
  • updates for ixus90_sd790, by ehmu, from http://chdk.setepontos.com/index.php/topic,2187.msg45719.html#msg45719 added ultra long exposures (>64s) added multi partition support hooks in boot process adapted (used the magical mystery style "*(int*)0x1930 = (int)taskCreateHook;") DNG colormap changed (S5 was set, changed to colors that most(all) 10MPixel 1/2,3" sensors use, untested) remote zoom steps corrected (nTxtbl) uBasic set_led updated
  • some other cosmetics and clean up
Line 
1#include "lolevel.h"
2#include "platform.h"
3#include "core.h"
4
5static long *nrflag = (long*)0x9F90;
6
7#include "../../../generic/capt_seq.c"
8
9void __attribute__((naked,noinline)) sub_FF93D820_my(){
10 asm volatile(
11        "STMFD   SP!, {R0-R10,LR}\n"
12        "MOV     R6, #0\n"
13        "MOV     R4, R0\n"
14        "BL      sub_FF93E38C\n"
15        "MVN     R1, #0\n" //0xFFFFFFFF\n"
16        "BL      sub_FF827B50\n"
17        "MOV     R2, #4\n"
18                "ADD     R1, SP, #0x30-0x28\n"
19        "MOV     R0, #0x8A\n"
20        "BL      sub_FF86D25C\n"
21        "TST     R0, #1\n"
22        "MOVNE   R1, #0x218\n"
23        "LDRNE   R0, =0xFF86D14C\n" // aSscaptureseq_c ; "SsCaptureSeq.c"\n"
24        "BLNE    _DebugAssert\n"
25        "LDR     R8, =0x19F40\n"
26        "LDR     R5, =0x19E8C\n"
27        "LDRSH   R1, [R8,#0xE]\n"
28        "LDR     R0, [R5,#0x7C]\n"
29        "BL      sub_FF8F3DC8\n"
30        "BL      sub_FF845570\n" // GetCCDTemperature\n"
31        "LDR     R2, =0x91B0\n"
32        "ADD     R3, R4, #0x8C\n"
33        "STRH    R0, [R4,#0x88]\n"
34        // "STRD    R2, [SP,#0x30-0x30]\n"
35        "STR     R2, [SP]\n"  //+
36        "STR     R3, [SP,#4]\n"  //+
37        "MOV     R1, R0\n"
38        "LDRH    R0, [R5,#0x54]\n"
39        "LDRSH   R2, [R8,#0xC]\n"
40        "LDR     R3, =0x91AC\n"
41        "BL      sub_FF93E880\n"
42        "BL      capt_seq_hook_set_nr\n"
43        "BL       sub_FF93D894\n"
44 );
45}
46
47void __attribute__((naked,noinline)) sub_FF85E634_my() //#fs
48{
49        asm volatile (
50        "STMFD   SP!, {R4-R6,LR}\n"
51        "LDR     R4, [R0,#0xC]\n"
52        "LDR     R6, =0x19E8C\n"
53        "LDR     R0, [R4,#8]\n"
54        "MOV     R5, #0\n"
55        "ORR     R0, R0, #1\n"
56        "STR     R0, [R4,#8]\n"
57        "LDR     R0, [R6,#0x24]\n"
58        "CMP     R0, #0\n"
59        "MOVEQ   R0, #2\n"
60        "BLEQ    sub_FF858610\n"
61        "BL      sub_FF93C144\n"
62        "LDR     R0, [R6,#0x24]\n"
63        "CMP     R0, #0\n"
64        "BNE     loc_FF85E6B4\n"
65        "MOV     R0, R4\n"
66        "BL      sub_FF93C5D8\n"
67        "TST     R0, #1\n"
68        "MOVNE   R2, R4\n"
69        "LDMNEFD SP!, {R4-R6,LR}\n"
70        "MOVNE   R1, #1\n"
71        "BNE     sub_FF85C98C\n"
72        "BL      sub_FF95DAFC\n"
73        "BL      sub_FF86D3EC\n"
74        "STR     R0, [R4,#0x14]\n"
75        "MOV     R0, R4\n"
76        "BL      sub_FF93D738\n"
77        "BL      sub_FF93E214\n"
78        "MOV     R0, R4\n"
79        //"BL      sub_FF93D820\n"
80        "BL      sub_FF93D820_my\n"
81                "BL      capt_seq_hook_raw_here\n" // +
82        "MOV     R5, R0\n"
83        "B       loc_FF85E6C4\n"
84
85
86"loc_FF85E6B4:\n" //                               ; CODE XREF: sub_FF85E634+38j
87        "LDR     R0, =0x54E0\n"
88        "LDR     R0, [R0,#4]\n"
89        "CMP     R0, #0\n"
90        "MOVNE   R5, #0x1D\n"
91
92"loc_FF85E6C4:\n" //                               ; CODE XREF: sub_FF85E634+7Cj
93        "BL      sub_FF93F268\n"
94        "BL      sub_FF93F2A4\n"
95        "MOV     R2, R4\n"
96        "MOV     R1, #1\n"
97        "MOV     R0, R5\n"
98        "BL      sub_FF85C98C\n"
99        "BL      sub_FF93DC28\n"
100        "CMP     R0, #0\n"
101        "LDRNE   R0, [R4,#8]\n"
102        "ORRNE   R0, R0, #0x2000\n"
103        "STRNE   R0, [R4,#8]\n"
104        "LDMFD   SP!, {R4-R6,PC}\n"
105 );
106}
107
108//FF85E2B0
109void __attribute__((naked,noinline)) capt_seq_task() //#fs
110{
111        asm volatile (
112        "STMFD   SP!, {R3-R9,LR}\n"
113        "LDR     R6, =0x19E8C\n"
114        "LDR     R5, =0x54E0\n"
115        "MOV     R9, #1\n"
116        "MOV     R7, #0\n"
117
118"loc_FF85E2C4:\n" //                               ; CODE XREF: task_CaptSeqTask+298j
119        "LDR     R0, [R5,#0xC]\n"
120        "MOV     R2, #0\n"
121        "MOV     R1, SP\n"
122        "BL      sub_FF827DA0\n"
123        "TST     R0, #1\n"
124        "BEQ     loc_FF85E2F0\n"
125        "LDR     R1, =0x48E\n"
126        "LDR     R0, =0xFF85DF88\n" // ; "SsShootTask.c"\n"
127        "BL      _DebugAssert\n"
128        "BL      sub_FF81BAA8\n" // ExitTask\n"
129        "LDMFD   SP!, {R3-R9,PC}\n"
130
131
132"loc_FF85E2F0:\n" //                               ; CODE XREF: task_CaptSeqTask+28j
133        "LDR     R0, [SP,#0x20-0x20]\n"
134        "LDR     R1, [R0]\n"
135        "CMP     R1, #0x1B\n"
136        "ADDLS   PC, PC, R1,LSL#2\n"
137        "B       loc_FF85E510\n"
138
139
140"loc_FF85E304:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
141        "B       loc_FF85E374\n"
142
143
144"loc_FF85E308:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
145        "B       loc_FF85E3DC\n"
146
147
148"loc_FF85E30C:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
149        "B       loc_FF85E3E4\n"
150
151
152"loc_FF85E310:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
153        "B       loc_FF85E3FC\n"
154
155
156"loc_FF85E314:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
157        "B       loc_FF85E3F0\n"
158
159
160"loc_FF85E318:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
161        "B       loc_FF85E404\n"
162
163
164"loc_FF85E31C:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
165        "B       loc_FF85E40C\n"
166
167
168"loc_FF85E320:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
169        "B       loc_FF85E414\n"
170
171
172"loc_FF85E324:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
173        "B       loc_FF85E46C\n"
174
175
176"loc_FF85E328:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
177        "B       loc_FF85E478\n"
178
179
180"loc_FF85E32C:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
181        "B       loc_FF85E480\n"
182
183
184"loc_FF85E330:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
185        "B       loc_FF85E488\n"
186
187
188"loc_FF85E334:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
189        "B       loc_FF85E490\n"
190
191
192"loc_FF85E338:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
193        "B       loc_FF85E498\n"
194
195
196"loc_FF85E33C:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
197        "B       loc_FF85E4A0\n"
198
199
200"loc_FF85E340:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
201        "B       loc_FF85E4A8\n"
202
203
204"loc_FF85E344:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
205        "B       loc_FF85E4B0\n"
206
207
208"loc_FF85E348:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
209        "B       loc_FF85E4BC\n"
210
211
212"loc_FF85E34C:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
213        "B       loc_FF85E4C4\n"
214
215
216"loc_FF85E350:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
217        "B       loc_FF85E4CC\n"
218
219
220"loc_FF85E354:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
221        "B       loc_FF85E4D4\n"
222
223
224"loc_FF85E358:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
225        "B       loc_FF85E4E0\n"
226
227
228"loc_FF85E35C:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
229        "B       loc_FF85E4E8\n"
230
231
232"loc_FF85E360:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
233        "B       loc_FF85E4F0\n"
234
235
236"loc_FF85E364:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
237        "B       loc_FF85E4F8\n"
238
239
240"loc_FF85E368:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
241        "B       loc_FF85E500\n"
242
243
244"loc_FF85E36C:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
245        "B       loc_FF85E508\n"
246
247
248"loc_FF85E370:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
249        "B       loc_FF85E51C\n"
250
251
252"loc_FF85E374:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
253        "BL      sub_FF93C168\n"
254        "BL      shooting_expo_param_override\n" // +
255        "BL      sub_FF85C438\n"
256        "LDR     R0, [R6,#0x24]\n"
257        "CMP     R0, #0\n"
258        "BEQ     loc_FF85E51C\n"
259        "BL      sub_FF85DC58\n"
260        "MOV     R4, R0\n"
261        "LDR     R0, [R6,#0x24]\n"
262        "CMP     R0, #0\n"
263        "BEQ     loc_FF85E3BC\n"
264        "MOV     R0, #0xC\n"
265        "BL      sub_FF861300\n"
266        "TST     R0, #1\n"
267        "STRNE   R9, [R5,#4]\n"
268        "LDRNE   R0, [R4,#8]\n"
269        "ORRNE   R0, R0, #0x40000000\n"
270        "STRNE   R0, [R4,#8]\n"
271        "BNE     loc_FF85E51C\n"
272
273"loc_FF85E3BC:\n" //                               ; CODE XREF: task_CaptSeqTask+E8j
274        "BL      sub_FF95DAFC\n"
275        "BL      sub_FF86D3EC\n"
276        "STR     R0, [R4,#0x14]\n"
277        "MOV     R0, R4\n"
278        "BL      sub_FF93D820_my\n" // changed
279                "BL      capt_seq_hook_raw_here\n" // +
280        "TST     R0, #1\n"
281        "STRNE   R9, [R5,#4]\n"
282        "B       loc_FF85E51C\n"
283
284
285"loc_FF85E3DC:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
286
287                //"BL      sub_FF85E634\n"
288        "BL      sub_FF85E634_my\n" //_my
289        "B       loc_FF85E3F4\n"
290
291
292"loc_FF85E3E4:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
293
294
295        "MOV     R0, #1\n"
296        "BL      sub_FF93C310\n"
297        "B       loc_FF85E51C\n"
298
299
300"loc_FF85E3F0:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
301
302
303        "BL      sub_FF93BE00\n"
304
305"loc_FF85E3F4:\n" //                               ; CODE XREF: task_CaptSeqTask+130j
306
307        "STR     R7, [R6,#0x24]\n"
308        "B       loc_FF85E51C\n"
309
310
311"loc_FF85E3FC:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
312
313
314        "BL      sub_FF93C134\n"
315        "B       loc_FF85E3F4\n"
316
317
318"loc_FF85E404:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
319
320
321        "BL      sub_FF93C13C\n"
322        "B       loc_FF85E51C\n"
323
324
325"loc_FF85E40C:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
326
327
328        "BL      sub_FF93C230\n"
329        "B       loc_FF85E470\n"
330
331
332"loc_FF85E414:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
333
334
335        "LDR     R4, [R0,#0xC]\n"
336        "BL      sub_FF93C144\n"
337        "MOV     R0, R4\n"
338        "BL      sub_FF93C958\n"
339        "TST     R0, #1\n"
340        "MOV     R8, R0\n"
341        "BNE     loc_FF85E454\n"
342        "BL      sub_FF86D3EC\n"
343        "STR     R0, [R4,#0x14]\n"
344        "MOV     R0, R4\n"
345        "BL      sub_FF93D738\n"
346        "MOV     R0, R4\n"
347        "BL      sub_FF93DC88\n"
348        "MOV     R8, R0\n"
349        "LDR     R0, [R4,#0x14]\n"
350        "BL      sub_FF86D5F8\n"
351
352"loc_FF85E454:\n" //                               ; CODE XREF: task_CaptSeqTask+17Cj
353        "BL      sub_FF93C134\n"
354        "MOV     R2, R4\n"
355        "MOV     R1, #9\n"
356        "MOV     R0, R8\n"
357        "BL      sub_FF85C98C\n"
358        "B       loc_FF85E51C\n"
359
360
361"loc_FF85E46C:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
362
363
364        "BL      sub_FF93C290\n"
365
366"loc_FF85E470:\n" //                               ; CODE XREF: task_CaptSeqTask+160j
367        "BL      sub_FF85C438\n"
368        "B       loc_FF85E51C\n"
369
370
371"loc_FF85E478:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
372
373
374        "BL      sub_FF93C134\n"
375        "B       loc_FF85E51C\n"
376
377
378"loc_FF85E480:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
379
380
381        "BL      sub_FF93CBC4\n"
382        "B       loc_FF85E51C\n"
383
384
385"loc_FF85E488:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
386
387
388        "BL      sub_FF93CDAC\n"
389        "B       loc_FF85E51C\n"
390
391
392"loc_FF85E490:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
393
394
395        "BL      sub_FF93CE3C\n"
396        "B       loc_FF85E51C\n"
397
398
399"loc_FF85E498:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
400
401
402        "BL      sub_FF93CEF0\n"
403        "B       loc_FF85E51C\n"
404
405
406"loc_FF85E4A0:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
407
408
409        "BL      sub_FF93D0E8\n"
410        "B       loc_FF85E51C\n"
411
412
413"loc_FF85E4A8:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
414
415
416        "BL      sub_FF93D138\n"
417        "B       loc_FF85E51C\n"
418
419
420"loc_FF85E4B0:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
421
422
423        "MOV     R0, #0\n"
424        "BL      sub_FF93D1BC\n"
425        "B       loc_FF85E51C\n"
426
427
428"loc_FF85E4BC:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
429
430
431        "BL      sub_FF93D30C\n"
432        "B       loc_FF85E51C\n"
433
434
435"loc_FF85E4C4:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
436
437
438        "BL      sub_FF93D3A0\n"
439        "B       loc_FF85E51C\n"
440
441
442"loc_FF85E4CC:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
443
444
445        "BL      sub_FF93D468\n"
446        "B       loc_FF85E51C\n"
447
448
449"loc_FF85E4D4:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
450
451
452        "BL      sub_FF93C434\n"
453        "BL      sub_FF824C48\n"
454        "B       loc_FF85E51C\n"
455
456
457"loc_FF85E4E0:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
458
459
460        "BL      sub_FF93CFAC\n"
461        "B       loc_FF85E51C\n"
462
463
464"loc_FF85E4E8:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
465
466
467        "BL      sub_FF93D018\n"
468        "B       loc_FF85E51C\n"
469
470
471"loc_FF85E4F0:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
472
473
474        "BL      sub_FF93F24C\n"
475        "B       loc_FF85E51C\n"
476
477
478"loc_FF85E4F8:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
479
480
481        "BL      sub_FF93F268\n"
482        "B       loc_FF85E51C\n"
483
484
485"loc_FF85E500:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
486
487
488        "BL      sub_FF93F278\n"
489        "B       loc_FF85E51C\n"
490
491
492"loc_FF85E508:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
493
494
495        "BL      sub_FF93F2A4\n"
496        "B       loc_FF85E51C\n"
497
498
499"loc_FF85E510:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
500
501
502        "LDR     R1, =0x58E\n"
503        "LDR     R0, =0xFF85DF88\n"
504        "BL      _DebugAssert\n"
505
506"loc_FF85E51C:\n" //                               ; CODE XREF: task_CaptSeqTask+4Cj
507
508
509        "LDR     R0, [SP,#0x20-0x20]\n"
510        "LDR     R1, [R0,#4]\n"
511        "LDR     R0, [R5,#8]\n"
512        "BL      sub_FF827B1C\n"
513        "LDR     R4, [SP,#0x20-0x20]\n"
514        "LDR     R0, [R4,#8]\n"
515        "CMP     R0, #0\n"
516        "LDREQ   R1, =0x10D\n"
517        "LDREQ   R0, =0xFF85DF88\n"
518        "BLEQ    _DebugAssert\n"
519        "STR     R7, [R4,#8]\n"
520        "B       loc_FF85E2C4\n"
521    );
522} //#fe
523
524
525// Extracted method: task_ExpDrvTask (FF8B6A80)
526void __attribute__((naked,noinline)) exp_drv_task()
527{
528        asm volatile (
529                "STMFD   SP!, {R4-R8,LR}\n"
530                "SUB     SP, SP, #0x20\n"
531                "LDR     R8, =0xBB8\n"
532                "LDR     R7, =0x6E30\n"
533                "LDR     R5, =0x3E12C\n"
534                "MOV     R0, #0\n"
535                "ADD     R6, SP, #0x38-0x28\n"
536                "STR     R0, [SP,#0x38-0x2C]\n"
537
538                "loc_FF8B6AA0:\n"
539                "LDR     R0, [R7,#0x20]\n"
540                "MOV     R2, #0\n"
541                "ADD     R1, SP, #0x38-0x1C\n"
542                "BL      sub_FF827DA0\n" // LOCATION: KerQueue.c:0
543                "LDR     R0, [SP,#0x38-0x2C]\n"
544                "CMP     R0, #1\n"
545                "BNE     loc_FF8B6AE8\n"
546                "LDR     R0, [SP,#0x38-0x1C]\n"
547                "LDR     R0, [R0]\n"
548                "CMP     R0, #0x13\n"
549                "CMPNE   R0, #0x14\n"
550                "CMPNE   R0, #0x15\n"
551                "BEQ     loc_FF8B6C04\n"
552                "CMP     R0, #0x27\n"
553                "BEQ     loc_FF8B6BDC\n"
554                "ADD     R1, SP, #0x38-0x2C\n"
555                "MOV     R0, #0\n"
556                "BL      sub_FF8B6A30\n" // LOCATION: ExpDrv.c:512
557
558                "loc_FF8B6AE8:\n"
559                "LDR     R0, [SP,#0x38-0x1C]\n"
560                "LDR     R1, [R0]\n"
561                "CMP     R1, #0x2C\n"
562                "BNE     loc_FF8B6B18\n"
563                "LDR     R0, [SP,#0x38-0x1C]\n"
564                "BL      sub_FF8B7CEC\n" // LOCATION: ExpDrv.c:268
565                "LDR     R0, [R7,#0x1C]\n"
566                "MOV     R1, #1\n"
567                "BL      sub_FF827B1C\n"
568                "BL      sub_FF81BAA8\n" // eventproc_export_ExitTask
569                "ADD     SP, SP, #0x20\n"
570                "LDMFD   SP!, {R4-R8,PC}\n"
571
572                "loc_FF8B6B18:\n"
573                "CMP     R1, #0x2B\n"
574                "BNE     loc_FF8B6B34\n"
575                "LDR     R2, [R0,#0x88]!\n"
576                "LDR     R1, [R0,#4]\n"
577                "MOV     R0, R1\n"
578                "BLX     R2\n"
579                "B       loc_FF8B706C\n"
580
581                "loc_FF8B6B34:\n"
582                "CMP     R1, #0x25\n"
583                "BNE     loc_FF8B6B84\n"
584                "LDR     R0, [R7,#0x1C]\n"
585                "MOV     R1, #0x80\n"
586                "BL      sub_FF827B50\n"
587                "LDR     R0, =0xFF8B34B8\n"
588                "MOV     R1, #0x80\n"
589                "BL      sub_FF92FACC\n" // LOCATION: IrisController.c:74
590                "LDR     R0, [R7,#0x1C]\n"
591                "MOV     R2, R8\n"
592                "MOV     R1, #0x80\n"
593                "BL      sub_FF827A54\n" // LOCATION: KerFlag.c:0
594                "TST     R0, #1\n"
595                "LDRNE   R1, =0xD1B\n"
596                "BNE     loc_FF8B6BC8\n"
597
598                "loc_FF8B6B70:\n"
599                "LDR     R1, [SP,#0x38-0x1C]\n"
600                "LDR     R0, [R1,#0x8C]\n"
601                "LDR     R1, [R1,#0x88]\n"
602                "BLX     R1\n"
603                "B       loc_FF8B706C\n"
604
605                "loc_FF8B6B84:\n"
606                "CMP     R1, #0x26\n"
607                "BNE     loc_FF8B6BD4\n"
608                "ADD     R1, SP, #0x38-0x2C\n"
609                "BL      sub_FF8B6A30\n" // LOCATION: ExpDrv.c:512
610                "LDR     R0, [R7,#0x1C]\n"
611                "MOV     R1, #0x100\n"
612                "BL      sub_FF827B50\n"
613                "LDR     R0, =0xFF8B34C8\n"
614                "MOV     R1, #0x100\n"
615                "BL      sub_FF92FD54\n" // LOCATION: IrisController.c:160
616                "LDR     R0, [R7,#0x1C]\n"
617                "MOV     R2, R8\n"
618                "MOV     R1, #0x100\n"
619                "BL      sub_FF827A54\n" // LOCATION: KerFlag.c:0
620                "TST     R0, #1\n"
621                "BEQ     loc_FF8B6B70\n"
622                "LDR     R1, =0xD25\n"
623
624                "loc_FF8B6BC8:\n"
625                "LDR     R0, =0xFF8B3BB8\n" // "ExpDrv.c"
626                "BL      _DebugAssert\n"
627                "B       loc_FF8B6B70\n"
628
629                "loc_FF8B6BD4:\n"
630                "CMP     R1, #0x27\n"
631                "BNE     loc_FF8B6BEC\n"
632
633                "loc_FF8B6BDC:\n"
634                "LDR     R0, [SP,#0x38-0x1C]\n"
635                "ADD     R1, SP, #0x38-0x2C\n"
636                "BL      sub_FF8B6A30\n" // LOCATION: ExpDrv.c:512
637                "B       loc_FF8B6B70\n"
638
639                "loc_FF8B6BEC:\n"
640                "CMP     R1, #0x2A\n"
641                "BNE     loc_FF8B6C04\n"
642                "BL      sub_FF895DFC\n" // LOCATION: Shutter.c:2
643                "BL      sub_FF896BC8\n" // LOCATION: ImgPixel.c:0
644                "BL      sub_FF89664C\n" // LOCATION: ImgGain.c:0
645                "B       loc_FF8B6B70\n"
646
647                "loc_FF8B6C04:\n"
648                "LDR     R0, [SP,#0x38-0x1C]\n"
649                "MOV     R4, #1\n"
650                "LDR     R1, [R0]\n"
651                "CMP     R1, #0x11\n"
652                "CMPNE   R1, #0x12\n"
653                "BNE     loc_FF8B6C74\n"
654                "LDR     R1, [R0,#0x7C]\n"
655                "ADD     R1, R1, R1,LSL#1\n"
656                "ADD     R1, R0, R1,LSL#2\n"
657                "SUB     R1, R1, #8\n"
658                "LDMIA   R1, {R2-R4}\n"
659                "STMIA   R6, {R2-R4}\n"
660                "BL      sub_FF8B5544\n" // LOCATION: ExpDrv.c:2
661                "LDR     R0, [SP,#0x38-0x1C]\n"
662                "LDR     R1, [R0,#0x7C]\n"
663                "LDR     R3, [R0,#0x88]\n"
664                "LDR     R2, [R0,#0x8C]\n"
665                "ADD     R0, R0, #4\n"
666                "BLX     R3\n"
667                "LDR     R0, [SP,#0x38-0x1C]\n"
668                "BL      sub_FF8B80C0\n" // LOCATION: ExpDrv.c:0
669                "LDR     R0, [SP,#0x38-0x1C]\n"
670                "LDR     R1, [R0,#0x7C]\n"
671                "LDR     R3, [R0,#0x90]\n"
672                "LDR     R2, [R0,#0x94]\n"
673                "ADD     R0, R0, #4\n"
674                "BLX     R3\n"
675                "B       loc_FF8B6FAC\n"
676
677                "loc_FF8B6C74:\n"
678                "CMP     R1, #0x13\n"
679                "CMPNE   R1, #0x14\n"
680                "CMPNE   R1, #0x15\n"
681                "BNE     loc_FF8B6D28\n"
682                "ADD     R3, SP, #0x38-0x2C\n"
683                "MOV     R2, SP\n"
684                "ADD     R1, SP, #0x38-0x28\n"
685                "BL      sub_FF8B578C\n" // LOCATION: ExpDrv.c:0
686                "CMP     R0, #1\n"
687                "MOV     R4, R0\n"
688                "CMPNE   R4, #5\n"
689                "BNE     loc_FF8B6CC4\n"
690                "LDR     R0, [SP,#0x38-0x1C]\n"
691                "MOV     R2, R4\n"
692                "LDR     R1, [R0,#0x7C]!\n"
693                "LDR     R12, [R0,#0xC]!\n"
694                "LDR     R3, [R0,#4]\n"
695                "MOV     R0, SP\n"
696                "BLX     R12\n"
697                "B       loc_FF8B6CFC\n"
698
699                "loc_FF8B6CC4:\n"
700                "LDR     R0, [SP,#0x38-0x1C]\n"
701                "CMP     R4, #2\n"
702                "LDR     R3, [R0,#0x8C]\n"
703                "CMPNE   R4, #6\n"
704                "BNE     loc_FF8B6D10\n"
705                "LDR     R12, [R0,#0x88]\n"
706                "MOV     R0, SP\n"
707                "MOV     R2, R4\n"
708                "MOV     R1, #1\n"
709                "BLX     R12\n"
710                "LDR     R0, [SP,#0x38-0x1C]\n"
711                "MOV     R2, SP\n"
712                "ADD     R1, SP, #0x38-0x28\n"
713                "BL      sub_FF8B6744\n" // LOCATION: ExpDrv.c:0
714
715                "loc_FF8B6CFC:\n"
716                "LDR     R0, [SP,#0x38-0x1C]\n"
717                "LDR     R2, [SP,#0x38-0x2C]\n"
718                "MOV     R1, R4\n"
719                "BL      sub_FF8B69D0\n" // LOCATION: ExpDrv.c:2
720                "B       loc_FF8B6FAC\n"
721
722                "loc_FF8B6D10:\n"
723                "LDR     R1, [R0,#0x7C]\n"
724                "LDR     R12, [R0,#0x88]\n"
725                "ADD     R0, R0, #4\n"
726                "MOV     R2, R4\n"
727                "BLX     R12\n"
728                "B       loc_FF8B6FAC\n"
729
730                "loc_FF8B6D28:\n"
731                "CMP     R1, #0x21\n"
732                "CMPNE   R1, #0x22\n"
733                "BNE     loc_FF8B6D74\n"
734                "LDR     R1, [R0,#0x7C]\n"
735                "ADD     R1, R1, R1,LSL#1\n"
736                "ADD     R1, R0, R1,LSL#2\n"
737                "SUB     R1, R1, #8\n"
738                "LDMIA   R1, {R2-R4}\n"
739                "STMIA   R6, {R2-R4}\n"
740                "BL      sub_FF8B4AD0\n" // LOCATION: ExpDrv.c:0
741                "LDR     R0, [SP,#0x38-0x1C]\n"
742                "LDR     R1, [R0,#0x7C]\n"
743                "LDR     R3, [R0,#0x88]\n"
744                "LDR     R2, [R0,#0x8C]\n"
745                "ADD     R0, R0, #4\n"
746                "BLX     R3\n"
747                "LDR     R0, [SP,#0x38-0x1C]\n"
748                "BL      sub_FF8B4DC0\n" // LOCATION: ExpDrv.c:0
749                "B       loc_FF8B6FAC\n"
750
751                "loc_FF8B6D74:\n"
752                "ADD     R1, R0, #4\n"
753                "LDMIA   R1, {R2,R3,R12}\n"
754                "STMIA   R6, {R2,R3,R12}\n"
755                "LDR     R1, [R0]\n"
756                "CMP     R1, #0x24\n"
757                "ADDLS   PC, PC, R1,LSL#2\n"
758                "B       loc_FF8B6F8C\n"
759
760                "loc_FF8B6D90:\n"
761                "B       loc_FF8B6E24\n"
762
763                "loc_FF8B6D94:\n"
764                "B       loc_FF8B6E24\n"
765
766                "loc_FF8B6D98:\n"
767                "B       loc_FF8B6E74\n"
768
769                "loc_FF8B6D9C:\n"
770                "B       loc_FF8B6E7C\n"
771
772                "loc_FF8B6DA0:\n"
773                "B       loc_FF8B6E7C\n"
774
775                "loc_FF8B6DA4:\n"
776                "B       loc_FF8B6E7C\n"
777
778                "loc_FF8B6DA8:\n"
779                "B       loc_FF8B6E24\n"
780
781                "loc_FF8B6DAC:\n"
782                "B       loc_FF8B6E74\n"
783
784                "loc_FF8B6DB0:\n"
785                "B       loc_FF8B6E7C\n"
786
787                "loc_FF8B6DB4:\n"
788                "B       loc_FF8B6E7C\n"
789
790                "loc_FF8B6DB8:\n"
791                "B       loc_FF8B6E94\n"
792
793                "loc_FF8B6DBC:\n"
794                "B       loc_FF8B6E94\n"
795
796                "loc_FF8B6DC0:\n"
797                "B       loc_FF8B6F80\n"
798
799                "loc_FF8B6DC4:\n"
800                "B       loc_FF8B6F88\n"
801
802                "loc_FF8B6DC8:\n"
803                "B       loc_FF8B6F88\n"
804
805                "loc_FF8B6DCC:\n"
806                "B       loc_FF8B6F88\n"
807
808                "loc_FF8B6DD0:\n"
809                "B       loc_FF8B6F88\n"
810
811                "loc_FF8B6DD4:\n"
812                "B       loc_FF8B6F8C\n"
813
814                "loc_FF8B6DD8:\n"
815                "B       loc_FF8B6F8C\n"
816
817                "loc_FF8B6DDC:\n"
818                "B       loc_FF8B6F8C\n"
819
820                "loc_FF8B6DE0:\n"
821                "B       loc_FF8B6F8C\n"
822
823                "loc_FF8B6DE4:\n"
824                "B       loc_FF8B6F8C\n"
825
826                "loc_FF8B6DE8:\n"
827                "B       loc_FF8B6E84\n"
828
829                "loc_FF8B6DEC:\n"
830                "B       loc_FF8B6E8C\n"
831
832                "loc_FF8B6DF0:\n"
833                "B       loc_FF8B6E8C\n"
834
835                "loc_FF8B6DF4:\n"
836                "B       loc_FF8B6EA0\n"
837
838                "loc_FF8B6DF8:\n"
839                "B       loc_FF8B6EA0\n"
840
841                "loc_FF8B6DFC:\n"
842                "B       loc_FF8B6EA8\n"
843
844                "loc_FF8B6E00:\n"
845                "B       loc_FF8B6ED8\n"
846
847                "loc_FF8B6E04:\n"
848                "B       loc_FF8B6F08\n"
849
850                "loc_FF8B6E08:\n"
851                "B       loc_FF8B6F38\n"
852
853                "loc_FF8B6E0C:\n"
854                "B       loc_FF8B6F68\n"
855
856                "loc_FF8B6E10:\n"
857                "B       loc_FF8B6F68\n"
858
859                "loc_FF8B6E14:\n"
860                "B       loc_FF8B6F8C\n"
861
862                "loc_FF8B6E18:\n"
863                "B       loc_FF8B6F8C\n"
864
865                "loc_FF8B6E1C:\n"
866                "B       loc_FF8B6F70\n"
867
868                "loc_FF8B6E20:\n"
869                "B       loc_FF8B6F78\n"
870
871                "loc_FF8B6E24:\n"
872                // jumptable FF8B6D88 entries 0,1,6
873                "BL      sub_FF8B39A0\n" // LOCATION: ExpDrv.c:800
874                "B       loc_FF8B6F8C\n"
875
876                "loc_FF8B6E74:\n"
877                // jumptable FF8B6D88 entries 2,7
878                "BL      sub_FF8B3C30\n" // LOCATION: ExpDrv.c:0
879                "B       loc_FF8B6F8C\n"
880
881                "loc_FF8B6E7C:\n"
882                // jumptable FF8B6D88 entries 3-5,8,9
883                "BL      sub_FF8B3E34\n" // LOCATION: ExpDrv.c:0
884                "B       loc_FF8B6F8C\n"
885
886                "loc_FF8B6E84:\n"
887                // jumptable FF8B6D88 entry 22
888                "BL      sub_FF8B409C\n" // LOCATION: ExpDrv.c:2
889                "B       loc_FF8B6F8C\n"
890
891                "loc_FF8B6E8C:\n"
892                // jumptable FF8B6D88 entries 23,24
893                "BL      sub_FF8B4290\n" // LOCATION: ExpDrv.c:11
894                "B       loc_FF8B6F8C\n"
895
896                "loc_FF8B6E94:\n"
897                // jumptable FF8B6D88 entries 10,11
898                //"BL      sub_FF8B44F8\n" // LOCATION: ExpDrv.c:2
899                "BL      sub_FF8B44F8_my\n" //------------>
900                "MOV     R4, #0\n"
901                "B       loc_FF8B6F8C\n"
902
903                "loc_FF8B6EA0:\n"
904                // jumptable FF8B6D88 entries 25,26
905                "BL      sub_FF8B4634\n"
906                "B       loc_FF8B6F8C\n"
907
908                "loc_FF8B6EA8:\n"
909                // jumptable FF8B6D88 entry 27
910                "LDRH    R1, [R0,#4]\n"
911                "STRH    R1, [SP,#0x38-0x28]\n"
912                "LDRH    R1, [R5,#2]\n"
913                "STRH    R1, [SP,#0x38-0x26]\n"
914                "LDRH    R1, [R5,#4]\n"
915                "STRH    R1, [SP,#0x38-0x24]\n"
916                "LDRH    R1, [R5,#6]\n"
917                "STRH    R1, [SP,#0x38-0x22]\n"
918                "LDRH    R1, [R0,#0xC]\n"
919                "STRH    R1, [SP,#0x38-0x20]\n"
920                "BL      sub_FF8B7D60\n" // LOCATION: ExpDrv.c:2
921                "B       loc_FF8B6F8C\n"
922
923                "loc_FF8B6ED8:\n"
924                // jumptable FF8B6D88 entry 28
925                "LDRH    R1, [R0,#4]\n"
926                "STRH    R1, [SP,#0x38-0x28]\n"
927                "LDRH    R1, [R5,#2]\n"
928                "STRH    R1, [SP,#0x38-0x26]\n"
929                "LDRH    R1, [R5,#4]\n"
930                "STRH    R1, [SP,#0x38-0x24]\n"
931                "LDRH    R1, [R5,#6]\n"
932                "STRH    R1, [SP,#0x38-0x22]\n"
933                "LDRH    R1, [R5,#8]\n"
934                "STRH    R1, [SP,#0x38-0x20]\n"
935                "BL      sub_FF8B7EDC\n" // LOCATION: ExpDrv.c:2
936                "B       loc_FF8B6F8C\n"
937
938                "loc_FF8B6F08:\n"
939                // jumptable FF8B6D88 entry 29
940                "LDRH    R1, [R5]\n"
941                "STRH    R1, [SP,#0x38-0x28]\n"
942                "LDRH    R1, [R0,#6]\n"
943                "STRH    R1, [SP,#0x38-0x26]\n"
944                "LDRH    R1, [R5,#4]\n"
945                "STRH    R1, [SP,#0x38-0x24]\n"
946                "LDRH    R1, [R5,#6]\n"
947                "STRH    R1, [SP,#0x38-0x22]\n"
948                "LDRH    R1, [R5,#8]\n"
949                "STRH    R1, [SP,#0x38-0x20]\n"
950                "BL      sub_FF8B7F88\n" // LOCATION: ExpDrv.c:0
951                "B       loc_FF8B6F8C\n"
952
953                "loc_FF8B6F38:\n"
954                // jumptable FF8B6D88 entry 30
955                "LDRH    R1, [R5]\n"
956                "STRH    R1, [SP,#0x38-0x28]\n"
957                "LDRH    R1, [R5,#2]\n"
958                "STRH    R1, [SP,#0x38-0x26]\n"
959                "LDRH    R1, [R5,#4]\n"
960                "STRH    R1, [SP,#0x38-0x24]\n"
961                "LDRH    R1, [R5,#6]\n"
962                "STRH    R1, [SP,#0x38-0x22]\n"
963                "LDRH    R1, [R0,#0xC]\n"
964                "STRH    R1, [SP,#0x38-0x20]\n"
965                "BL      sub_FF8B8028\n" // LOCATION: ExpDrv.c:32
966                "B       loc_FF8B6F8C\n"
967
968                "loc_FF8B6F68:\n"
969                // jumptable FF8B6D88 entries 31,32
970                "BL      sub_FF8B48A8\n" // LOCATION: ExpDrv.c:0
971                "B       loc_FF8B6F8C\n"
972
973                "loc_FF8B6F70:\n"
974                // jumptable FF8B6D88 entry 35
975                "BL      sub_FF8B4EC4\n" // LOCATION: ExpDrv.c:10
976                "B       loc_FF8B6F8C\n"
977
978                "loc_FF8B6F78:\n"
979                // jumptable FF8B6D88 entry 36
980                "BL      sub_FF8B50FC\n" // LOCATION: ExpDrv.c:0
981                "B       loc_FF8B6F8C\n"
982
983                "loc_FF8B6F80:\n"
984                // jumptable FF8B6D88 entry 12
985                "BL      sub_FF8B5274\n" // LOCATION: ExpDrv.c:2
986                "B       loc_FF8B6F8C\n"
987
988                "loc_FF8B6F88:\n"
989                // jumptable FF8B6D88 entries 13-16
990                "BL      sub_FF8B540C\n" // LOCATION: ExpDrv.c:128
991
992                "loc_FF8B6F8C:\n"
993                // jumptable FF8B6D88 default entry
994                // jumptable FF8B6D88 entries 17-21,33,34
995                "LDR     R0, [SP,#0x38-0x1C]\n"
996                "LDR     R1, [R0,#0x7C]\n"
997                "LDR     R3, [R0,#0x88]\n"
998                "LDR     R2, [R0,#0x8C]\n"
999                "ADD     R0, R0, #4\n"
1000                "BLX     R3\n"
1001                "CMP     R4, #1\n"
1002                "BNE     loc_FF8B6FF4\n"
1003
1004                "loc_FF8B6FAC:\n"
1005                "LDR     R0, [SP,#0x38-0x1C]\n"
1006                "MOV     R2, #0xC\n"
1007                "LDR     R1, [R0,#0x7C]\n"
1008                "ADD     R1, R1, R1,LSL#1\n"
1009                "ADD     R0, R0, R1,LSL#2\n"
1010                "SUB     R4, R0, #8\n"
1011                "LDR     R0, =0x3E12C\n"
1012                "ADD     R1, SP, #0x38-0x28\n"
1013                "BL      sub_FFAAC7FC\n"
1014                "LDR     R0, =0x3E138\n"
1015                "MOV     R2, #0xC\n"
1016                "ADD     R1, SP, #0x38-0x28\n"
1017                "BL      sub_FFAAC7FC\n"
1018                "LDR     R0, =0x3E144\n"
1019                "MOV     R2, #0xC\n"
1020                "MOV     R1, R4\n"
1021                "BL      sub_FFAAC7FC\n"
1022                "B       loc_FF8B706C\n"
1023
1024                "loc_FF8B6FF4:\n"
1025                "LDR     R0, [SP,#0x38-0x1C]\n"
1026                "LDR     R0, [R0]\n"
1027                "CMP     R0, #0xB\n"
1028                "BNE     loc_FF8B703C\n"
1029                "MOV     R3, #0\n"
1030                "STR     R3, [SP,#0x38-0x38]\n"
1031                "MOV     R3, #1\n"
1032                "MOV     R2, #1\n"
1033                "MOV     R1, #1\n"
1034                "MOV     R0, #0\n"
1035                "BL      sub_FF8B37A8\n"
1036                "MOV     R3, #0\n"
1037                "STR     R3, [SP,#0x38-0x38]\n"
1038                "MOV     R3, #1\n"
1039                "MOV     R2, #1\n"
1040                "MOV     R1, #1\n"
1041                "MOV     R0, #0\n"
1042                "B       loc_FF8B7068\n"
1043
1044                "loc_FF8B703C:\n"
1045                "MOV     R3, #1\n"
1046                "MOV     R2, #1\n"
1047                "MOV     R1, #1\n"
1048                "MOV     R0, #1\n"
1049                "STR     R3, [SP,#0x38-0x38]\n"
1050                "BL      sub_FF8B37A8\n"
1051                "MOV     R3, #1\n"
1052                "MOV     R2, #1\n"
1053                "MOV     R1, #1\n"
1054                "MOV     R0, #1\n"
1055                "STR     R3, [SP,#0x38-0x38]\n"
1056
1057                "loc_FF8B7068:\n"
1058                "BL      sub_FF8B38E8\n"
1059
1060                "loc_FF8B706C:\n"
1061                "LDR     R0, [SP,#0x38-0x1C]\n"
1062                "BL      sub_FF8B7CEC\n" // LOCATION: ExpDrv.c:268
1063                "B       loc_FF8B6AA0\n"
1064                );
1065}
1066
1067void __attribute__((naked,noinline)) sub_FF8B44F8_my()
1068{
1069        asm volatile (
1070                "STMFD   SP!, {R4-R8,LR}\n"
1071                "LDR     R7, =0x6E30\n"
1072                "MOV     R4, R0\n"
1073                "LDR     R0, [R7,#0x1C]\n"
1074                "MOV     R1, #0x3E\n"
1075                "BL      sub_FF827B50\n"
1076                "LDRSH   R0, [R4,#4]\n"
1077                "MOV     R2, #0\n"
1078                "MOV     R1, #0\n"
1079                "BL      sub_FF8B353C\n"
1080                "MOV     R6, R0\n"
1081                "LDRSH   R0, [R4,#6]\n"
1082                "BL      sub_FF8B3648\n"
1083                "LDRSH   R0, [R4,#8]\n"
1084                "BL      sub_FF8B36A0\n"
1085                "LDRSH   R0, [R4,#0xA]\n"
1086                "BL      sub_FF8B36F8\n"
1087                "LDRSH   R0, [R4,#0xC]\n"
1088                "BL      sub_FF8B3750\n"
1089                "MOV     R5, R0\n"
1090                "LDR     R0, [R4]\n"
1091                "LDR     R8, =0x3E144\n"
1092                "CMP     R0, #0xB\n"
1093                "MOVEQ   R6, #0\n"
1094                "MOVEQ   R5, #0\n"
1095                "BEQ     loc_FF8B4588\n"
1096                "CMP     R6, #1\n"
1097                "BNE     loc_FF8B4588\n"
1098                "LDRSH   R0, [R4,#4]\n"
1099                "LDR     R1, =0xFF8B34A8\n"
1100                "MOV     R2, #2\n"
1101                "BL      sub_FF92FC20\n" // LOCATION: IrisController.c:117
1102                "STRH    R0, [R4,#4]\n"
1103                "MOV     R0, #0\n"
1104                "STR     R0, [R7,#0x28]\n"
1105                "B       loc_FF8B4590\n"
1106
1107                "loc_FF8B4588:\n"
1108                "LDRH    R0, [R8]\n"
1109                "STRH    R0, [R4,#4]\n"
1110
1111                "loc_FF8B4590:\n"
1112                "CMP     R5, #1\n"
1113                "LDRNEH  R0, [R8,#8]\n"
1114                "BNE     loc_FF8B45AC\n"
1115                "LDRSH   R0, [R4,#0xC]\n"
1116                "MOV     R2, #0x20\n"
1117                "LDR     R1, =0xFF8B352C\n"
1118                "BL      sub_FF8B7D1C\n"
1119
1120                "loc_FF8B45AC:\n"
1121                "STRH    R0, [R4,#0xC]\n"
1122                "LDRSH   R0, [R4,#6]\n"
1123                //"BL      sub_FF895B48\n" // LOCATION: Shutter.c:0
1124                "BL      sub_FF895B48_my\n" //------------>
1125                "LDRSH   R0, [R4,#8]\n"
1126                "MOV     R1, #1\n"
1127                "BL      sub_FF896344\n" // LOCATION: ImgGain.c:0
1128                "MOV     R1, #0\n"
1129                "ADD     R0, R4, #8\n"
1130                "BL      sub_FF8963CC\n" // LOCATION: ImgGain.c:0
1131                "LDRSH   R0, [R4,#0xE]\n"
1132                "BL      sub_FF8AA464\n" // LOCATION: BrtCrct.c:552
1133                "LDR     R4, =0xBB8\n"
1134                "CMP     R6, #1\n"
1135                "BNE     loc_FF8B4604\n"
1136                "LDR     R0, [R7,#0x1C]\n"
1137                "MOV     R2, R4\n"
1138                "MOV     R1, #2\n"
1139                "BL      sub_FF827A54\n" // LOCATION: KerFlag.c:0
1140                "TST     R0, #1\n"
1141                "LDRNE   R1, =0x532\n"
1142                "LDRNE   R0, =0xFF8B3BB8\n" // "ExpDrv.c"
1143                "BLNE    _DebugAssert\n"
1144
1145                "loc_FF8B4604:\n"
1146                "CMP     R5, #1\n"
1147                "LDMNEFD SP!, {R4-R8,PC}\n"
1148                "LDR     R0, [R7,#0x1C]\n"
1149                "MOV     R2, R4\n"
1150                "MOV     R1, #0x20\n"
1151                "BL      sub_FF827A54\n" // LOCATION: KerFlag.c:0
1152                "TST     R0, #1\n"
1153                "LDRNE   R1, =0x537\n"
1154                "LDRNE   R0, =0xFF8B3BB8\n" // "ExpDrv.c"
1155                "LDMNEFD SP!, {R4-R8,LR}\n"
1156                "BNE     _DebugAssert\n"
1157                "LDMFD   SP!, {R4-R8,PC}\n"
1158                );
1159}
1160
1161// FF895B48
1162void __attribute__((naked,noinline)) sub_FF895B48_my()
1163{
1164        asm volatile (
1165                "STMFD   SP!, {R4-R6,LR}\n"
1166                "LDR     R5, =0x68EC\n"
1167                "MOV     R4, R0\n"
1168                "LDR     R0, [R5,#4]\n"
1169                "CMP     R0, #1\n"
1170                "LDRNE   R1, =0x16D\n"
1171                "LDRNE   R0, =0xFF8958E0\n" // "Shutter.c"
1172                "BLNE    _DebugAssert\n"
1173                "CMN     R4, #0xC00\n"
1174                "LDREQSH R4, [R5,#2]\n"
1175                "CMN     R4, #0xC00\n"
1176                "LDREQ   R1, =0x173\n"
1177                "LDREQ   R0, =0xFF8958E0\n" // "Shutter.c"
1178                "STRH    R4, [R5,#2]\n"
1179                "BLEQ    _DebugAssert\n"
1180                "MOV     R0, R4\n"
1181                //"BL      sub_FF9B19C0\n"
1182                "BL      apex2us\n" // +
1183                "MOV     R4, R0\n"
1184                "BL      sub_FF8C5920\n" // nullsub_67
1185                "MOV     R0, R4\n"
1186                "BL      sub_FF8C9E10\n"
1187                "TST     R0, #1\n"
1188                "LDMNEFD SP!, {R4-R6,LR}\n"
1189                "MOVNE   R1, #0x178\n"
1190                "LDRNE   R0, =0xFF8958E0\n" // "Shutter.c"
1191                "BNE     _DebugAssert\n"
1192                "LDMFD   SP!, {R4-R6,PC}\n"
1193                );
1194}
Note: See TracBrowser for help on using the repository browser.