Changeset 1308
- Timestamp:
- 08/29/11 06:17:24 (21 months ago)
- Location:
- trunk
- Files:
-
- 17 edited
-
core/gui.c (modified) (2 diffs)
-
core/kbd.c (modified) (2 diffs)
-
platform/a580/kbd.c (modified) (9 diffs)
-
platform/a580/lib.c (modified) (2 diffs)
-
platform/a580/main.c (modified) (2 diffs)
-
platform/a580/notes.txt (modified) (1 diff)
-
platform/a580/platform_camera.h (modified) (2 diffs)
-
platform/a580/shooting.c (modified) (4 diffs)
-
platform/a580/sub/101b/boot.c (modified) (13 diffs)
-
platform/a580/sub/101b/capt_seq.c (modified) (1 diff)
-
platform/a580/sub/101b/lib.c (modified) (4 diffs)
-
platform/a580/sub/101b/makefile.inc (modified) (2 diffs)
-
platform/a580/sub/101b/movie_rec.c (modified) (26 diffs)
-
platform/a580/sub/101b/stubs_auto.S (modified) (7 diffs)
-
platform/a580/sub/101b/stubs_entry.S (modified) (9 diffs)
-
platform/a580/sub/101b/stubs_entry_2.S (modified) (1 diff)
-
platform/a580/sub/101b/stubs_min.S (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/core/gui.c
r1302 r1308 66 66 // #define KEY_NONE (KEY_DUMMY+1) 67 67 68 #if !CAM_HAS_ERASE_BUTTON 68 #if defined(CAMERA_a580) // Cam has not erase button AND Half press shoot button + Left sets AFL, + Up sets AEL! 69 //Alt mode 70 #define SHORTCUT_TOGGLE_RAW KEY_DISPLAY 71 #define SHORTCUT_MF_TOGGLE KEY_UP 72 //Half press shoot button 73 #define SHORTCUT_TOGGLE_HISTO KEY_DOWN 74 #define SHORTCUT_TOGGLE_ZEBRA KEY_MENU 75 #define SHORTCUT_TOGGLE_OSD KEY_RIGHT 76 #define SHORTCUT_DISABLE_OVERRIDES KEY_DISPLAY 77 //Alt mode & Manual mode 78 #define SHORTCUT_SET_INFINITY KEY_DISPLAY 79 #define SHORTCUT_SET_HYPERFOCAL KEY_DOWN 80 // For models without ZOOM_LEVER (#if !CAM_HAS_ZOOM_LEVER) 81 // SHORTCUT_SET_INFINITY is not used 82 // KEY_DISPLAY is used for gui_subj_dist_override_koef_enum; 83 // KEY_LEFT/KEY_RIGHT is used for gui_subj_dist_override_value_enum (because of no separate ZOOM_IN/OUT) 84 85 #elif !CAM_HAS_ERASE_BUTTON 69 86 //Alt mode 70 87 #define SHORTCUT_TOGGLE_RAW KEY_DISPLAY … … 1345 1362 static const char* names[]={ "Shrtcut", "Flash", "Video"}; 1346 1363 static const int keys[]={ KEY_PRINT, KEY_FLASH, KEY_VIDEO }; 1347 #elif defined(CAMERA_a570) || defined(CAMERA_a5 90) || defined(CAMERA_a720)1364 #elif defined(CAMERA_a570) || defined(CAMERA_a580) || defined(CAMERA_a590) || defined(CAMERA_a720) 1348 1365 static const char* names[]={ "Print", "Display"}; 1349 1366 static const int keys[] = {KEY_PRINT, KEY_DISPLAY}; -
trunk/core/kbd.c
r1262 r1308 48 48 defined(CAMERA_ixus100_sd780) || defined(CAMERA_ixus120_sd940) || defined(CAMERA_a480) || \ 49 49 defined(CAMERA_a495) || defined(CAMERA_a490) || defined(CAMERA_d10) || defined(CAMERA_ixus85_sd770) || \ 50 defined(CAMERA_ixus95_sd1200) || defined(CAMERA_ a580) || defined(CAMERA_ixus300_sd4000) || \50 defined(CAMERA_ixus95_sd1200) || defined(CAMERA_ixus300_sd4000) || \ 51 51 defined(CAMERA_a410) 52 52 #define ZSTEP_TABLE_SIZE 7 … … 70 70 71 71 #if defined(CAMERA_a430) || defined(CAMERA_a460) || defined(CAMERA_a530) || defined (CAMERA_a540) || \ 72 defined(CAMERA_a550) || defined(CAMERA_a560) || defined(CAMERA_a570) || defined(CAMERA_a5 90) || \72 defined(CAMERA_a550) || defined(CAMERA_a560) || defined(CAMERA_a570) || defined(CAMERA_a580) || defined(CAMERA_a590) || \ 73 73 defined(CAMERA_ixus860_sd870) || defined(CAMERA_ixus960_sd950) || defined(CAMERA_ixus80_sd1100) || \ 74 74 defined(CAMERA_ixus970_sd890) || defined(CAMERA_ixus980_sd990) || defined(CAMERA_a1100) -
trunk/platform/a580/kbd.c
r1136 r1308 10 10 long canonkey; 11 11 } KeyMap; 12 12 13 13 14 static long kbd_new_state[3]; … … 18 19 static int usb_power=0; 19 20 static int remote_key, remote_count; 21 static long alt_mode_key_mask = 0x00000800; 20 22 static int shoot_counter=0; 21 23 #define DELAY_TIMEOUT 10000 … … 27 29 #define NEW_SS (0x2000) 28 30 #define SD_READONLY_FLAG (0x20000) 31 32 #define SD_READONLY_IDX 2 33 #define USB_FLAG 0x00040000 34 #define USB_IDX 2 29 35 30 36 #define USB_MASK (0x40000) … … 58 64 if (conf.synch_enable && conf.ricoh_ca1_mode && conf.remote_enable && (!shooting_get_drive_mode()|| (shooting_get_drive_mode()==1) || ((shooting_get_drive_mode()==2) && state_shooting_progress != SHOOTING_PROGRESS_PROCESSING))) 59 65 // if (conf.synch_enable && conf.ricoh_ca1_mode && conf.remote_enable) // synch mode enable so wait for USB to disconnect 60 {66 { 61 67 // ------ add by Masuji SUTO (start) -------------- 62 68 nMode=0; … … 239 245 physw_status[1] = kbd_new_state[1]; 240 246 physw_status[2] = kbd_new_state[2]; 247 physw_status[1] |= alt_mode_key_mask; 241 248 } else { 242 249 // override keys … … 268 275 else physw_status[2] = physw_status[2] & ~SD_READONLY_FLAG; 269 276 270 _kbd_pwr_off(); 277 _kbd_pwr_off(); // Not corrected! als in a590 271 278 272 279 } … … 442 449 { 2, KEY_SET , 0x00000100 }, 443 450 { 1, KEY_SHOOT_FULL , 0xC0000000 }, 451 // not added to trunk yet 452 // { 1, KEY_SHOOT_FULL_ONLY, 0x80000000 }, 444 453 { 1, KEY_SHOOT_HALF , 0x40000000 }, 445 454 { 2, KEY_ZOOM_IN , 0x00000004 }, … … 448 457 { 2, KEY_DISPLAY , 0x00000400 }, 449 458 { 2, KEY_PRINT , 0x00000800 }, 450 // { 1, KEY_ERASE , 0x00800000 }, // ??? WHAT???451 459 { 0, 0, 0 } 452 460 }; … … 464 472 } 465 473 474 void kbd_set_alt_mode_key_mask(long key) 475 { 476 int i; 477 for (i=0; keymap[i].hackkey; ++i) { 478 if (keymap[i].hackkey == key) { 479 alt_mode_key_mask = keymap[i].canonkey; 480 return; 481 } 482 } 483 } -
trunk/platform/a580/lib.c
r1136 r1308 1 1 #include "platform.h" 2 //#include "../generic/lib.c" 2 3 3 4 void shutdown() … … 32 33 33 34 int get_flash_params_count(void){ 34 return 11 4;35 return 115; //Corrected! from 114 (x73 = 115 form Stubs_Entry.S) 35 36 } -
trunk/platform/a580/main.c
r1136 r1308 30 30 31 31 32 static const int fl_tbl[] = {5800, 6700, 8000, 10000, 12600 0, 158000, 193000, 232000};32 static const int fl_tbl[] = {5800, 6700, 8000, 10000, 12600, 15800, 19300, 23200}; 33 33 #define NUM_FL (sizeof(fl_tbl)/sizeof(fl_tbl[0])) 34 34 #define CF_EFL 60345 //OK … … 68 68 return 2550; 69 69 } 70 -
trunk/platform/a580/notes.txt
r1138 r1308 1 notes from patch post http://chdk.setepontos.com/index.php?topic=650.msg64412#msg64412 1 **************************************** 2 2 3 It doesn't seem to be very tested, but I've done a walk over CHDK User Manual and almost every function worked without problems: 3 Camera depending notes: 4 4 5 Half Shutter + Left Toggle Zebra on/off: yes, but it turns OSD off too, and doesn't turn it on again (also, AFL appears) 6 Half Shutter + Up Toggle Histogram on/off: turns it off, but no on (and sets AEL) 5 - A580 uses Propset 2 of Properties (see http://tinyurl.com/6zbv9b) 6 - dryos camera 7 - A580 does have an ND Filter! 8 Mind this. 7 9 8 These Manual Focus adjustments can also be achieved with shortcut keys. In <ALT> mode, using the LEFT / RIGHT keys to adjust the Value Factor and the Zoom lever to adjust the Subject Distance: doesn't work 10 **************************************** 9 11 10 Enable Fast EV Switch: activates ISO/Continous mode, and the camera hanged once when playing with that 12 NOTES: 13 Half Shutter + Left - Sets AFL 14 Half Shutter + Right - Toogle OSD on/off 15 Half Shutter + Up - Sets AEL 16 Half Shutter + Down - Toggle Histogram (Don't / Always / Shoot) 17 Half Shutter + Menu - Toggle Zebra on/off 18 Half Shutter + Display - Disable overrides 11 19 12 Video: zoom during video doesn't works, neither does AF key 20 In Alt: 21 Display - Toogle RAW on/off 22 Up - Toogle MF 13 23 14 Curves: not tested 24 In ALT + Manual mode: 25 Display - Sets Infinity 26 Down - Sets Hyperfocal 27 ------- 28 Adjustable Alt button supported. 29 ------- 30 User menu works. 31 ------- 32 Extra long exposure feature supported. 33 ------- 34 Firmware update from menu works! (With GCC compiler generated file YES, with fi2encdec generated filed NO!) 15 35 16 Zoom values in OSD are wrong (40x?) 36 platform/fi2.inc: 37 ifeq ($(KEYSYS), d3enc) 38 FI2KEY=6F....71 39 FI2IV =53....3D 40 endif 17 41 18 Sokoban doesn't run 42 PLEASE TEST: 43 These Manual Focus adjustments can also be achieved with shortcut keys. 44 In <ALT> mode, using the LEFT / RIGHT keys to adjust the Value Factor and the Zoom lever to adjust the Subject Distance. 45 Seems it works, please test!!! 46 ------- 47 Curves: Seems it works, please test!!! 48 ------- 49 SDHC multi-partition boot and swap supported. (Tested with 2GB SD (2MB FAT12 and FAT32 the rest), can someone test it with a larger card 8GB, 16GB...) 50 51 NOT WORKING: 52 Enable Fast EV Switch: activates ISO/Continous mode 53 !Workaround: 54 http://chdk.setepontos.com/index.php/topic,2501.msg23321.html#msg23321 55 ------- 56 Video: fast video control (on Left (Pause) camera hangs), disabled, not supported? -
trunk/platform/a580/platform_camera.h
r1140 r1308 1 // Camera - A580 - platform_camera.h1 // Camera - a580 - platform_camera.h 2 2 3 // This file contains the various settings values specific to the A580 camera.3 // This file contains the various settings values specific to the a580 camera. 4 4 // This file is referenced via the 'include/camera.h' file and should not be loaded directly. 5 5 … … 21 21 // don't override them again in here. 22 22 23 #define CAM_PROPSET224 #define CAM_DRYOS123 #define CAM_PROPSET 2 24 #define CAM_DRYOS 1 25 25 26 #define CAM_RAW_ROWPIX3336 // for new 8 MP27 #define CAM_RAW_ROWS 2480 // for new 8 MP 26 #define CAM_RAW_ROWPIX 3336 // for new 8 MP 27 #define CAM_RAW_ROWS 2490 // for new 8 MP // Corrected! from 2480 (new value from stubs_entry.S) 28 28 29 #define CAM_USE_ZOOM_FOR_MF 1 29 #undef CAM_UNCACHED_BIT // Added! from stubs_entry.S 30 #define CAM_UNCACHED_BIT 0x10000000 // Found @0xffc17e64 // Added! from stubs_entry.S 30 31 31 #undef CAM_CAN_MUTE_MICROPHONE 32 #define CAM_HAS_IRIS_DIAPHRAGM 1 33 #undef CAM_HAS_ND_FILTER 32 #undef CAM_USE_ZOOM_FOR_MF 33 #define CAM_MULTIPART 1 34 #undef CAM_HAS_ERASE_BUTTON 35 #undef CAM_HAS_IRIS_DIAPHRAGM 36 #define CAM_HAS_ND_FILTER 1 37 #undef CAM_HAS_MANUAL_FOCUS 38 #undef CAM_HAS_USER_TV_MODES // Shutter speed = TV, Aperture = AV 34 39 35 #define CAM_HAS_MANUAL_FOCUS 1 40 // #undef CAM_CAN_SD_OVER_NOT_IN_MF 41 // #undef CAM_CAN_SD_OVERRIDE 36 42 37 #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1 38 //#define CAM_EV_IN_VIDEO 1 // not working on 101b!!! 39 #define DNG_SUPPORT 1 40 // pattern 41 #define cam_CFAPattern 0x01000201 // Green Blue Red Green 42 // color 43 #define CAM_COLORMATRIX1 \ 44 726857, 1000000, -176454, 1000000, -124118, 1000000, \ 45 -71340, 1000000, 592001, 1000000, 75622, 1000000, \ 46 63222, 1000000, 50547, 1000000, 219582, 1000000 43 #undef CAM_HAS_IS 44 #define CAM_CAN_MUTE_MICROPHONE 1 45 #define CAM_ADJUSTABLE_ALT_BUTTON 1 46 #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1 47 // #define CAM_EV_IN_VIDEO 1 // not working on 101b!!! 48 #undef CAM_VIDEO_CONTROL // Not working 47 49 48 #define cam_CalibrationIlluminant1 1 // Daylight 49 // cropping 50 #define CAM_JPEG_WIDTH 3264 51 #define CAM_JPEG_HEIGHT 2448 52 #define CAM_ACTIVE_AREA_X1 12 53 #define CAM_ACTIVE_AREA_Y1 10 54 // note: the above contains some pixels which have valid data, 55 // but are not at the same levels as the rest of the frame 56 // the values below crop the "different" looking pixels. 57 //#define CAM_ACTIVE_AREA_X1 16 58 //#define CAM_ACTIVE_AREA_Y1 18 59 #define CAM_ACTIVE_AREA_X2 3300 60 #define CAM_ACTIVE_AREA_Y2 2480 50 // pattern 51 #define cam_CFAPattern 0x01000201 // Green Blue Red Green 52 // color 53 #define CAM_COLORMATRIX1 \ 54 726857, 1000000, -176454, 1000000, -124118, 1000000, \ 55 -71340, 1000000, 592001, 1000000, 75622, 1000000, \ 56 63222, 1000000, 50547, 1000000, 219582, 1000000 61 57 62 // camera name 63 #define PARAM_CAMERA_NAME 4 // parameter number for GetParameterData 58 #define cam_CalibrationIlluminant1 1 // Daylight 59 // cropping 60 #define CAM_JPEG_WIDTH 3264 61 #define CAM_JPEG_HEIGHT 2448 62 #define CAM_ACTIVE_AREA_X1 12 63 #define CAM_ACTIVE_AREA_Y1 10 64 // note: the above contains some pixels which have valid data, 65 // but are not at the same levels as the rest of the frame 66 // the values below crop the "different" looking pixels. 67 //#define CAM_ACTIVE_AREA_X1 16 68 //#define CAM_ACTIVE_AREA_Y1 18 69 #define CAM_ACTIVE_AREA_X2 3300 70 #define CAM_ACTIVE_AREA_Y2 2480 64 71 65 #undef CAM_ADJUSTABLE_ALT_BUTTON 66 #undef CAM_EXT_TV_RANGE 67 //#define CAM_MULTIPART 1 68 #undef CAM_MULTIPART 72 // camera name 73 #define PARAM_CAMERA_NAME 4 // parameter number for GetParameterData 74 #define CAM_EXT_TV_RANGE 1 // CHDK can make exposure time longer than 64s 69 75 //---------------------------------------------------------- 70 -
trunk/platform/a580/shooting.c
r1137 r1308 8 8 9 9 const ApertureSize aperture_sizes_table[] = { 10 { 9, 2 73, "2.6" },11 { 10, 2 85, "2.8" },12 { 11, 30 4, "3.2" },10 { 9, 267, "2.6" }, // without ND 11 { 10, 279, "2.8" }, 12 { 11, 302, "3.2" }, 13 13 { 12, 337, "3.5" }, 14 { 13, 372, "4.0" }, 15 { 14, 409, "4.5" }, 16 { 15, 448, "5.0" }, 17 { 16, 480, "5.5" } 14 { 13, 383, "4.0" }, 15 { 14, 437, "4.5" }, 16 { 15, 503, "5.0" }, 17 { 16, 565, "5.5" }, 18 { 17, 675, "7.1 ND" }, // with ND 19 { 18, 705, "7.1 ND" }, 20 { 19, 763, "8.0 ND" }, 21 { 20, 850, "9.0 ND" }, 22 { 21, 965, "10.0 ND" }, 23 { 22, 1103, "11.0 ND" }, 24 { 23, 1269, "13.0 ND" }, 25 { 24, 1425, "14.0 ND" } 18 26 }; 19 27 … … 68 76 69 77 const ISOTable iso_table[] = { 70 { -1, 1, "HI", -1},71 { 0, 0, "Auto", -1},72 { 1, 80, "80", -1},73 { 2, 100, "100", -1},74 { 3, 200, "200", -1},75 { 4, 400, "400", -1},76 { 5, 800, "800", -1},77 { 6, 1600, "1600", -1},78 { -1, 1, "Auto HI", -1}, 79 { 0, 0, "Auto", -1}, 80 { 1, 80, "80", -1}, 81 { 2, 100, "100", -1}, 82 { 3, 200, "200", -1}, 83 { 4, 400, "400", -1}, 84 { 5, 800, "800", -1}, 85 { 6, 1600, "1600", -1}, 78 86 }; 79 87 … … 88 96 Movie: 640 x 480 (20 fps/20 fps LP), 320 x 240 (30 fps) available up to 4GB or 60 minutes, 160 x 120 (up to 3 minutes at 15 fps) 89 97 90 canon mode list in FFE7CFFC100c98 canon mode list in @FFE7CFFC in 100c 91 99 */ 92 // 32774 - ?????? ????? ? ?????? ???????93 100 static const CapturemodeMap modemap[] = { 94 { MODE_AUTO, 32768 },//OK 95 { MODE_P, 32772 },//OK 96 { MODE_VIDEO_STD, 2599 },//OK 97 { MODE_VIDEO_COMPACT, 2601 },//OK 98 { MODE_SCN_AQUARIUM, 16408 },//OK 99 { MODE_SCN_NIGHT_SCENE, 16398 },//OK 100 { MODE_SCN_FOLIAGE, 16403 },//OK 101 { MODE_SCN_SNOW, 16404 },//OK 102 { MODE_SCN_BEACH, 16405 },//OK 103 { MODE_SCN_FIREWORK, 16406 },//OK 104 { MODE_INDOOR, 32785 },//OK 105 { MODE_KIDS_PETS, 32784 },//OK 106 { MODE_NIGHT_SNAPSHOT, 32779 },//OK 107 { MODE_LANDSCAPE, 32780 },//OK 108 { MODE_PORTRAIT, 32781 },//OK 101 { MODE_P, 32772 }, // OK! 102 { MODE_LONG_SHUTTER, 32774 }, // OK! 103 { MODE_AUTO, 32768 }, // OK! 104 { MODE_EASY, 33311 }, // OK! 105 { MODE_PORTRAIT, 32781 }, // OK! 106 { MODE_LANDSCAPE, 32780 }, // OK! 107 { MODE_NIGHT_SNAPSHOT, 32779 }, // OK! 108 { MODE_KIDS_PETS, 32784 }, // OK! 109 { MODE_INDOOR, 32785 }, // OK! 110 111 { MODE_SCN_NIGHT_SCENE, 16398 }, // OK! 112 { MODE_SCN_SUNSET, 16402 }, // OK! 113 { MODE_SCN_FOLIAGE, 16403 }, // OK! 114 { MODE_SCN_SNOW, 16404 }, // OK! 115 { MODE_SCN_BEACH, 16405 }, // OK! 116 { MODE_SCN_FIREWORK, 16406 }, // OK! 117 { MODE_SCN_AQUARIUM, 16408 }, // OK! 118 119 { MODE_VIDEO_STD, 2599 }, // OK! 120 { MODE_VIDEO_COMPACT, 2601 }, // OK! 109 121 }; 110 122 … … 132 144 133 145 int circle_of_confusion = 5; 134 -
trunk/platform/a580/sub/101b/boot.c
r1136 r1308 13 13 void CreateTask_spytask(); 14 14 15 void task_CaptSeqTask_my(); 16 void task_InitFileModules_my(); 17 void MovieRecord_Task_my(); 18 15 19 void boot(); 20 21 void taskCreateHook(int *p) { 22 p-=16; 23 if (p[0]==0xFFC49B38) p[0]=(int)task_CaptSeqTask_my; //done 24 if (p[0]==0xFFC118BC) p[0]=(int)mykbd_task; //done 25 if (p[0]==0xFFC5FEA0) p[0]=(int)task_InitFileModules_my; //done 26 if (p[0]==0xFFC46678) p[0]=(int)MovieRecord_Task_my; //done 27 if (p[0]==0xFFC91194) p[0]=(int)exp_drv_task; //done 28 } 29 30 void taskCreateHook2(int *p) { 31 p-=16; 32 if (p[0]==0xFFC5FEA0) p[0]=(int)task_InitFileModules_my; //done 33 } 16 34 17 35 #define DEBUG_LED 0xC02200C4 … … 20 38 long *canon_data_src = (void*)0xFFEBFB4C; 21 39 long *canon_data_dst = (void*)0x1900; 22 long canon_data_len = 0x d700 - 0x1900;// data_end - data_start23 long *canon_bss_start = (void*)0x d700;// just after data24 long canon_bss_len = 0x a47e0 - 0xd700;40 long canon_data_len = 0xD700 - 0x1900; // data_end - data_start 41 long *canon_bss_start = (void*)0xD700; // just after data 42 long canon_bss_len = 0xA47E0 - 0xD700; 25 43 26 44 long i; … … 51 69 */ 52 70 71 *(int*)0x1930=(int)taskCreateHook; 72 *(int*)0x1934=(int)taskCreateHook; 73 *(int*)0x1938=(int)taskCreateHook2; 74 53 75 // jump to init-sequence that follows the data-copy-routine 54 76 asm volatile ("B sub_FFC001a4_my\n"); 55 77 }; //#fe 56 57 78 58 79 // init … … 84 105 "MSR CPSR_cxsf, R0\n" 85 106 "MOV SP, #0x1000\n" 86 "LDR R0, =0x6C4\n" //???107 "LDR R0, =0x6C4\n" 87 108 "LDR R2, =0xEEEEEEEE\n" 88 109 "MOV R3, #0x1000\n" … … 107 128 "BL sub_FFE58D68\n" 108 129 "MOV R0, #0x53000\n" 109 "STR R0, [SP,#0x74-0x70]\n"//?????????... 110 ); 111 // "LDR R0, =0xE47E0\n" // 0xa47e0 + 0x40000, note: 0x20000 *should* have been enough, but our code was overwritten... 112 // ...thus we push the memory pool a little more up (0x30000 = 192k) 113 asm volatile ( 130 "STR R0, [SP,#0x74-0x70]\n" 131 #if defined(OPT_CHDK_IN_EXMEM) 132 //"LDR R0, =0xA47E0\n" // use original heap offset since CHDK is loaded in high memory 133 "LDR R0, =0xE47E0\n" // 0xa47e0 + 0x40000, note: 0x20000 *should* have been enough, but our code was overwritten... 134 // ...thus we push the memory pool a little more up (0x30000 = 192k) 135 #else 114 136 "LDR R0, =new_sa\n" 115 137 "LDR R0, [R0]\n" 116 ); 117 asm volatile ( 138 #endif 118 139 "LDR R2, =0x279C00\n" 119 140 "LDR R1, =0x272968\n" … … 129 150 "LDR R0, =0x19B\n" 130 151 "MOV R1, #0x64\n" 131 //"STRD R0, [SP,#0x74-0x54]\n" // "strd not supported by cpu" claims gcc132 "STR R0, [SP,#0x74-0x54]\n" // split in two single-word STRs152 //"STRD R0, [SP,#0x74-0x54]\n" // "strd not supported by cpu" claims gcc 153 "STR R0, [SP,#0x74-0x54]\n" // split in two single-word STRs 133 154 "STR R1, [SP,#0x74-0x50]\n" 134 155 135 156 "MOV R0, #0x78\n" 136 //"STRD R0, [SP,#0x74-0x4C]\n" // "strd not supported by cpu" claims gcc137 "STR R0, [SP,#0x74-0x4C]\n" // split in two single-word STRs157 //"STRD R0, [SP,#0x74-0x4C]\n" // "strd not supported by cpu" claims gcc 158 "STR R0, [SP,#0x74-0x4C]\n" // split in two single-word STRs 138 159 "STR R1, [SP,#0x74-0x48]\n" 139 160 … … 150 171 "STR R0, [SP,#0x74-0x0C]\n" 151 172 152 //"LDR R1, =0xFFC04DA4\n" // uHwSetup = 0xFFC04DA4153 "LDR R1, =uHwSetup_my\n" // followup to own function173 //"LDR R1, =0xFFC04DA4\n" // uHwSetup = 0xFFC04DA4 174 "LDR R1, =uHwSetup_my\n" // followup to own function 154 175 155 176 "MOV R0, SP\n" … … 165 186 "STMFD SP!, {R4,LR}\n" 166 187 "BL sub_FFC0094C\n" 167 "BL sub_FFC0972C\n" // _dmSetup188 "BL sub_FFC0972C\n" // _dmSetup // OK! 168 189 "CMP R0, #0\n" 169 "LDRLT R0, =0xffc04eb8\n" // FFC04EB8 aDmsetup170 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task171 "BL sub_FFC049C8\n" // _termDriverInit190 "LDRLT R0, =0xffc04eb8\n" // FFC04EB8 aDmsetup // OK! 191 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task // OK! 192 "BL sub_FFC049C8\n" // _termDriverInit // OK! 172 193 "CMP R0, #0\n" 173 "LDRLT R0, =0xFFC04EC0\n" // aTermdriverinit174 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task175 "LDR R0, =0xFFc04ED0\n" // a_term176 "BL sub_FFC04AB4\n" // _termDeviceCreate194 "LDRLT R0, =0xFFC04EC0\n" // aTermdriverinit // OK! 195 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task // OK! 196 "LDR R0, =0xFFc04ED0\n" // a_term // OK! 197 "BL sub_FFC04AB4\n" // _termDeviceCreate // OK! 177 198 "CMP R0, #0\n" 178 "LDRLT R0, =0xFFC04ED8\n" // aTermdevicecrea179 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task180 "LDR R0, =0xFFc04ED0\n" // a_term181 "BL sub_FFc03564\n" // _stdioSetup199 "LDRLT R0, =0xFFC04ED8\n" // aTermdevicecrea // OK! 200 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task // OK! 201 "LDR R0, =0xFFc04ED0\n" // a_term // OK! 202 "BL sub_FFc03564\n" // _stdioSetup // OK! 182 203 "CMP R0, #0\n" 183 "LDRLT R0, =0xFFC04EEC\n" // aStdiosetup184 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task185 "BL sub_FFc092B4\n" // _stdlibSetup204 "LDRLT R0, =0xFFC04EEC\n" // aStdiosetup // OK! 205 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task // OK! 206 "BL sub_FFc092B4\n" // _stdlibSetup // OK! 186 207 "CMP R0, #0\n" 187 "LDRLT R0, =0xFFC04E EC\n" // aStdlibsetup188 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task189 "BL sub_FFC014B8\n" // _armlib_setup208 "LDRLT R0, =0xFFC04EF8\n" // aStdlibsetup // Corrected! from 0xFFC04EEC 209 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task // OK! 210 "BL sub_FFC014B8\n" // _armlib_setup // OK! 190 211 "CMP R0, #0\n" 191 "LDRLT R0, =0xFFC04F04\n" // aArmlib_setup192 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task212 "LDRLT R0, =0xFFC04F04\n" // aArmlib_setup // OK! 213 "BLLT sub_FFC04E98\n" // FFC04E98 _err_init_task // OK! 193 214 "LDMFD SP!, {R4,LR}\n" 194 //"B _CreateTaskStartup\n" // FFC0DCDC215 //"B _CreateTaskStartup\n" // FFC0CD84 195 216 "B CreateTask_Startup_my\n" 196 217 … … 201 222 asm volatile ( 202 223 "STMFD SP!, {R3,LR}\n" 203 //"BL j_nullsub_21 2\n"224 //"BL j_nullsub_211\n" 204 225 "BL sub_FFC1979C\n" 205 226 "CMP R0, #0\n" … … 218 239 "LDR R1, =0xC0220000\n" 219 240 220 "MOV R 1, #0x44\n"221 "STR R 1, [R0,#0x4C]\n"241 "MOV R0, #0x44\n" // Corrected! from MOV R1, #0x44 242 "STR R0, [R1,#0x4C]\n" // Corrected! from STR R1, [R0,#0x4C] 222 243 "loc_FFC0CDB0:\n" 223 244 "B loc_FFC0CDB0\n" 224 245 "loc_FFC0CDB4:\n" 225 //"BL j_nullsub_214\n"226 246 //"BL j_nullsub_213\n" 247 //"BL j_nullsub_212\n" 227 248 "BL sub_FFC17B24\n" 228 //different from a720!!! 229 "LDR R1, =0x2CE000\n"// ??? ?????? ??? 0x300000 ???-?? ????... 249 "LDR R1, =0x2CE000\n" // Different from a720!!! (MOV R1, #0x300000) 230 250 "MOV R0, #0\n" 251 231 252 "BL sub_FFC17D6C\n" 232 253 "BL sub_FFC17D18\n" 233 254 "MOV R3, #0\n" 234 "STR R3, [SP]\n" 235 //"ADR R3, sub_FFC0CD28\n" //Startup 255 "STR R3, [SP,#8-8]\n" 256 257 //"ADR R3, sub_FFC0CD28\n" // Startup 236 258 "LDR R3, =task_Startup_my\n" // followup to own function 237 259 "MOV R2, #0\n" 238 260 "MOV R1, #0x19\n" 239 "LDR R0, =0xFFC0CDFC\n" 240 "BL sub_FFC0B8E0\n" 261 "LDR R0, =0xFFC0CDFC\n" // aStartup, 0xFFC0CDFC (ADR R0, aStartup) 262 "BL sub_FFC0B8E0\n" // CreateTask, 0xFFC0B8E0 241 263 "MOV R0, #0\n" 242 264 "LDMFD SP!, {R12,PC}\n" … … 245 267 246 268 void __attribute__((naked,noinline)) task_Startup_my() { //#fs 269 247 270 asm volatile ( 248 271 "STMFD SP!, {R4,LR}\n" 249 "BL sub_FFC051BC\n" // uRegClockSave272 "BL sub_FFC051BC\n" // taskcreate_ClockSave 250 273 "BL sub_FFC12B3C\n" 251 274 "BL sub_FFC0FE14\n" 252 //"BL j_nullsub_217\n"275 //"BL j_nullsub_216\n" // j_kbd_pwr_on_short does not exist in a580's DryOS version 253 276 "BL sub_FFC199A4\n" 254 //"BL sub_FFC19864\n" // StartDiskboot277 //"BL sub_FFC19864\n" // StartDiskboot 255 278 ); 256 279 … … 260 283 "BL sub_FFC19B58\n" 261 284 "BL sub_FFC199F4\n" 285 262 286 "BL sub_FFC17064\n" 263 287 "BL sub_FFC19B5C\n" 264 ); 265 266 CreateTask_PhySw(); 267 268 asm volatile ( 269 //"BL sub_FFC118F0\n" // CreateTask_PhySw - checks buttons and acts accordingly 270 271 "BL sub_FFC14A34_my\n" // divert to intercept task_ShootSeqTask 288 "BL sub_FFC118F0\n" // taskcreate_PhySw - checks buttons and acts accordingly 289 290 "BL sub_FFC14A34\n" // task_ShootSeqTask 272 291 "BL sub_FFC19B74\n" 273 //"BL nullsub_2\n"292 //"BL sub_FFC0FBD8\n" // nullsub_2 274 293 "BL sub_FFC10DC4\n" 275 "BL sub_FFC19564\n" 294 "BL sub_FFC19564\n" // taskcreate_Bye 276 295 "BL sub_FFC11420\n" 277 "BL sub_FFC10CC4\n" 278 "BL sub_FFC1A4C0\n" //TODO: m.b. comment 279 //"BL sub_FFC1A4C0_my\n" // divert for SDHC-bootdisk-support //TODO: m.b. uncomment 296 "BL sub_FFC10CC4\n" // taskcreate_TempCheck 297 "BL sub_FFC1A4C0\n" 280 298 "BL sub_FFC10C80\n" 281 299 282 300 // modification: BL instead of B to last function to control action after its return 283 301 "BL sub_FFC05070\n" 284 "LDMFD SP!, {R4,PC}\n" // restore stack to PC instead of LR to return to caller302 "LDMFD SP!, {R4,PC}\n" // restore stack to PC instead of LR to return to caller 285 303 ); 286 304 }; //#fe … … 291 309 }; //#fe 292 310 293 void CreateTask_PhySw() { //#fs 294 _CreateTask("PhySw", 0x18, 0x800, mykbd_task, 0); 295 }; //#fe 296 297 void __attribute__((naked,noinline)) sub_FFC14A34_my() { //#fs 311 void __attribute__((naked,noinline)) task_InitFileModules_my() { //#fs 312 asm volatile ( 313 "STMFD SP!, {R4-R6,LR}\n" 314 "BL sub_FFC58A28\n" 315 "LDR R5, =0x5006\n" 316 "MOVS R4, R0\n" 317 "MOVNE R1, #0\n" 318 "MOVNE R0, R5\n" 319 "BLNE sub_FFC5BEC4\n" // PostLogicalEventToUI 320 "BL sub_FFC58A54_my\n" // Continue to SDHC-hook here! 321 322 "BL core_spytask_can_start\n" // CHDK: Set "it's-save-to-start"-Flag for spytask (safe?) 323 324 "CMP R4, #0\n" 325 "MOVEQ R0, R5\n" 326 "LDMEQFD SP!, {R4-R6,LR}\n" 327 "MOVEQ R1, #0\n" 328 "BEQ sub_FFC5BEC4\n" // PostLogicalEventToUI (cameralog "LogicalEvent...", it's save to run this after spytask has started) 329 "LDMFD SP!, {R4-R6,PC}\n" 330 ); 331 }; //#fe 332 333 void __attribute__((naked,noinline)) sub_FFC58A54_my() { //#fs 298 334 asm volatile ( 299 335 "STMFD SP!, {R4,LR}\n" 300 "LDR R4, =0x1C04\n" 336 "BL sub_FFC3D588_my\n" // Continue to SDHC-hook here 337 "LDR R4, =0x5580\n" 338 "LDR R0, [R4,#4]\n" 339 "CMP R0, #0\n" 340 "BNE loc_FFC58A84\n" 341 "BL sub_FFC66B30\n" 342 "BL sub_FFCDE71C\n" 343 "BL sub_FFC66B30\n" 344 "BL sub_FFC3AF78\n" 345 "BL sub_FFC66B40\n" 346 "BL sub_FFCDE7E8\n" 347 "loc_FFC58A84:\n" 348 "MOV R0, #1\n" 349 "STR R0, [R4]\n" 350 "LDMFD SP!, {R4,PC}\n" 351 ); 352 }; //#fe 353 354 void __attribute__((naked,noinline)) sub_FFC3D588_my() { //#fs 355 asm volatile ( 356 "STMFD SP!, {R4-R6,LR}\n" 357 "MOV R6, #0\n" 358 "MOV R0, R6\n" 359 "BL sub_FFC3D048\n" 360 "LDR R4, =0xFE6C\n" 361 "MOV R5, #0\n" 362 "LDR R0, [R4,#0x38]\n" 363 "BL sub_FFC3DA7C\n" 364 "CMP R0, #0\n" 365 "LDREQ R0, =0x2828\n" 366 "STREQ R5, [R0,#0x10]\n" 367 "STREQ R5, [R0,#0x14]\n" 368 "STREQ R5, [R0,#0x18]\n" 369 "MOV R0, R6\n" 370 "BL sub_FFC3D088\n" // uMounter (u=unknown, just to prevent misunderstandings) 371 "MOV R0, R6\n" 372 "BL sub_FFC3D3C4_my\n" // Continue to SDHC-hook here! 373 "MOV R5, R0\n" 374 "MOV R0, R6\n" 375 "BL sub_FFC3D430\n" 376 "LDR R1, [R4,#0x3C]\n" 377 "AND R2, R5, R0\n" 378 "CMP R1, #0\n" 301 379 "MOV R0, #0\n" 302 "MOV R1, #4\n" 303 "STR R0, [R4,#0xC]\n" 304 "BL sub_FFC0BC10\n" 305 "STR R0, [R4,#4]\n" 380 "MOVEQ R0, #0x80000001\n" 381 "BEQ loc_FFC3D61C\n" 382 "LDR R3, [R4,#0x2C]\n" 383 "CMP R3, #2\n" 384 "MOVEQ R0, #4\n" 385 "CMP R1, #5\n" 386 "ORRNE R0, R0, #1\n" 387 "BICEQ R0, R0, #1\n" 388 "CMP R2, #0\n" 389 "BICEQ R0, R0, #2\n" 390 "ORREQ R0, R0, #0x80000000\n" 391 "BICNE R0, R0, #0x80000000\n" 392 "ORRNE R0, R0, #2\n" 393 "loc_FFC3D61C:\n" 394 "STR R0, [R4,#0x40]\n" 395 "LDMFD SP!, {R4-R6,PC}\n" 396 ); 397 }; //#fe 398 399 void __attribute__((naked,noinline)) sub_FFC3D3C4_my() { //#fs 400 asm volatile ( 401 "STMFD SP!, {R4-R6,LR}\n" 402 "LDR R5, =0x2828\n" 403 "MOV R6, R0\n" 404 "LDR R0, [R5,#0x14]\n" 405 "CMP R0, #0\n" 406 "MOVNE R0, #1\n" 407 "LDMNEFD SP!, {R4-R6,PC}\n" 408 "MOV R0, #0x17\n" 409 "MUL R1, R0, R6\n" 410 "LDR R0, =0xFE6C\n" 411 "ADD R4, R0, R1,LSL#2\n" 412 "LDR R0, [R4,#0x38]\n" 413 "MOV R1, R6\n" 414 "BL sub_FFC3D154_my\n" // Continue to SDHC-hook here! 415 "CMP R0, #0\n" 416 "LDMEQFD SP!, {R4-R6,PC}\n" 417 "LDR R0, [R4,#0x38]\n" 418 "MOV R1, R6\n" 419 "BL sub_FFC3D2BC\n" 420 "CMP R0, #0\n" 421 "LDMEQFD SP!, {R4-R6,PC}\n" 422 "MOV R0, R6\n" 423 "BL sub_FFC3CC50\n" 424 "CMP R0, #0\n" 425 "MOVNE R1, #1\n" 426 "STRNE R1, [R5,#0x14]\n" 427 "LDMFD SP!, {R4-R6,PC}\n" 428 ); 429 }; //#fe 430 431 void __attribute__((naked,noinline)) sub_FFC3D154_my() { //#fs ; Partition table parse takes place here. => SDHC-boot 432 asm volatile ( 433 "STMFD SP!, {R4-R8,LR}\n" 434 "MOV R8, R0\n" 435 "MOV R0, #0x17\n" 436 "MUL R1, R0, R1\n" 437 "LDR R0, =0xFE6C\n" 438 "MOV R6, #0\n" 439 "ADD R7, R0, R1,LSL#2\n" 440 "LDR R0, [R7,#0x3C]\n" 441 "MOV R5, #0\n" 442 "CMP R0, #6\n" 443 "ADDLS PC, PC, R0,LSL#2\n" 444 "B loc_FFC3D2A0\n" 445 "loc_FFC3D184:\n" 446 "B loc_FFC3D1B8\n" 447 "loc_FFC3D188:\n" 448 "B loc_FFC3D1A0\n" 449 "loc_FFC3D18C:\n" 450 "B loc_FFC3D1A0\n" 451 "loc_FFC3D190:\n" 452 "B loc_FFC3D1A0\n" 453 "loc_FFC3D194:\n" 454 "B loc_FFC3D1A0\n" 455 "loc_FFC3D198:\n" 456 "B loc_FFC3D298\n" 457 "loc_FFC3D19C:\n" 458 "B loc_FFC3D1A0\n" 459 "loc_FFC3D1A0:\n" 460 "MOV R2, #0\n" 461 "MOV R1, #0x200\n" 462 "MOV R0, #3\n" 463 "BL sub_FFC52BD4\n" 464 "MOVS R4, R0\n" 465 "BNE loc_FFC3D1C0\n" 466 "loc_FFC3D1B8:\n" 306 467 "MOV R0, #0\n" 307 "MOV R1, #1\n" 308 "BL sub_FFC0BC34\n" 309 "STR R0, [R4,#8]\n" 310 "BL sub_FFC4C9A8\n" 311 "BL sub_FFC4DB7C\n" 312 "BL sub_FFC4BABC\n" 313 "BL sub_FFC48AAC_my\n" // divert this for ShootSeqTask 314 "BL sub_FFC4CC68\n" 315 "LDR R0, [R4,#4]\n" 316 "LDMFD SP!, {R4,LR}\n" 317 "MOV R1, #0x1000\n" 318 "B sub_FFC173C8\n" 319 ); 320 }; //#fe 321 322 void __attribute__((naked,noinline)) sub_FFC48AAC_my() { //#fs 323 asm volatile ( 324 "STMFD SP!, {R4,LR}\n" 325 "LDR R4, =0x5270\n" 326 "LDR R0, [R4,#8]\n" 327 "CMP R0, #0\n" 328 "BNE loc_FFC48B18\n" 329 //"BL nullsub_29\n" 330 "MOV R1, #1\n" 331 "MOV R0, #0\n" 332 "BL sub_FFC0BC34\n" 333 "STR R0, [R4,#0xC]\n" 334 "MOV R0, #0\n" 468 "LDMFD SP!, {R4-R8,PC}\n" 469 "loc_FFC3D1C0:\n" 470 "LDR R12, [R7,#0x4C]\n" 471 "MOV R3, R4\n" 472 "MOV R2, #1\n" 335 473 "MOV R1, #0\n" 336 "BL sub_FFC0BC10\n" 337 "STR R0, [R4,#0x10]\n" 338 "BL sub_FFC48DA4\n" 339 "BL sub_FFC492F4\n" // continue here for task_ShootSeqTask (this is nonsense. We just need CaptSeqTask) 340 "MOV R0, #0\n" 341 "STR R0, [R4,#0x8]\n" 342 "ADD R0, R4, #0x14\n" 343 "MOV R1, #0\n" 344 "STR R1, [R0],#4\n" 345 "STR R1, [R0]\n" 346 "BL sub_FFC49494\n" 347 "BL sub_FFC4CE14\n" 348 "BL sub_FFC4B48C\n" 349 "BL sub_FFC49DC0_my\n" // continue here for task_CaptSeqTask 350 "BL sub_FFC4AFD4\n" 351 "loc_FFC48B18:\n" 474 "MOV R0, R8\n" 475 476 //"BLX R12\n" // !! Workaround !! 477 "MOV LR, PC\n" // gcc won't compile "BLX R12" nor "BL R12". 478 "MOV PC, R12\n" // workaround: make your own "BL" and hope we don't need the change to thumb-mode 479 480 "CMP R0, #1\n" 481 "BNE loc_FFC3D1EC\n" 482 "MOV R0, #3\n" 483 "BL sub_FFC52D14\n" 484 "B loc_FFC3D1B8\n" 485 486 "loc_FFC3D1EC:\n" 487 "MOV R0, R8\n" 488 "BL sub_FFCFB2F0\n" // Add FAT32 autodetect-code after this line 489 "MOV R1, R4\n" // pointer to MBR in R1 490 "BL mbr_read_dryos\n" // total sectors count in R0 before and after call 491 492 // Start of DataGhost's FAT32 autodetection code 493 // Policy: If there is a partition which has type W95 FAT32, use the first one of those for image storage 494 // According to the code below, we can use R1, R2, R3 and R12. 495 // LR wasn't really used anywhere but for storing a part of the partition signature. This is the only thing 496 // that won't work with an offset, but since we can load from LR+offset into LR, we can use this to do that :) 497 "MOV R12, R4\n" // Copy the MBR start address so we have something to work with 498 "MOV LR, R4\n" // Save old offset for MBR signature 499 "MOV R1, #1\n" // Note the current partition number 500 "B dg_sd_fat32_enter\n" // We actually need to check the first partition as well, no increments yet! 501 "dg_sd_fat32:\n" 502 "CMP R1, #4\n" // Did we already see the 4th partition? 503 "BEQ dg_sd_fat32_end\n" // Yes, break. We didn't find anything, so don't change anything. 504 "ADD R12, R12, #0x10\n" // Second partition 505 "ADD R1, R1, #1\n" // Second partition for the loop 506 "dg_sd_fat32_enter:\n" 507 "LDRB R2, [R12, #0x1BE]\n" // Partition status 508 "LDRB R3, [R12, #0x1C2]\n" // Partition type (FAT32 = 0xB) 509 "CMP R3, #0xB\n" // Is this a FAT32 partition? 510 "CMPNE R3, #0xC\n" // Not 0xB, is it 0xC (FAT32 LBA) then? 511 "BNE dg_sd_fat32\n" // No, it isn't. 512 "CMP R2, #0x00\n" // It is, check the validity of the partition type 513 "CMPNE R2, #0x80\n" 514 "BNE dg_sd_fat32\n" // Invalid, go to next partition 515 // This partition is valid, it's the first one, bingo! 516 "MOV R4, R12\n" // Move the new MBR offset for the partition detection. 517 518 "dg_sd_fat32_end:\n" 519 // End of DataGhost's FAT32 autodetection code 520 521 "LDRB R1, [R4,#0x1C9]\n" // Continue with firmware 522 "LDRB R3, [R4,#0x1C8]\n" 523 "LDRB R12, [R4,#0x1CC]\n" 524 "MOV R1, R1,LSL#24\n" 525 "ORR R1, R1, R3,LSL#16\n" 526 "LDRB R3, [R4,#0x1C7]\n" 527 "LDRB R2, [R4,#0x1BE]\n" 528 //"LDRB LR, [R4,#0x1FF]\n" // replaced, see below 529 "ORR R1, R1, R3,LSL#8\n" 530 "LDRB R3, [R4,#0x1C6]\n" 531 "CMP R2, #0\n" 532 "CMPNE R2, #0x80\n" 533 "ORR R1, R1, R3\n" 534 "LDRB R3, [R4,#0x1CD]\n" 535 "MOV R3, R3,LSL#24\n" 536 "ORR R3, R3, R12,LSL#16\n" 537 "LDRB R12, [R4,#0x1CB]\n" 538 "ORR R3, R3, R12,LSL#8\n" 539 "LDRB R12, [R4,#0x1CA]\n" 540 "ORR R3, R3, R12\n" 541 //"LDRB R12, [R4,#0x1FE]\n" // replaced, see below 542 543 "LDRB R12, [LR,#0x1FE]\n" // New! First MBR signature byte (0x55) 544 "LDRB LR, [LR,#0x1FF]\n" // Last MBR signature byte (0xAA) 545 546 "MOV R4, #0\n" 547 "BNE loc_FFC3D274\n" 548 "CMP R0, R1\n" 549 "BCC loc_FFC3D274\n" 550 "ADD R2, R1, R3\n" 551 "CMP R2, R0\n" 552 "CMPLS R12, #0x55\n" 553 "CMPEQ LR, #0xAA\n" 554 "MOVEQ R6, R1\n" 555 "MOVEQ R5, R3\n" 556 "MOVEQ R4, #1\n" 557 "loc_FFC3D274:\n" 558 "MOV R0, #3\n" 559 "BL sub_FFC52D14\n" 560 "CMP R4, #0\n" 561 "BNE loc_FFC3D2AC\n" 562 "MOV R6, #0\n" 563 "MOV R0, R8\n" 564 "BL sub_FFCFB2F0\n" 565 "MOV R5, R0\n" 566 "B loc_FFC3D2AC\n" 567 "loc_FFC3D298:\n" 568 "MOV R5, #0x40\n" 569 "B loc_FFC3D2AC\n" 570 "loc_FFC3D2A0:\n" 571 "MOV R1, #0x374\n" 572 "LDR R0, =0xFFC3D148\n" // Mounter.c 573 "BL sub_FFC0BDB8\n" // DebugAssert 574 "loc_FFC3D2AC:\n" 575 "STR R6, [R7,#0x44]!\n" 352 576 "MOV R0, #1\n" 353 "STR R0, [R4,#4]\n" 354 "LDMFD SP!, {R4,PC}\n" 355 ); 356 }; //#fe 357 //UP! 358 void __attribute__((naked,noinline)) sub_FFC49DC0_my() { //#fs // CreateTask_CaptSeqTask 359 asm volatile ( 360 "STMFD SP!, {R3-R5,LR}\n" 361 "LDR R2, =0x18320\n" 362 "MOV R0, #0\n" 363 "MOV R1, #0\n" 364 "loc_FFC49DD0:\n" 365 "ADD R3, R2, R0,LSL#4\n" 366 "ADD R0, R0, #1\n" 367 "CMP R0, #5\n" 368 "STR R1, [R3,#8]\n" 369 "BCC loc_FFC49DD0\n" 370 "BL sub_FFD0E290\n" 371 "BL sub_FFD0FE68\n" 372 "MOV R1, #5\n" 373 "MOV R0, #0\n" 374 "BL sub_FFC0BBEC\n" 375 "LDR R4, =0x52A8\n" 376 "LDR R1, =0x1001FF\n" 377 "STR R0, [R4,#8]\n" 378 "MOV R0, #0\n" 379 "BL sub_FFC0BC10\n" 380 "STR R0, [R4,#4]\n" 381 "MOV R0, #0\n" 382 "MOV R1, #1\n" 383 "BL sub_FFC0BC34\n" 384 "STR R0, [R4,$0xC]\n" 385 "MOV R3, #0\n" 386 //"STR R3, [SP,#0x10+var_10]\n" 387 "STR R3, [SP]\n" 388 //"LDR R3, =0xFFC49B38\n" // task_CaptSeqTask 389 "LDR R3, =task_CaptSeqTask_my\n" // task_CaptSeqTask 390 "LDR R0, =0xFFC49EF4\n" // aCaptseqtask ; "CaptSeqTask" 391 "MOV R2, #0x1000\n" 392 "MOV R1, #0x17\n" 393 "BL sub_FFC0BBB8\n" // uKernelMiscCreateTask o. CreateTaskStrict 394 "LDMFD SP!, {R3-R5,PC}\n" 395 ".ltorg\n" 396 ); 397 }; //#fe 398 577 "STR R5, [R7,#4]\n" 578 "LDMFD SP!, {R4-R8,PC}\n" 579 ); 580 }; //#fe -
trunk/platform/a580/sub/101b/capt_seq.c
r1136 r1308 9 9 void __attribute__((naked,noinline)) sub_FFD0F3B8_my(){ 10 10 asm volatile( 11 "STMFD SP!, {R0-R10,LR}\n" 12 "MOV R6, #0\n" 13 "MOV R4, R0\n" 14 "BL sub_FFD0FEB8\n" 15 "MVN R1, #0\n" // "MOV R1, 0xFFFFFFFF\n" 16 "BL sub_FFC173FC\n" 17 "MOV R2, #4\n" 18 "ADD R1, SP, #8\n" 19 "MOV R0, #0x8A\n" 20 "BL sub_FFC5819C\n" 21 "TST R0, #1\n" 22 "MOVNE R1, #0x218\n" 23 "LDRNE R0, =0xFFD0F5CC\n" 24 "BLNE sub_FFC0BDB8\n" 25 "LDR R8, =0x18440\n" 26 "LDR R5, =0x18394\n" 27 "LDRSH R1, [R8,#0xE]\n" 28 "LDR R0, [R5,#0x74]\n" 29 "BL sub_FFCCD36C\n" 30 "BL sub_FFC339C8\n" 31 "LDR R2, =0x8454\n" 32 "ADD R3, R4, #0x8C\n" 33 "STRH R0, [R4,#0x88]\n" 34 "STRD R2, [SP]\n" 35 "MOV R1, R0\n" 36 "LDRH R0, [R5,#0x4C]\n" 37 "LDRSH R2, [R8,#0xC]\n" 38 "LDR R3, =0x8450\n" 39 "BL sub_FFD103A4\n" 40 "BL wait_until_remote_button_is_released\n" 41 "BL capt_seq_hook_set_nr\n" 42 "B sub_FFD0F42C\n" 11 "STMFD SP!, {R0-R10,LR}\n" 12 "MOV R6, #0\n" 13 "MOV R4, R0\n" 14 "BL sub_FFD0FEB8\n" 15 "MVN R1, #0\n" // "MOVL R1, 0xFFFFFFFF" 16 "BL sub_FFC173FC\n" 17 "MOV R2, #4\n" 18 "ADD R1, SP, #8\n" 19 "MOV R0, #0x8A\n" 20 "BL sub_FFC5819C\n" 21 "TST R0, #1\n" 22 "MOVNE R1, #0x218\n" 23 "LDRNE R0, =0xFFD0F5CC\n" 24 "BLNE sub_FFC0BDB8\n" 25 "LDR R8, =0x18440\n" 26 "LDR R5, =0x18394\n" 27 "LDRSH R1, [R8,#0xE]\n" 28 "LDR R0, [R5,#0x74]\n" 29 "BL sub_FFCCD36C\n" 30 "BL sub_FFC339C8\n" 31 "LDR R2, =0x8454\n" 32 "ADD R3, R4, #0x8C\n" 33 "STRH R0, [R4,#0x88]\n" 34 "STR R2, [SP]\n" // Corrected! from STRD R2, [SP] 35 "STR R3, [SP,#4]\n" // Added! (als in a720) 36 "MOV R1, R0\n" 37 "LDRH R0, [R5,#0x4C]\n" 38 "LDRSH R2, [R8,#0xC]\n" 39 "LDR R3, =0x8450\n" 40 "BL sub_FFD103A4\n" 41 "BL wait_until_remote_button_is_released\n" 42 "BL capt_seq_hook_set_nr\n" 43 "B sub_FFD0F42C\n" 43 44 ); 44 45 } 45 ///UP 46 46 47 47 48 void __attribute__((naked,noinline)) task_CaptSeqTask_my() //#fs 48 49 { 49 50 asm volatile ( 50 " STMFD SP!, {R3-R7,LR}\n" 51 " LDR R6, =0x52A8\n" 51 "STMFD SP!, {R3-R7,LR}\n" 52 "LDR R6, =0x52A8\n" 53 52 54 "loc_FFC49B40:\n" 53 " LDR R0, [R6,#8]\n" 54 " MOV R2, #0\n" 55 " MOV R1, SP\n" 56 " BL sub_FFC1764C\n" 57 " TST R0, #1\n" 58 " BEQ loc_FFC49B6C\n" 59 " LDR R1, =0x48E\n" 60 " LDR R0, =0xFFC49860\n" 61 " BL sub_FFC0BDB8\n" // assert 62 " BL sub_FFC0BB70\n" //exit 63 " LDMFD SP!, {R3-R7,PC}\n" 55 "LDR R0, [R6,#8]\n" 56 "MOV R2, #0\n" 57 "MOV R1, SP\n" 58 "BL sub_FFC1764C\n" 59 "TST R0, #1\n" 60 "BEQ loc_FFC49B6C\n" 61 "LDR R1, =0x48E\n" 62 "LDR R0, =0xFFC49860\n" // aSsshoottask_c 63 "BL sub_FFC0BDB8\n" // DebugAssert 64 "BL sub_FFC0BB70\n" // ExitTask 65 "LDMFD SP!, {R3-R7,PC}\n" 66 64 67 "loc_FFC49B6C:\n" 65 " LDR R0, [SP]\n" 66 " LDR R1, [R0]\n" 67 68 ///????????????????? 69 "LDR R2, =0x1850\n" // DEBUG: Save jumptable-target ... 70 "STR R1, [R2]\n" // ...to some unused space. Read and displayed in GUI in core/gui.c 71 //?????????????????? 72 73 " CMP R1, #0x19\n" 74 " ADDLS PC, PC, R1,LSL#2\n" 75 " B loc_FFC49D80\n" 76 " B loc_FFC49BE8\n" 77 " B loc_FFC49BF0\n" 78 " B loc_FFC49C70\n" 79 " B loc_FFC49C84\n" 80 " B loc_FFC49C7C\n" 81 " B loc_FFC49C8C\n" 82 " B loc_FFC49C94\n" 83 " B loc_FFC49CA0\n" 84 " B loc_FFC49CF8\n" 85 " B loc_FFC49C84\n" 86 " B loc_FFC49D00\n" 87 " B loc_FFC49D08\n" 88 " B loc_FFC49D10\n" 89 " B loc_FFC49D18\n" 90 " B loc_FFC49D20\n" 91 " B loc_FFC49D2C\n" 92 " B loc_FFC49D34\n" 93 " B loc_FFC49D3C\n" 94 " B loc_FFC49D44\n" 95 " B loc_FFC49D50\n" 96 " B loc_FFC49D58\n" 97 " B loc_FFC49D60\n" 98 " B loc_FFC49D68\n" 99 " B loc_FFC49D70\n" 100 " B loc_FFC49D78\n" 101 " B loc_FFC49D8C\n" 68 "LDR R0, [SP]\n" 69 "LDR R1, [R0]\n" 70 71 //"LDR R2, =0x1850\n" // What? DEBUG: Save jumptable-target ... 72 //"STR R1, [R2]\n" // What? ...to some unused space. Read and displayed in GUI in core/gui.c 73 74 "CMP R1, #0x19\n" 75 "ADDLS PC, PC, R1,LSL#2\n" 76 "B loc_FFC49D80\n" 77 78 "B loc_FFC49BE8\n" 79 "B loc_FFC49BF0\n" 80 "B loc_FFC49C70\n" 81 "B loc_FFC49C84\n" 82 "B loc_FFC49C7C\n" 83 "B loc_FFC49C8C\n" 84 "B loc_FFC49C94\n" 85 "B loc_FFC49CA0\n" 86 "B loc_FFC49CF8\n" 87 "B loc_FFC49C84\n" 88 "B loc_FFC49D00\n" 89 "B loc_FFC49D08\n" 90 "B loc_FFC49D10\n" 91 "B loc_FFC49D18\n" 92 "B loc_FFC49D20\n" 93 "B loc_FFC49D2C\n" 94 "B loc_FFC49D34\n" 95 "B loc_FFC49D3C\n" 96 "B loc_FFC49D44\n" 97 "B loc_FFC49D50\n" 98 "B loc_FFC49D58\n" 99 "B loc_FFC49D60\n" 100 "B loc_FFC49D68\n" 101 "B loc_FFC49D70\n" 102 "B loc_FFC49D78\n" 103 "B loc_FFC49D8C\n" 102 104 "loc_FFC49BE8:\n" 103 "BL sub_FFD0DF20\n"105 "BL sub_FFD0DF20\n" 104 106 "BL shooting_expo_param_override\n" 105 "B loc_FFC49C98\n"107 "B loc_FFC49C98\n" 106 108 "loc_FFC49BF0:\n" 107 " LDR R4, [R0,#0xC]\n" 108 " LDR R0, [R4,#8]\n" 109 " ORR R0, R0, #1\n" 110 " STR R0, [R4,#8]\n" 111 " BL sub_FFD0DF10\n" 112 " MOV R0, R4\n" 113 " BL sub_FFD0E2F8\n" 114 " TST R0, #1\n" 115 " MOVNE R2, R4\n" 116 " MOVNE R1, #1\n" 117 " BNE loc_FFC49CF0\n" 118 " BL sub_FFD2D318\n" 119 " BL sub_FFC5832C\n" 120 " STR R0, [R4,#0x14]\n" 121 " MOV R0, R4\n" 122 " BL sub_FFD0F2F0\n" 123 " BL sub_FFD0FD54\n" 124 " MOV R0, R4\n" 125 //" BL sub_FFD0F3B8\n" 126 "BL sub_FFD0F3B8_my\n" //--------------> 127 "BL capt_seq_hook_raw_here\n" //--------------> 128 " MOV R5, R0\n" 129 " BL sub_FFD10D34\n" 130 " BL sub_FFD10D70\n" 131 " MOV R2, R4\n" 132 " MOV R1, #1\n" 133 " MOV R0, R5\n" 134 " BL sub_FFC4831C\n" 135 " BL sub_FFD0F768\n" 136 " CMP R0, #0\n" 137 " LDRNE R0, [R4,#8]\n" 138 " ORRNE R0, R0, #0x2000\n" 139 " STRNE R0, [R4,#8]\n" 140 " B loc_FFC49D8C\n" 109 "LDR R4, [R0,#0xC]\n" 110 "LDR R0, [R4,#8]\n" 111 "ORR R0, R0, #1\n" 112 "STR R0, [R4,#8]\n" 113 "BL sub_FFD0DF10\n" 114 "MOV R0, R4\n" 115 "BL sub_FFD0E2F8\n" 116 "TST R0, #1\n" 117 "MOVNE R2, R4\n" 118 "MOVNE R1, #1\n" 119 "BNE loc_FFC49CF0\n" 120 "BL sub_FFD2D318\n" 121 "BL sub_FFC5832C\n" 122 "STR R0, [R4,#0x14]\n" 123 "MOV R0, R4\n" 124 "BL sub_FFD0F2F0\n" 125 "BL sub_FFD0FD54\n" 126 "MOV R0, R4\n" 127 "BL sub_FFD0F3B8_my\n" //--------------> 128 "BL capt_seq_hook_raw_here\n" //--------------> 129 "MOV R5, R0\n" 130 "BL sub_FFD10D34\n" 131 "BL sub_FFD10D70\n" 132 "MOV R2, R4\n" 133 "MOV R1, #1\n" 134 "MOV R0, R5\n" 135 "BL sub_FFC4831C\n" 136 "BL sub_FFD0F768\n" 137 "CMP R0, #0\n" 138 "LDRNE R0, [R4,#8]\n" 139 "ORRNE R0, R0, #0x2000\n" 140 "STRNE R0, [R4,#8]\n" 141 "B loc_FFC49D8C\n" 141 142 "loc_FFC49C70:\n" 142 "MOV R0, #1\n"143 "BL sub_FFD0E0B4\n"144 "B loc_FFC49D8C\n"143 "MOV R0, #1\n" 144 "BL sub_FFD0E0B4\n" 145 "B loc_FFC49D8C\n" 145 146 "loc_FFC49C7C:\n" 146 "BL sub_FFD0DB80\n"147 "B loc_FFC49D8C\n"147 "BL sub_FFD0DB80\n" 148 "B loc_FFC49D8C\n" 148 149 "loc_FFC49C84:\n" 149 "BL sub_FFD0DF00\n"150 "B loc_FFC49D8C\n"150 "BL sub_FFD0DF00\n" 151 "B loc_FFC49D8C\n" 151 152 "loc_FFC49C8C:\n" 152 "BL sub_FFD0DF08\n"153 "B loc_FFC49D8C\n"153 "BL sub_FFD0DF08\n" 154 "B loc_FFC49D8C\n" 154 155 "loc_FFC49C94:\n" 155 "BL sub_FFD0DFD4\n"156 "BL sub_FFD0DFD4\n" 156 157 "loc_FFC49C98:\n" 157 "BL sub_FFC47F9C\n"158 "B loc_FFC49D8C\n"158 "BL sub_FFC47F9C\n" 159 "B loc_FFC49D8C\n" 159 160 "loc_FFC49CA0:\n" 160 "LDR R4, [R0,#0xC]\n"161 "BL sub_FFD0DF10\n"162 "MOV R0, R4\n"163 "BL sub_FFD0E678\n"164 "TST R0, #1\n"165 "MOV R5, R0\n"166 "BNE loc_FFC49CE0\n"167 "BL sub_FFC5832C\n"168 "STR R0, [R4,#0x14]\n"169 "MOV R0, R4\n"170 "BL sub_FFD0F2F0\n"171 "MOV R0, R4\n"172 "BL sub_FFD0F7C8\n"173 "MOV R5, R0\n"174 "LDR R0, [R4,#0x14]\n"175 "BL sub_FFC58538\n"161 "LDR R4, [R0,#0xC]\n" 162 "BL sub_FFD0DF10\n" 163 "MOV R0, R4\n" 164 "BL sub_FFD0E678\n" 165 "TST R0, #1\n" 166 "MOV R5, R0\n" 167 "BNE loc_FFC49CE0\n" 168 "BL sub_FFC5832C\n" 169 "STR R0, [R4,#0x14]\n" 170 "MOV R0, R4\n" 171 "BL sub_FFD0F2F0\n" 172 "MOV R0, R4\n" 173 "BL sub_FFD0F7C8\n" 174 "MOV R5, R0\n" 175 "LDR R0, [R4,#0x14]\n" 176 "BL sub_FFC58538\n" 176 177 "loc_FFC49CE0:\n" 177 "BL sub_FFD0DF00\n"178 "MOV R2, R4\n"179 "MOV R1, #9\n"180 "MOV R0, R5\n"178 "BL sub_FFD0DF00\n" 179 "MOV R2, R4\n" 180 "MOV R1, #9\n" 181 "MOV R0, R5\n" 181 182 "loc_FFC49CF0:\n" 182 "BL sub_FFC4831C\n"183 "B loc_FFC49D8C\n"183 "BL sub_FFC4831C\n" 184 "B loc_FFC49D8C\n" 184 185 "loc_FFC49CF8:\n" 185 "BL sub_FFD0E034\n"186 "B loc_FFC49C98\n"186 "BL sub_FFD0E034\n" 187 "B loc_FFC49C98\n" 187 188 "loc_FFC49D00:\n" 188 "BL sub_FFD0E8F4\n"189 "B loc_FFC49D8C\n"189 "BL sub_FFD0E8F4\n" 190 "B loc_FFC49D8C\n" 190 191 "loc_FFC49D08:\n" 191 "BL sub_FFD0EADC\n"192 "B loc_FFC49D8C\n"192 "BL sub_FFD0EADC\n" 193 "B loc_FFC49D8C\n" 193 194 "loc_FFC49D10:\n" 194 "BL sub_FFD0EB6C\n"195 "B loc_FFC49D8C\n"195 "BL sub_FFD0EB6C\n" 196 "B loc_FFC49D8C\n" 196 197 "loc_FFC49D18:\n" 197 "BL sub_FFD0EC20\n"198 "B loc_FFC49D8C\n"198 "BL sub_FFD0EC20\n" 199 "B loc_FFC49D8C\n" 199 200 "loc_FFC49D20:\n" 200 "MOV R0, #0\n"201 "BL sub_FFD0EDC4\n"202 "B loc_FFC49D8C\n"201 "MOV R0, #0\n" 202 "BL sub_FFD0EDC4\n" 203 "B loc_FFC49D8C\n" 203 204 "loc_FFC49D2C:\n" 204 "BL sub_FFD0EF14\n"205 "B loc_FFC49D8C\n"205 "BL sub_FFD0EF14\n" 206 "B loc_FFC49D8C\n" 206 207 "loc_FFC49D34:\n" 207 "BL sub_FFD0EFA8\n"208 "B loc_FFC49D8C\n"208 "BL sub_FFD0EFA8\n" 209 "B loc_FFC49D8C\n" 209 210 "loc_FFC49D3C:\n" 210 "BL sub_FFD0F070\n"211 "B loc_FFC49D8C\n"211 "BL sub_FFD0F070\n" 212 "B loc_FFC49D8C\n" 212 213 "loc_FFC49D44:\n" 213 "BL sub_FFD0E1D0\n"214 "BL sub_FFC149BC\n"215 "B loc_FFC49D8C\n"214 "BL sub_FFD0E1D0\n" 215 "BL sub_FFC149BC\n" 216 "B loc_FFC49D8C\n" 216 217 "loc_FFC49D50:\n" 217 "BL sub_FFD0ECDC\n"218 "B loc_FFC49D8C\n"218 "BL sub_FFD0ECDC\n" 219 "B loc_FFC49D8C\n" 219 220 "loc_FFC49D58:\n" 220 "BL sub_FFD0ED20\n"221 "B loc_FFC49D8C\n"221 "BL sub_FFD0ED20\n" 222 "B loc_FFC49D8C\n" 222 223 "loc_FFC49D60:\n" 223 "BL sub_FFD10D18\n"224 "B loc_FFC49D8C\n"224 "BL sub_FFD10D18\n" 225 "B loc_FFC49D8C\n" 225 226 "loc_FFC49D68:\n" 226 "BL sub_FFD10D34\n"227 "B loc_FFC49D8C\n"227 "BL sub_FFD10D34\n" 228 "B loc_FFC49D8C\n" 228 229 "loc_FFC49D70:\n" 229 "BL sub_FFD10D44\n"230 "B loc_FFC49D8C\n"230 "BL sub_FFD10D44\n" 231 "B loc_FFC49D8C\n" 231 232 "loc_FFC49D78:\n" 232 "BL sub_FFD10D70\n"233 "B loc_FFC49D8C\n"233 "BL sub_FFD10D70\n" 234 "B loc_FFC49D8C\n" 234 235 "loc_FFC49D80:\n" 235 "LDR R1, =0x58E\n"236 "LDR R0, =0xFFC49860\n"237 " BL sub_FFC0BDB8\n" // assert236 "LDR R1, =0x58E\n" 237 "LDR R0, =0xFFC49860\n" 238 "BL sub_FFC0BDB8\n" // DebugAssert 238 239 "loc_FFC49D8C:\n" 239 "LDR R0, [SP]\n"240 "LDR R1, [R0,#4]\n"241 "LDR R0, [R6,#4]\n"242 "BL sub_FFC173C8\n"243 "LDR R4, [SP]\n"244 "LDR R0, [R4,#8]\n"245 "CMP R0, #0\n"246 "LDREQ R1, =0x10D\n"247 "LDREQ R0, =0xFFC49860\n"248 " BLEQ sub_FFC0BDB8\n" // assert249 "MOV R0, #0\n"250 "STR R0, [R4,#8]\n"251 "B loc_FFC49B40\n"240 "LDR R0, [SP]\n" 241 "LDR R1, [R0,#4]\n" 242 "LDR R0, [R6,#4]\n" 243 "BL sub_FFC173C8\n" 244 "LDR R4, [SP]\n" 245 "LDR R0, [R4,#8]\n" 246 "CMP R0, #0\n" 247 "LDREQ R1, =0x10D\n" 248 "LDREQ R0, =0xFFC49860\n" 249 "BLEQ sub_FFC0BDB8\n" // DebugAssert 250 "MOV R0, #0\n" 251 "STR R0, [R4,#8]\n" 252 "B loc_FFC49B40\n" 252 253 ); 253 254 } //#fe 254 255 256 void __attribute__((naked,noinline)) exp_drv_task(){ 257 asm volatile( 258 "STMFD SP!, {R4-R8,LR}\n" 259 "SUB SP, SP, #0x20\n" 260 "LDR R8, =0xBB8\n" 261 "LDR R7, =0x649C\n" 262 "LDR R5, =0x3C0F0\n" 263 "MOV R0, #0\n" 264 "ADD R6, SP, #0x10\n" 265 "STR R0, [SP,#0xC]\n" 266 "loc_FFC911B4:\n" 267 "LDR R0, [R7,#0x20]\n" 268 "MOV R2, #0\n" 269 "ADD R1, SP, #0x1C\n" 270 "BL sub_FFC1764C\n" 271 "LDR R0, [SP,#0xC]\n" 272 "CMP R0, #1\n" 273 "BNE loc_FFC911FC\n" 274 "LDR R0, [SP,#0x1C]\n" 275 "LDR R0, [R0]\n" 276 "CMP R0, #0x13\n" 277 "CMPNE R0, #0x14\n" 278 "CMPNE R0, #0x15\n" 279 "BEQ loc_FFC91318\n" 280 "CMP R0, #0x27\n" 281 "BEQ loc_FFC912F0\n" 282 "ADD R1, SP, #0xC\n" 283 "MOV R0, #0\n" 284 "BL sub_FFC91144\n" 285 "loc_FFC911FC:\n" 286 "LDR R0, [SP,#0x1C]\n" 287 "LDR R1, [R0]\n" 288 "CMP R1, #0x2C\n" 289 "BNE loc_FFC9122C\n" 290 "LDR R0, [SP,#0x1C]\n" 291 "BL sub_FFC923F8\n" 292 "LDR R0, [R7,#0x1C]\n" 293 "MOV R1, #1\n" 294 "BL sub_FFC173C8\n" 295 "BL sub_FFC0BB70\n" // ExitTask 296 "ADD SP, SP, #0x20\n" 297 "LDMFD SP!, {R4-R8,PC}\n" 298 "loc_FFC9122C:\n" 299 "CMP R1, #0x2B\n" 300 "BNE loc_FFC91248\n" 301 "LDR R2, [R0,#0x88]!\n" 302 "LDR R1, [R0,#4]\n" 303 "MOV R0, R1\n" 304 "BLX R2\n" 305 "B loc_FFC9177C\n" 306 "loc_FFC91248:\n" 307 "CMP R1, #0x25\n" 308 "BNE loc_FFC91298\n" 309 "LDR R0, [R7,#0x1C]\n" 310 "MOV R1, #0x80\n" 311 "BL sub_FFC173FC\n" 312 "LDR R0, =0xFFC8DC38\n" 313 "MOV R1, #0x80\n" 314 "BL sub_FFD05880\n" 315 "LDR R0, [R7,#0x1C]\n" 316 "MOV R2, R8\n" 317 "MOV R1, #0x80\n" 318 "BL sub_FFC17300\n" 319 "TST R0, #1\n" 320 "LDRNE R1, =0xD1B\n" 321 "BNE loc_FFC912DC\n" 322 "loc_FFC91284:\n" 323 "LDR R1, [SP,#0x1C]\n" 324 "LDR R0, [R1,#0x8C]\n" 325 "LDR R1, [R1,#0x88]\n" 326 "BLX R1\n" 327 "B loc_FFC9177C\n" 328 "loc_FFC91298:\n" 329 "CMP R1, #0x26\n" 330 "BNE loc_FFC912E8\n" 331 "ADD R1, SP, #0xC\n" 332 "BL sub_FFC91144\n" 333 "LDR R0, [R7,#0x1C]\n" 334 "MOV R1, #0x100\n" 335 "BL sub_FFC173FC\n" 336 "LDR R0, =0xFFC8DC48\n" 337 "MOV R1, #0x100\n" 338 "BL sub_FFD05B08\n" 339 "LDR R0, [R7,#0x1C]\n" 340 "MOV R2, R8\n" 341 "MOV R1, #0x100\n" 342 "BL sub_FFC17300\n" 343 "TST R0, #1\n" 344 "BEQ loc_FFC91284\n" 345 "LDR R1, =0xD25\n" 346 "loc_FFC912DC:\n" 347 "LDR R0, =0xFFC8E338\n" // aExpdrv_c 348 "BL sub_FFC0BDB8\n" // DebugAssert 349 "B loc_FFC91284\n" 350 "loc_FFC912E8:\n" 351 "CMP R1, #0x27\n" 352 "BNE loc_FFC91300\n" 353 "loc_FFC912F0:\n" 354 "LDR R0, [SP,#0x1C]\n" 355 "ADD R1, SP, #0xC\n" 356 "BL sub_FFC91144\n" 357 "B loc_FFC91284\n" 358 "loc_FFC91300:\n" 359 "CMP R1, #0x2A\n" 360 "BNE loc_FFC91318\n" 361 "BL sub_FFC70F80\n" 362 "BL sub_FFC71D4C\n" 363 "BL sub_FFC717D0\n" 364 "B loc_FFC91284\n" 365 "loc_FFC91318:\n" 366 "LDR R0, [SP,#0x1C]\n" 367 "MOV R4, #1\n" 368 "LDR R1, [R0]\n" 369 "CMP R1, #0x11\n" 370 "CMPNE R1, #0x12\n" 371 "BNE loc_FFC91388\n" 372 "LDR R1, [R0,#0x7C]\n" 373 "ADD R1, R1, R1,LSL#1\n" 374 "ADD R1, R0, R1,LSL#2\n" 375 "SUB R1, R1, #8\n" 376 "LDMIA R1, {R2-R4}\n" 377 "STMIA R6, {R2-R4}\n" 378 "BL sub_FFC8FCC4\n" 379 "LDR R0, [SP,#0x1C]\n" 380 "LDR R1, [R0,#0x7C]\n" 381 "LDR R3, [R0,#0x88]\n" 382 "LDR R2, [R0,#0x8C]\n" 383 "ADD R0, R0, #4\n" 384 "BLX R3\n" 385 "LDR R0, [SP,#0x1C]\n" 386 "BL sub_FFC927D0\n" 387 "LDR R0, [SP,#0x1C]\n" 388 "LDR R1, [R0,#0x7C]\n" 389 "LDR R3, [R0,#0x90]\n" 390 "LDR R2, [R0,#0x94]\n" 391 "ADD R0, R0, #4\n" 392 "BLX R3\n" 393 "B loc_FFC916BC\n" 394 "loc_FFC91388:\n" 395 "CMP R1, #0x13\n" 396 "CMPNE R1, #0x14\n" 397 "CMPNE R1, #0x15\n" 398 "BNE loc_FFC9143C\n" 399 "ADD R3, SP, #0xC\n" 400 "MOV R2, SP\n" 401 "ADD R1, SP, #0x10\n" 402 "BL sub_FFC8FF0C\n" 403 "CMP R0, #1\n" 404 "MOV R4, R0\n" 405 "CMPNE R4, #5\n" 406 "BNE loc_FFC913D8\n" 407 "LDR R0, [SP,#0x1C]\n" 408 "MOV R2, R4\n" 409 "LDR R1, [R0,#0x7C]\n" 410 "LDR R12, [R0,#0xC]\n" 411 "LDR R3, [R0,#4]\n" 412 "MOV R0, SP\n" 413 "BLX R12\n" 414 "B loc_FFC91410\n" 415 "loc_FFC913D8:\n" 416 "LDR R0, [SP,#0x1C]\n" 417 "CMP R4, #2\n" 418 "LDR R3, [R0,#0x8C]\n" 419 "CMPNE R4, #6\n" 420 "BNE loc_FFC91424\n" 421 "LDR R12, [R0,#0x88]\n" 422 "MOV R0, SP\n" 423 "MOV R2, R4\n" 424 "MOV R1, #1\n" 425 "BLX R12\n" 426 "LDR R0, [SP,#0x1C]\n" 427 "MOV R2, SP\n" 428 "ADD R1, SP, #0x10\n" 429 "BL sub_FFC90E90\n" 430 "loc_FFC91410:\n" 431 "LDR R0, [SP,#0x1C]\n" 432 "LDR R2, [SP,#0xC]\n" 433 "MOV R1, R4\n" 434 "BL sub_FFC910E4\n" 435 "B loc_FFC916BC\n" 436 "loc_FFC91424:\n" 437 "LDR R1, [R0,#0x7C]\n" 438 "LDR R12, [R0,#0x88]\n" 439 "ADD R0, R0, #4\n" 440 "MOV R2, R4\n" 441 "BLX R12\n" 442 "B loc_FFC916BC\n" 443 "loc_FFC9143C:\n" 444 "CMP R1, #0x21\n" 445 "CMPNE R1, #0x22\n" 446 "BNE loc_FFC91488\n" 447 "LDR R1, [R0,#0x7C]\n" 448 "ADD R1, R1, R1,LSL#1\n" 449 "ADD R1, R0, R1,LSL#2\n" 450 "SUB R1, R1, #8\n" 451 "LDMIA R1, {R2-R4}\n" 452 "STMIA R6, {R2-R4}\n" 453 "BL sub_FFC8F250\n" 454 "LDR R0, [SP,#0x1C]\n" 455 "LDR R1, [R0,#0x7C]\n" 456 "LDR R3, [R0,#0x88]\n" 457 "LDR R2, [R0,#0x8C]\n" 458 "ADD R0, R0, #4\n" 459 "BLX R3\n" 460 "LDR R0, [SP,#0x1C]\n" 461 "BL sub_FFC8F540\n" 462 "B loc_FFC916BC\n" 463 "loc_FFC91488:\n" 464 "ADD R1, R0, #4\n" 465 "LDMIA R1, {R2,R3,R12}\n" 466 "STMIA R6, {R2,R3,R12}\n" 467 "LDR R1, [R0]\n" 468 "CMP R1, #0x24\n" 469 "ADDLS PC, PC, R1,LSL#2\n" 470 "B loc_FFC9169C\n" 471 "loc_FFC914A4:\n" 472 "B loc_FFC91538\n" 473 "loc_FFC914A8:\n" 474 "B loc_FFC91538\n" 475 "loc_FFC914AC:\n" 476 "B loc_FFC91540\n" 477 "loc_FFC914B0:\n" 478 "B loc_FFC91548\n" 479 "loc_FFC914B4:\n" 480 "B loc_FFC91548\n" 481 "loc_FFC914B8:\n" 482 "B loc_FFC91548\n" 483 "loc_FFC914BC:\n" 484 "B loc_FFC91538\n" 485 "loc_FFC914C0:\n" 486 "B loc_FFC91540\n" 487 "loc_FFC914C4:\n" 488 "B loc_FFC91548\n" 489 "loc_FFC914C8:\n" 490 "B loc_FFC91548\n" 491 "loc_FFC914CC:\n" 492 "B loc_FFC915A4\n" 493 "loc_FFC914D0:\n" 494 "B loc_FFC915A4\n" 495 "loc_FFC914D4:\n" 496 "B loc_FFC91690\n" 497 "loc_FFC914D8:\n" 498 "B loc_FFC91698\n" 499 "loc_FFC914DC:\n" 500 "B loc_FFC91698\n" 501 "loc_FFC914E0:\n" 502 "B loc_FFC91698\n" 503 "loc_FFC914E4:\n" 504 "B loc_FFC91698\n" 505 "loc_FFC914E8:\n" 506 "B loc_FFC9169C\n" 507 "loc_FFC914EC:\n" 508 "B loc_FFC9169C\n" 509 "loc_FFC914F0:\n" 510 "B loc_FFC9169C\n" 511 "loc_FFC914F4:\n" 512 "B loc_FFC9169C\n" 513 "loc_FFC914F8:\n" 514 "B loc_FFC9169C\n" 515 "loc_FFC914FC:\n" 516 "B loc_FFC91550\n" 517 "loc_FFC91500:\n" 518 "B loc_FFC91558\n" 519 "loc_FFC91504:\n" 520 "B loc_FFC91558\n" 521 "loc_FFC91508:\n" 522 "B loc_FFC915B0\n" 523 "loc_FFC9150C:\n" 524 "B loc_FFC915B0\n" 525 "loc_FFC91510:\n" 526 "B loc_FFC915B8\n" 527 "loc_FFC91514:\n" 528 "B loc_FFC915E8\n" 529 "loc_FFC91518:\n" 530 "B loc_FFC91618\n" 531 "loc_FFC9151C:\n" 532 "B loc_FFC91648\n" 533 "loc_FFC91520:\n" 534 "B loc_FFC91678\n" 535 "loc_FFC91524:\n" 536 "B loc_FFC91678\n" 537 "loc_FFC91528:\n" 538 "B loc_FFC9169C\n" 539 "loc_FFC9152C:\n" 540 "B loc_FFC9169C\n" 541 "loc_FFC91530:\n" 542 "B loc_FFC91680\n" 543 "loc_FFC91534:\n" 544 "B loc_FFC91688\n" 545 "loc_FFC91538:\n" 546 "BL sub_FFC8E120\n" 547 "B loc_FFC9169C\n" 548 "loc_FFC91540:\n" 549 "BL sub_FFC8E3B0\n" 550 "B loc_FFC9169C\n" 551 "loc_FFC91548:\n" 552 "BL sub_FFC8E5B4\n" 553 "B loc_FFC9169C\n" 554 "loc_FFC91550:\n" 555 "BL sub_FFC8E81C\n" 556 "B loc_FFC9169C\n" 557 "loc_FFC91558:\n" 558 "BL sub_FFC8EA10\n" 559 "B loc_FFC9169C\n" 560 //"dword_FFC91560 DCD 0xB1D \n" 561 //"dword_FFC91564 DCD 0xBAD \n" 562 //"dword_FFC91568 DCD 0xC24 \n" 563 //"dword_FFC9156C DCD 0xC32 \n" 564 //"dword_FFC91570 DCD 0xC7B \n" 565 //"dword_FFC91574 DCD 0x808 \n" 566 //"dword_FFC91578 DCD 0xC8E \n" 567 //"dword_FFC9157C DCD 0xC94 \n" 568 //"dword_FFC91580 DCD 0xCE8 \n" 569 //"dword_FFC91584 DCD 0xD0E \n" 570 //"dword_FFC91588 DCD 0xD11 \n" 571 //"off_FFC9158C DCD 0xFFC8DC58 \n" 572 //"dword_FFC91590 DCD 0xD42 \n" 573 //"dword_FFC91594 DCD 0x3C0F0 \n" 574 //"dword_FFC91598 DCD 0xD1B \n" 575 //"off_FFC9159C DCD 0xFFC8DC48 \n" 576 //"dword_FFC915A0 DCD 0xD25 \n" 577 "loc_FFC915A4:\n" 578 "BL sub_FFC8EC78_my\n" //------------> 579 "MOV R4, #0\n" 580 "B loc_FFC9169C\n" 581 "loc_FFC915B0:\n" 582 "BL sub_FFC8EDB4\n" 583 "B loc_FFC9169C\n" 584 "loc_FFC915B8:\n" 585 "LDRH R1, [R0,#4]\n" 586 "STRH R1, [SP,#0x10]\n" 587 "LDRH R1, [R5,#2]\n" 588 "STRH R1, [SP,#0x12]\n" 589 "LDRH R1, [R5,#4]\n" 590 "STRH R1, [SP,#0x14]\n" 591 "LDRH R1, [R5,#6]\n" 592 "STRH R1, [SP,#0x16]\n" 593 "LDRH R1, [R0,#0xC]\n" 594 "STRH R1, [SP,#0x18]\n" 595 "BL sub_FFC9246C\n" 596 "B loc_FFC9169C\n" 597 "loc_FFC915E8:\n" 598 "LDRH R1, [R0,#4]\n" 599 "STRH R1, [SP,#0x10]\n" 600 "LDRH R1, [R5,#2]\n" 601 "STRH R1, [SP,#0x12]\n" 602 "LDRH R1, [R5,#4]\n" 603 "STRH R1, [SP,#0x14]\n" 604 "LDRH R1, [R5,#6]\n" 605 "STRH R1, [SP,#0x16]\n" 606 "LDRH R1, [R5,#8]\n" 607 "STRH R1, [SP,#0x18]\n" 608 "BL sub_FFC925EC\n" 609 "B loc_FFC9169C\n" 610 "loc_FFC91618:\n" 611 "LDRH R1, [R5]\n" 612 "STRH R1, [SP,#0x10]\n" 613 "LDRH R1, [R0,#6]\n" 614 "STRH R1, [SP,#0x12]\n" 615 "LDRH R1, [R5,#4]\n" 616 "STRH R1, [SP,#0x14]\n" 617 "LDRH R1, [R5,#6]\n" 618 "STRH R1, [SP,#0x16]\n" 619 "LDRH R1, [R5,#8]\n" 620 "STRH R1, [SP,#0x18]\n" 621 "BL sub_FFC92698\n" 622 "B loc_FFC9169C\n" 623 "loc_FFC91648:\n" 624 "LDRH R1, [R5]\n" 625 "STRH R1, [SP,#0x10]\n" 626 "LDRH R1, [R5,#2]\n" 627 "STRH R1, [SP,#0x12]\n" 628 "LDRH R1, [R5,#4]\n" 629 "STRH R1, [SP,#0x14]\n" 630 "LDRH R1, [R5,#6]\n" 631 "STRH R1, [SP,#0x16]\n" 632 "LDRH R1, [R0,#0xC]\n" 633 "STRH R1, [SP,#0x18]\n" 634 "BL sub_FFC92738\n" 635 "B loc_FFC9169C\n" 636 "loc_FFC91678:\n" 637 "BL sub_FFC8F028\n" 638 "B loc_FFC9169C\n" 639 "loc_FFC91680:\n" 640 "BL sub_FFC8F644\n" 641 "B loc_FFC9169C\n" 642 "loc_FFC91688:\n" 643 "BL sub_FFC8F87C\n" 644 "B loc_FFC9169C\n" 645 "loc_FFC91690:\n" 646 "BL sub_FFC8F9F4\n" 647 "B loc_FFC9169C\n" 648 "loc_FFC91698:\n" 649 "BL sub_FFC8FB8C\n" 650 "loc_FFC9169C:\n" 651 "LDR R0, [SP,#0x1C]\n" 652 "LDR R1, [R0,#0x7C]\n" 653 "LDR R3, [R0,#0x88]\n" 654 "LDR R2, [R0,#0x8C]\n" 655 "ADD R0, R0, #4\n" 656 "BLX R3\n" 657 "CMP R4, #1\n" 658 "BNE loc_FFC91704\n" 659 "loc_FFC916BC:\n" 660 "LDR R0, [SP,#0x1C]\n" 661 "MOV R2, #0xC\n" 662 "LDR R1, [R0,#0x7C]\n" 663 "ADD R1, R1, R1,LSL#1\n" 664 "ADD R0, R0, R1,LSL#2\n" 665 "SUB R4, R0, #8\n" 666 "LDR R0, =0x3C0F0\n" 667 "ADD R1, SP, #0x10\n" 668 "BL sub_FFE58B0C\n" 669 "LDR R0, =0x3C0FC\n" 670 "MOV R2, #0xC\n" 671 "ADD R1, SP, #0x10\n" 672 "BL sub_FFE58B0C\n" 673 "LDR R0, =0x3C108\n" 674 "MOV R2, #0xC\n" 675 "MOV R1, R4\n" 676 "BL sub_FFE58B0C\n" 677 "B loc_FFC9177C\n" 678 "loc_FFC91704:\n" 679 "LDR R0, [SP,#0x1C]\n" 680 "LDR R0, [R0]\n" 681 "CMP R0, #0xB\n" 682 "BNE loc_FFC9174C\n" 683 "MOV R3, #0\n" 684 "STR R3, [SP]\n" 685 "MOV R3, #1\n" 686 "MOV R2, #1\n" 687 "MOV R1, #1\n" 688 "MOV R0, #0\n" 689 "BL sub_FFC8DF28\n" 690 "MOV R3, #0\n" 691 "STR R3, [SP]\n" 692 "MOV R3, #1\n" 693 "MOV R2, #1\n" 694 "MOV R1, #1\n" 695 "MOV R0, #0\n" 696 "B loc_FFC91778\n" 697 "loc_FFC9174C:\n" 698 "MOV R3, #1\n" 699 "MOV R2, #1\n" 700 "MOV R1, #1\n" 701 "MOV R0, #1\n" 702 "STR R3, [SP]\n" 703 "BL sub_FFC8DF28\n" 704 "MOV R3, #1\n" 705 "MOV R2, #1\n" 706 "MOV R1, #1\n" 707 "MOV R0, #1\n" 708 "STR R3, [SP]\n" 709 "loc_FFC91778:\n" 710 "BL sub_FFC8E068\n" 711 "loc_FFC9177C:\n" 712 "LDR R0, [SP,#0x1C]\n" 713 "BL sub_FFC923F8\n" 714 "B loc_FFC911B4\n" 715 ); 716 } 717 718 void __attribute__((naked,noinline)) sub_FFC8EC78_my(){ 719 asm volatile( 720 "STMFD SP!, {R4-R8,LR}\n" 721 "LDR R7, =0x649C\n" 722 "MOV R4, R0\n" 723 "LDR R0, [R7,#0x1C]\n" 724 "MOV R1, #0x3E\n" 725 "BL sub_FFC173FC\n" 726 "LDRSH R0, [R4,#4]\n" 727 "MOV R2, #0\n" 728 "MOV R1, #0\n" 729 "BL sub_FFC8DCBC\n" 730 "MOV R6, R0\n" 731 "LDRSH R0, [R4,#6]\n" 732 "BL sub_FFC8DDC8\n" 733 "LDRSH R0, [R4,#8]\n" 734 "BL sub_FFC8DE20\n" 735 "LDRSH R0, [R4,#0xA]\n" 736 "BL sub_FFC8DE78\n" 737 "LDRSH R0, [R4,#0xC]\n" 738 "BL sub_FFC8DED0\n" 739 "MOV R5, R0\n" 740 "LDR R0, [R4]\n" 741 "LDR R8, =0x3C108\n" 742 "CMP R0, #0xB\n" 743 "MOVEQ R6, #0\n" 744 "MOVEQ R5, #0\n" 745 "BEQ loc_FFC8ED08\n" 746 "CMP R6, #1\n" 747 "BNE loc_FFC8ED08\n" 748 "LDRSH R0, [R4,#4]\n" 749 "LDR R1, =0xFFC8DC28\n" 750 "MOV R2, #2\n" 751 "BL sub_FFD059D4\n" 752 "STRH R0, [R4,#4]\n" 753 "MOV R0, #0\n" 754 "STR R0, [R7,#0x28]\n" 755 "B loc_FFC8ED10\n" 756 "loc_FFC8ED08:\n" 757 "LDRH R0, [R8]\n" 758 "STRH R0, [R4,#4]\n" 759 "loc_FFC8ED10:\n" 760 "CMP R5, #1\n" 761 "LDRNEH R0, [R8,#8]\n" 762 "BNE loc_FFC8ED2C\n" 763 "LDRSH R0, [R4,#0xC]\n" 764 "MOV R2, #0x20\n" 765 "LDR R1, =0xFFC8DCAC\n" // "ADR R1, 0xFFC8DCAC\n" 766 "BL sub_FFC92428\n" 767 "loc_FFC8ED2C:\n" 768 "STRH R0, [R4,#0xC]\n" 769 "LDRSH R0, [R4,#6]\n" 770 "BL sub_FFC70CCC_my\n" //--------------> 771 "LDRSH R0, [R4,#8]\n" 772 "MOV R1, #1\n" 773 "BL sub_FFC714C8\n" 774 "MOV R1, #0\n" 775 "ADD R0, R4, #8\n" 776 "BL sub_FFC71550\n" 777 "LDRSH R0, [R4,#0xE]\n" 778 "BL sub_FFC84BF8\n" 779 "LDR R4, =0xBB8\n" 780 "CMP R6, #1\n" 781 "BNE loc_FFC8ED84\n" 782 "LDR R0, [R7,#0x1C]\n" 783 "MOV R2, R4\n" 784 "MOV R1, #2\n" 785 "BL sub_FFC17300\n" 786 "TST R0, #1\n" 787 "LDRNE R1, =0x532\n" 788 "LDRNE R0, =0xFFC8E338\n" // aExpdrv_c 789 "BLNE sub_FFC0BDB8\n" // DebugAssert 790 "loc_FFC8ED84:\n" 791 "CMP R5, #1\n" 792 "LDMNEFD SP!, {R4-R8,PC}\n" 793 "LDR R0, [R7,#0x1C]\n" 794 "MOV R2, R4\n" 795 "MOV R1, #0x20\n" 796 "BL sub_FFC17300\n" 797 "TST R0, #1\n" 798 "LDRNE R1, =0x537\n" 799 "LDRNE R0, =0xFFC8E338\n" // aExpdrv_c 800 "LDMNEFD SP!, {R4-R8,LR}\n" 801 "BNE sub_FFC0BDB8\n" // DebugAssert 802 "LDMFD SP!, {R4-R8,PC}\n" 803 ); 804 } 805 806 void __attribute__((naked,noinline)) sub_FFC70CCC_my(){ 807 asm volatile( 808 "STMFD SP!, {R4-R6,LR}\n" 809 "LDR R5, =0x5F74\n" 810 "MOV R4, R0\n" 811 "LDR R0, [R5,#4]\n" 812 "CMP R0, #1\n" 813 "LDRNE R1, =0x16D\n" 814 "LDRNE R0, =0xFFC70A64\n" // aShutter_c, "ADRNE R0, 0xFFC70A64\n" 815 "BLNE sub_FFC0BDB8\n" // DebugAssert 816 "CMN R4, #0xC00\n" 817 "LDREQSH R4, [R5,#2]\n" 818 "CMN R4, #0xC00\n" 819 "LDREQ R1, =0x173\n" 820 "LDREQ R0, =0xFFC70A64\n" // aShutter_c, "ADREQ R0, 0xFFC70A64\n" 821 "STRH R4, [R5,#2]\n" 822 "BLEQ sub_FFC0BDB8\n" // DebugAssert 823 "MOV R0, R4\n" 824 // "BL sub_FFD71FBC\n" //- 825 "BL apex2us\n" //+ 826 "MOV R4, R0\n" 827 // "BL nullsub_67\n" 828 "MOV R0, R4\n" 829 "BL sub_FFCA4090\n" 830 "TST R0, #1\n" 831 "LDMNEFD SP!, {R4-R6,LR}\n" 832 "MOVNE R1, #0x178\n" 833 "LDRNE R0, =0xFFC70A64\n" // aShutter_c, "ADRNE R0, 0xFFC70A64\n" 834 "BNE sub_FFC0BDB8\n" // DebugAssert 835 "LDMFD SP!, {R4-R6,PC}\n" 836 ); 837 } -
trunk/platform/a580/sub/101b/lib.c
r1136 r1308 18 18 long hook_raw_size() 19 19 { 20 return 0x 9DCCE0; //OK20 return 0x009e6fc4; // Corrected! from 0x009dcce0 (from stubs_entry.S) 21 21 } 22 22 … … 37 37 void *vid_get_bitmap_fb() 38 38 { 39 return (void*)0x10361000; //OK 0xFFCA71939 return (void*)0x10361000; // OK! 40 40 } 41 41 42 42 void *vid_get_viewport_fb() 43 43 { 44 return (void*)0x10659E80; // 0xFFE364B044 return (void*)0x10659E80; // OK! 45 45 } 46 46 … … 67 67 char *camera_jpeg_count_str() 68 68 { 69 return (char*)0x 48AE0; // near a999969 return (char*)0x00048AE0; // OK! 70 70 } 71 71 … … 73 73 74 74 long vid_get_bitmap_buffer_height() { return 240; } 75 -
trunk/platform/a580/sub/101b/makefile.inc
r1136 r1308 1 #317 62 PLATFORMID=1266 21 #3177 2 PLATFORMID=12663 3 3 4 4 PLATFORMOS=dryos 5 5 6 6 MEMBASEADDR=0x1900 7 ROMBASEADDR=0xffc00000 7 8 RESTARTSTART=0x63000 9 8 10 MEMISOSTART=0xA47E0 9 ROMBASEADDR=0xffc0000010 11 11 12 12 PLFLAGS=-DMEMBASEADDR=$(MEMBASEADDR) -DMEMISOSTART=$(MEMISOSTART) -DMEMISOSIZE=$(MEMISOSIZE) … … 15 15 NEED_ENCODED_DISKBOOT=1 16 16 KEYSYS=d3enc 17 -
trunk/platform/a580/sub/101b/movie_rec.c
r1136 r1308 1 void __attribute__((naked,noinline)) sub_FFC5E380_my(){ 1 /* 2 void __attribute__((naked,noinline)) sub_FFC5EA24_my() { 2 3 asm volatile( 3 "LDR R12, =0x201E\n" 4 "STMFD SP!, {R4,LR}\n" 5 "CMP R0, R12\n" 6 "BEQ loc_FFC5E440\n" 7 "BGT loc_FFC5E3DC\n" 8 "LDR R12, =0x2004\n" 9 "CMP R0, R12\n" 10 "BEQ loc_FFC5E448\n" 11 "BGT loc_FFC5E3C4\n" 12 "SUB R12, R0, #0x1000\n" 13 "SUBS R12, R12, #0xA9\n" 14 "SUBNE R12, R0, #0x1000\n" 15 "SUBNES R12, R12, #0xAD\n" 16 "SUBNE R12, R0, #0x1000\n" 17 "SUBNES R12, R12, #0xAF\n" 18 "BNE loc_FFC5E458\n" 19 "B loc_FFC5E440\n" 20 "loc_FFC5E3C4:\n" 21 "SUB R12, R0, #0x2000\n" 22 "SUBS R12, R12, #5\n" 23 "SUBNE R12, R0, #0x2000\n" 24 "SUBNES R12, R12, #0x1D\n" 25 "BNE loc_FFC5E458\n" 26 "B loc_FFC5E440\n" 27 "loc_FFC5E3DC:\n" 28 "LDR R12, =0x5004\n" 29 "CMP R0, R12\n" 30 "BEQ loc_FFC5E440\n" 31 "BGT loc_FFC5E408\n" 32 "SUB R12, R0, #0x3000\n" 33 "SUBS R12, R12, #0xA\n" 34 "BEQ loc_FFC5E43C\n" 35 "SUB R12, R0, #0x5000\n" 36 "SUBS R12, R12, #1\n" 37 "BNE loc_FFC5E458\n" 38 "B loc_FFC5E440\n" 39 "loc_FFC5E408:\n" 40 "SUB R12, R0, #0x5000\n" 41 "SUBS R12, R12, #6\n" 42 "BEQ loc_FFC5E440\n" 43 "SUB R12, R0, #0x5000\n" 44 "SUBS R12, R12, #7\n" 45 "BNE loc_FFC5E458\n" 46 "BL sub_FFC1C7EC\n" 47 "LDR R1, =0x59EC\n" 48 "LDR R0, [R1,#0x10]\n" 49 "CMP R0, #7\n" 50 "LDREQ R0, [R1,#0x18]\n" 51 "BLEQ sub_FFC5EBE0\n" 52 "B loc_FFC5E450\n" 53 "loc_FFC5E43C:\n" 54 "BL sub_FFC1BDA4\n" 55 "loc_FFC5E440:\n" 56 "LDMFD SP!, {R4,LR}\n" 57 "B sub_FFC5E1E0_my\n" //-------------> 58 "loc_FFC5E448:\n" 59 "BL sub_FFC5D208\n" 60 "BL sub_FFC5DC74\n" 61 "loc_FFC5E450:\n" 62 "MOV R0, #0\n" 63 "LDMFD SP!, {R4,PC}\n" 64 "loc_FFC5E458:\n" 65 "MOV R0, #1\n" 66 "LDMFD SP!, {R4,PC}\n" 4 "LDR R12, =0x201E\n" 5 "STMFD SP!, {R4,LR}\n" 6 "CMP R0, R12\n" 7 "BEQ loc_FFC5EAE4\n" 8 "BGT loc_FFC5EA80\n" 9 "LDR R12, =0x2004\n" 10 "CMP R0, R12\n" 11 "BEQ loc_FFC5EAEC\n" 12 "BGT loc_FFC5EA68\n" 13 "SUB R12, R0, #0x1000\n" 14 "SUBS R12, R12, #0xA9\n" 15 "SUBNE R12, R0, #0x1000\n" 16 "SUBNES R12, R12, #0xAD\n" 17 "SUBNE R12, R0, #0x1000\n" 18 "SUBNES R12, R12, #0xAF\n" 19 "BNE loc_FFC5EAFC\n" 20 "B loc_FFC5EAE4\n" 21 "loc_FFC5EA68:\n" 22 "SUB R12, R0, #0x2000\n" 23 "SUBS R12, R12, #5\n" 24 "SUBNE R12, R0, #0x2000\n" 25 "SUBNES R12, R12, #0x1D\n" 26 "BNE loc_FFC5EAFC\n" 27 "B loc_FFC5EAE4\n" 28 "loc_FFC5EA80:\n" 29 "LDR R12, =0x5004\n" 30 "CMP R0, R12\n" 31 "BEQ loc_FFC5EAE4\n" 32 "BGT loc_FFC5EAAC\n" 33 "SUB R12, R0, #0x3000\n" 34 "SUBS R12, R12, #0xA\n" 35 "BEQ loc_FFC5EAE0\n" 36 "SUB R12, R0, #0x5000\n" 37 "SUBS R12, R12, #1\n" 38 "BNE loc_FFC5EAFC\n" 39 "B loc_FFC5EAE4\n" 40 "loc_FFC5EAAC:\n" 41 "SUB R12, R0, #0x5000\n" 42 "SUBS R12, R12, #6\n" 43 "BEQ loc_FFC5EAE4\n" 44 "SUB R12, R0, #0x5000\n" 45 "SUBS R12, R12, #7\n" 46 "BNE loc_FFC5EAFC\n" 47 "BL sub_FFC1A5E8\n" 48 "LDR R1, =0x5738\n" 49 "LDR R0, [R1,#0x10]\n" 50 "CMP R0, #7\n" 51 "LDREQ R0, [R1,#0x18]\n" 52 "BLEQ sub_FFC5F394\n" 53 "B loc_FFC5EAF4\n" 54 "loc_FFC5EAE0:\n" 55 "BL sub_FFC19B98\n" 56 "loc_FFC5EAE4:\n" 57 "LDMFD SP!, {R4,LR}\n" 58 //B sub_FFC5E884 59 "B sub_FFC5E884_my\n" //-------------> 60 "loc_FFC5EAEC:\n" 61 "BL sub_FFC5D914\n" 62 "BL sub_FFC5E338\n" 63 "loc_FFC5EAF4:\n" 64 "MOV R0, #0\n" 65 "LDMFD SP!, {R4,PC}\n" 66 "loc_FFC5EAFC:\n" 67 "MOV R0, #1\n" 68 "LDMFD SP!, {R4,PC}\n" 69 ); 70 } //#fe 71 72 void __attribute__((naked,noinline)) sub_FFC5E884_my(){ //#fs 73 asm volatile( 74 "STMFD SP!, {R4-R6,LR}\n" 75 "BL sub_FFC5F500\n" 76 "CMP R0, #1\n" 77 "BLEQ sub_FFC5F5E8\n" 78 "LDR R4, =0x5738\n" 79 "MOV R5, #1\n" 80 "LDR R0, [R4,#0x24]\n" 81 "CMP R0, #0\n" 82 "LDRNE R0, [R4,#0x4C]\n" 83 "CMPNE R0, #0\n" 84 "BEQ loc_FFC5E8F0\n" 85 "BL sub_FFC5F500\n" 86 "CMP R0, #1\n" 87 "BNE loc_FFC5E8F0\n" 88 "BL sub_FFC5F5E8\n" 89 "LDR R0, [R4,#0x78]\n" 90 "CMP R0, #0\n" 91 "BNE loc_FFC5E8F0\n" 92 "LDR R1, =0xFFC5EA04\n" // aAcStartupshowi ; "AC:StartupShowInfo" 93 "MOV R0, #0x20\n" 94 "BL sub_FFC5556C\n" 95 "BL sub_FFD70AF0\n" 96 "BL sub_FFD70A80\n" 97 "MOV R1, #0\n" 98 "MOV R0, #0x51\n" 99 "BL sub_FFC6695C\n" 100 "STR R5, [R4,#0x78]\n" 101 "loc_FFC5E8F0:\n" 102 "BL sub_FFC5F500\n" 103 "CMP R0, #1\n" 104 "BNE loc_FFC5E93C\n" 105 "LDR R0, [R4,#0x44]\n" 106 "CMP R0, #0\n" 107 "BEQ loc_FFC5E93C\n" 108 "LDR R0, [R4,#0x74]\n" 109 "CMP R0, #0\n" 110 "BNE loc_FFC5E93C\n" 111 "LDR R1, =0xFFC5EA18\n" // aAcDispshot ; "AC:DispShot" 112 "MOV R0, #0x20\n" 113 "BL sub_FFC5556C\n" 114 "MOV R1, #0\n" 115 "MOV R0, #0x8C\n" 116 "BL sub_FFC6695C\n" 117 "BL sub_FFC64D10\n" 118 "MOV R0, #0x21\n" 119 "BL sub_FFC6699C\n" 120 "STR R5, [R4,#0x74]\n" 121 "loc_FFC5E93C:\n" 122 "LDR R0, [R4,#0x38]\n" 123 "CMP R0, #0\n" 124 "LDRNE R0, [R4,#0x3C]\n" 125 "CMPNE R0, #0\n" 126 "LDRNE R0, [R4,#0x44]\n" 127 "CMPNE R0, #0\n" 128 "LDRNE R0, [R4,#0x48]\n" 129 "CMPNE R0, #0\n" 130 "LDRNE R0, [R4,#0x1C]\n" 131 "LDRNE R1, [R4,#0x20]\n" 132 "ORRNES R0, R0, R1\n" 133 "BEQ loc_FFC5E978\n" 134 "BL sub_FFC5E1D8\n" 135 "BL sub_FFC5E338\n" 136 "B loc_FFC5E9A0\n" 137 "loc_FFC5E978:\n" 138 "LDR R0, [R4,#0x58]\n" 139 "CMP R0, #0\n" 140 "BEQ loc_FFC5E9A8\n" 141 "BL sub_FFC5E220\n" 142 "CMP R0, #1\n" 143 "BNE loc_FFC5E9A8\n" 144 "BL sub_FFC60B90\n" 145 "BL sub_FFC60B4C\n" 146 "MOV R0, #0\n" 147 "BL sub_FFC5F3D0\n" 148 "loc_FFC5E9A0:\n" 149 "MOV R0, #0\n" 150 "LDMFD SP!, {R4-R6,PC}\n" 151 "loc_FFC5E9A8:\n" 152 "BL sub_FFC5E220\n" 153 "CMP R0, #1\n" 154 "BNE loc_FFC5E9D0\n" 155 "LDR R0, [R4,#0x7C]\n" 156 "CMP R0, #0\n" 157 "BLEQ sub_FFC5F62C_my\n" //-------------> 158 "MOV R0, #0\n" 159 "STR R0, [R4,#0x70]\n" 160 "STR R0, [R4,#0x74]\n" 161 "STR R0, [R4,#0x78]\n" 162 "loc_FFC5E9D0:\n" 163 "MOV R0, #1\n" 164 "LDMFD SP!, {R4-R6,PC}\n" 165 ); 166 } // #fe 167 168 169 170 171 172 173 void __attribute__((naked,noinline)) sub_FFC5F62C_my(){ 174 asm volatile( 175 "STMFD SP!, {R4,LR}\n" 176 "LDR R1, =0xFFC5F84C\n" // aAcEntryrecboot ; "AC:EntryRecBoot" 177 "MOV R0, #0x20\n" 178 "BL sub_FFC5556C\n" 179 "BL sub_FFC19DB4\n" 180 "BL sub_FFC5F950\n" 181 "BL sub_FFC62BE0_my\n" // Continue here 182 "MOV R0, #1\n" 183 "BL sub_FFC5DCB4\n" 184 "BL sub_FFC5E15C\n" 185 "LDMFD SP!, {R4,LR}\n" 186 "B sub_FFC5E3CC\n" 187 ); 188 } // #fe 189 190 191 192 193 // Note: One sub_ missing from this firmware compared to A720 194 void __attribute__((naked,noinline)) sub_FFC62BE0_my(){ 195 asm volatile( 196 "STMFD SP!, {R4-R6,LR}\n" 197 "LDR R1, =0xFFC62DEC\n" // aStartrecmode ; "StartRecMode" 198 "MOV R0, #0x20\n" 199 "BL sub_FFC5556C\n" 200 "LDR R4, =0x59C0\n" 201 "MOV R0, #6\n" 202 "MOV R5, #1\n" 203 "STR R0, [R4,#0x5C]\n" 204 "STR R5, [R4,#0x10]\n" 205 "BL sub_FFD2D98C\n" 206 "BL sub_FFD33794\n" 207 "BL sub_FFD3206C\n" 208 // One sub_ missing from this firmware compared to A720 209 "BL sub_FFC63000_my\n" //-------------> 210 "BL sub_FFD3B758\n" 211 "MOV R0, #1\n" 212 "STR R5, [R4,#0x18]\n" 213 "BL sub_FFC630B0\n" 214 "MOV R0, #3\n" 215 "STR R0, [R4,#0x60]\n" 216 "LDR R1, [R4,#0x64]\n" 217 "LDMFD SP!, {R4-R6,LR}\n" 218 "MOV R0, #0\n" 219 "BX R1\n" 220 ); 221 } //#fe 222 223 224 225 226 227 228 229 void __attribute__((naked,noinline)) sub_FFC63000_my(){ 230 asm volatile( 231 "STMFD SP!, {R4,LR}\n" 232 "LDR R0, =0x855\n" 233 "BL sub_FFD2A1E8\n" 234 "BL sub_FFC19B98\n" 235 "BL sub_FFC629A8_my\n" //-------------> 236 "BL sub_FFD2D294\n" 237 "BL sub_FFD1CFBC\n" 238 "BL sub_FFD35574\n" 239 "BL sub_FFD35990\n" 240 "BL sub_FFD3ADFC\n" 241 "BL sub_FFD35BAC\n" 242 "BL sub_FFD35774\n" 243 "BL sub_FFD33EC4\n" 244 "BL sub_FFD3AA5C\n" 245 "BL sub_FFC66A3C\n" // taskcreate_DSITask 246 "LDMFD SP!, {R4,LR}\n" 247 "B sub_FFC6686C\n" // taskcreate_FaceFrame 248 249 ); 250 } //#fe 251 252 253 254 255 256 257 258 259 // branches are together 260 261 void __attribute__((naked,noinline)) sub_FFC629A8_my(){ 262 asm volatile( 263 "STMFD SP!, {R4,LR}\n" 264 "LDR R0, =0x5A28\n" 265 //ADR R1, sub_FFC627A8 266 "LDR R1, =sub_FFC627A8_my\n" //-------------> (branch 1) 267 "BL sub_FFC671F0\n" 268 "LDR R1, =0x59C0\n" 269 //ADR R0, sub_FFC628D0 270 "LDR R0, =sub_FFC628D0_my\n" //-------------> (branch 2) 271 "STR R0, [R1,#0x64]\n" 272 "LDMFD SP!, {R4,PC}\n" 67 273 ); 68 274 } … … 70 276 71 277 72 73 74 75 void __attribute__((naked,noinline)) sub_FFC5E1E0_my(){ 76 asm volatile( 77 "STMFD SP!, {R4-R6,LR}\n" 78 "BL sub_FFC5EDD0\n" 79 "CMP R0, #1\n" 80 "BLEQ sub_FFC5EE5C\n" 81 "LDR R4, =0x59EC\n" 82 "MOV R5, #1\n" 83 "LDR R0, [R4,#0x24]\n" 84 "CMP R0, #0\n" 85 "LDRNE R0, [R4,#0x4C]\n" 86 "CMPNE R0, #0\n" 87 "BEQ loc_FFC5E24C\n" 88 "BL sub_FFC5EDD0\n" 89 "CMP R0, #1\n" 90 "BNE loc_FFC5E24C\n" 91 "BL sub_FFC5EE5C\n" 92 "LDR R0, [R4,#0x78]\n" 93 "CMP R0, #0\n" 94 "BNE loc_FFC5E24C\n" 95 "LDR R1, =0xFFC5E360\n" 96 "MOV R0, #0x20\n" 97 "BL sub_FFC57EC4\n" 98 "BL sub_FFD621F8\n" 99 "BL sub_FFD62184\n" 100 "MOV R1, #0\n" 101 "MOV R0, #0x51\n" 102 "BL sub_FFC661AC\n" 103 "STR R5, [R4,#0x78]\n" 104 "loc_FFC5E24C:\n" 105 "BL sub_FFC5EDD0\n" 106 "CMP R0, #1\n" 107 "BNE loc_FFC5E298\n" 108 "LDR R0, [R4,#0x44]\n" 109 "CMP R0, #0\n" 110 "BEQ loc_FFC5E298\n" 111 "LDR R0, [R4,#0x74]\n" 112 "CMP R0, #0\n" 113 "BNE loc_FFC5E298\n" 114 "LDR R1, =0xFFC5E374\n" 115 "MOV R0, #0x20\n" 116 "BL sub_FFC57EC4\n" 117 "MOV R1, #0\n" 118 "MOV R0, #0x8C\n" 119 "BL sub_FFC661AC\n" 120 "BL sub_FFC64550\n" 121 "MOV R0, #0x21\n" 122 "BL sub_FFC661EC\n" 123 "STR R5, [R4,#0x74]\n" 124 "loc_FFC5E298:\n" 125 "LDR R0, [R4,#0x38]\n" 126 "CMP R0, #0\n" 127 "LDRNE R0, [R4,#0x3C]\n" 128 "CMPNE R0, #0\n" 129 "LDRNE R0, [R4,#0x44]\n" 130 "CMPNE R0, #0\n" 131 "LDRNE R0, [R4,#0x48]\n" 132 "CMPNE R0, #0\n" 133 "LDRNE R0, [R4,#0x1C]\n" 134 "LDRNE R1, [R4,#0x20]\n" 135 "ORRNES R0, R0, R1\n" 136 "BEQ loc_FFC5E2D4\n" 137 "BL sub_FFC5DB14\n" 138 "BL sub_FFC5DC74\n" 139 "B loc_FFC5E2FC\n" 140 "loc_FFC5E2D4:\n" 141 "LDR R0, [R4,#0x58]\n" 142 "CMP R0, #0\n" 143 "BEQ loc_FFC5E304\n" 144 "BL sub_FFC5DB5C\n" 145 "CMP R0, #1\n" 146 "BNE loc_FFC5E304\n" 147 "BL sub_FFC6039C\n" 148 "BL sub_FFC60358\n" 149 "BL sub_FFC15EF0\n" 150 "BL sub_FFC5D664\n" 151 "loc_FFC5E2FC:\n" 152 "MOV R0, #0\n" 153 "LDMFD SP!, {R4-R6,PC}\n" 154 "loc_FFC5E304:\n" 155 "BL sub_FFC5DB5C\n" 156 "CMP R0, #1\n" 157 "BNE loc_FFC5E32C\n" 158 "LDR R0, [R4,#0x7C]\n" 159 "CMP R0, #0\n" 160 "BLEQ sub_FFC5EEA0_my\n" //-------------> 161 "MOV R0, #0\n" 162 "STR R0, [R4,#0x70]\n" 163 "STR R0, [R4,#0x74]\n" 164 "STR R0, [R4,#0x78]\n" 165 "loc_FFC5E32C:\n" 166 "MOV R0, #1\n" 167 "LDMFD SP!, {R4-R6,PC}\n" 168 ); 169 } 170 171 172 173 174 175 176 void __attribute__((naked,noinline)) sub_FFC5EEA0_my(){ 177 asm volatile( 178 "STMFD SP!, {R4,LR}\n" 179 "LDR R1, =0xFFC5EF48\n" 278 //branch 1 279 280 void __attribute__((naked,noinline)) sub_FFC627A8_my(){ 281 asm volatile( 282 "STMFD SP!, {R3-R5,LR}\n" 283 "LDR R4, =0x59C0\n" 284 "LDR R0, [R4,#0x3C]\n" 285 "CMP R0, #0\n" 286 "BLEQ sub_FFD1BD20\n" 287 "LDR R0, [R4,#0x30]\n" 288 "CMP R0, #1\n" 289 "BNE loc_FFC627E8\n" 290 "LDR R1, =0xFFC628B0\n" // a__preparecaptu ; "__PrepareCaptureModeChange__" 180 291 "MOV R0, #0x20\n" 181 "BL sub_FFC57EC4\n" 182 "BL sub_FFC1BFB8\n" 183 "BL sub_FFC5F208\n" 184 "BL sub_FFC6226C_my\n" //-------------> 185 "MOV R0, #1\n" 186 "BL sub_FFC5D5B0\n" 187 "BL sub_FFC5DA98\n" 188 "LDMFD SP!, {R4,LR}\n" 189 "B sub_FFC5DD0C\n" 190 ); 191 } 192 193 194 195 196 197 void __attribute__((naked,noinline)) sub_FFC6226C_my(){ 198 asm volatile( 199 "STMFD SP!, {R4-R6,LR}\n" 200 "LDR R1, =0xFFC62460\n" 201 "MOV R0, #0x20\n" 202 "BL sub_FFC57EC4\n" 203 "LDR R4, =0x5C6C\n" 204 "MOV R0, #6\n" 205 "MOV R5, #1\n" 206 "STR R0, [R4,#0x5C]\n" 207 "STR R5, [R4,#0x10]\n" 208 "BL sub_FFD1DE70\n" 209 "BL sub_FFD2CECC\n" 210 "BL sub_FFD2472C\n" 211 "BL sub_FFD22580\n" 212 "BL sub_FFC627E4_my\n" //-------------> 213 "BL sub_FFD2D800\n" 214 "BL sub_FFD2CD74\n" 215 "MOV R0, #1\n" 216 "STR R5, [R4,#0x18]\n" 217 "BL sub_FFC628BC\n" 218 "MOV R0, #3\n" 219 "STR R0, [R4,#0x68]\n" 220 "LDR R1, [R4,#0x6C]\n" 221 "LDMFD SP!, {R4-R6,LR}\n" 222 "MOV R0, #0\n" 223 "BX R1\n" 224 ); 225 } 226 227 228 229 230 231 void __attribute__((naked,noinline)) sub_FFC627E4_my(){ 232 asm volatile( 233 "STMFD SP!, {R4,LR}\n" 234 "MOV R0, #1\n" 235 "BL sub_FFD25000\n" 236 "LDR R0, =0x855\n" 237 "BL sub_FFD19A30\n" 238 "BL sub_FFC1BDA4\n" 239 "BL sub_FFC62044_my\n" //--------------> 240 "BL sub_FFD1D768\n" 241 "BL sub_FFD178B0\n" 242 "BL sub_FFD25434\n" 243 "BL sub_FFD25A10\n" 244 "BL sub_FFD25C00\n" 245 "BL sub_FFD2D25C\n" 246 "BL sub_FFD2CA4C\n" 247 "BL sub_FFD2560C\n" 248 "BL sub_FFD2C498\n" 249 "BL sub_FFD24E60\n" 250 "BL sub_FFD2BCD0\n" 251 "BL sub_FFD2333C\n" 252 "BL sub_FFC66320\n" 253 "LDMFD SP!, {R4,LR}\n" 254 "B sub_FFC65FE8\n" 255 ); 256 } 257 258 259 260 261 // branches are together 262 263 void __attribute__((naked,noinline)) sub_FFC62044_my(){ 264 asm volatile( 265 "STMFD SP!, {R4,LR}\n" 266 "LDR R0, =0x5CDC\n" 267 "LDR R1, =sub_FFC61E1C_my\n" //-------------> 268 "BL sub_FFC67B64\n" 269 "LDR R1, =0x5C6C\n" 270 "LDR R0, =sub_FFC61F54_my\n" //-------------> 271 "STR R0, [R1,#0x6C]\n" 272 "LDMFD SP!, {R4,PC}\n" 273 ); 274 } 275 276 277 278 //branch 1 279 280 void __attribute__((naked,noinline)) sub_FFC61E1C_my(){ 281 asm volatile( 282 "STMFD SP!, {R3-R5,LR}\n" 283 "BL sub_FFD16674\n" 284 "LDR R4, =0x5C6C\n" 285 "LDR R0, [R4,#0x30]\n" 286 "CMP R0, #1\n" 287 "BNE loc_FFC61E54\n" 288 "LDR R1, =0xFFC61F34\n" 289 "MOV R0, #0x20\n" 290 "BL sub_FFC57EC4\n" 292 "BL sub_FFC5556C\n" 291 293 "MOV R0, #0\n" 292 294 "STR R0, [R4,#0x30]\n" 293 295 "STR R0, [R4,#0x2C]\n" 294 "BL sub_FFC6 1D38\n"296 "BL sub_FFC626A0\n" 295 297 "LDMFD SP!, {R3-R5,PC}\n" 296 "loc_FFC61E54:\n" 297 "BL sub_FFC16684\n" 298 "LDRH R0, [R4,#4]\n" 299 "SUB R12, R0, #0x8200\n" 300 "SUBS R12, R12, #0xA\n" 301 "BNE loc_FFC61E78\n" 302 "MOV R0, #0x24\n" 303 "BL sub_FFC661EC\n" 304 "MOV R0, #0x25\n" 305 "BL sub_FFC661EC\n" 306 "loc_FFC61E78:\n" 298 "loc_FFC627E8:\n" 299 "BL sub_FFC15514\n" 307 300 "LDRH R0, [R4,#4]\n" 308 301 "MOV R1, SP\n" 309 302 "STRH R0, [SP]\n" 310 303 "LDR R0, [R4,#0x5C]\n" 311 "STRH R0, [SP,# 2]\n"304 "STRH R0, [SP,#0x2]\n" 312 305 "MOV R0, #0x40\n" 313 "BL sub_FFC66 1AC\n"306 "BL sub_FFC6695C\n" 314 307 "LDR R0, [R4,#0x1C]\n" 315 308 "CMP R0, #0\n" 316 309 "LDREQH R0, [R4,#4]\n" 317 "BLEQ sub_FFC5 C900\n"310 "BLEQ sub_FFC5D030\n" // PTM_SetCurrentCaptureMode 318 311 "LDRH R0, [R4,#4]\n" 319 312 "MOV R1, #1\n" 320 "BL sub_FFC61 244_my\n" //----------->321 "LDR R0, [R4,#0x6 8]\n"322 "BL sub_FFC6 28BC\n"313 "BL sub_FFC61AB0_my\n" //-------------> (branches are joining here, DecideCaptureMode) 314 "LDR R0, [R4,#0x60]\n" 315 "BL sub_FFC630B0\n" 323 316 "MOV R0, #3\n" 324 "STR R0, [R4,#0x6 8]\n"325 "LDR R1, [R4,#0x6 C]\n"317 "STR R0, [R4,#0x60]\n" 318 "LDR R1, [R4,#0x64]\n" 326 319 "ADD SP, SP, #4\n" 327 320 "LDMFD SP!, {R4,R5,LR}\n" … … 334 327 335 328 329 330 331 332 333 334 335 336 336 //branch 2 337 337 338 void __attribute__((naked,noinline)) sub_FFC6 1F54_my(){338 void __attribute__((naked,noinline)) sub_FFC628D0_my(){ 339 339 asm volatile( 340 340 "STMFD SP!, {R4-R6,LR}\n" 341 "LDR R4, =0x5 C6C\n"341 "LDR R4, =0x59C0\n" 342 342 "LDRH R0, [R4,#4]\n" 343 "BL sub_FFD 24964\n"344 "BL sub_FFD 22768\n"345 "BL sub_FFD 25688\n"346 "BL sub_FFD25C80\n"347 // "BL nullsub_70\n"348 "BL sub_FFD 25048\n"343 "BL sub_FFD339CC\n" 344 "BL sub_FFD3222C\n" 345 "BL sub_FFD35C3C\n" 346 //"BL nullsub_98\n" 347 "BL sub_FFD34050\n" 348 "BL sub_FFD1ECC0\n" 349 349 "MOV R5, #0\n" 350 350 "MOV R0, R5\n" 351 351 "STR R5, [R4,#0x24]\n" 352 "BL sub_FFC1 676C\n"353 // "BL nullsub_76\n"352 "BL sub_FFC155F8\n" 353 "BL sub_FFD1E38C\n" 354 354 "STR R5, [R4,#0x3C]\n" 355 355 "LDRH R0, [R4,#4]\n" 356 356 "MOV R1, #0\n" 357 "BL sub_FFC61244_my\n" //-----------> 358 "BL sub_FFC64550\n" 359 "LDR R0, [R4,#0x60]\n" 360 "CMP R0, #0\n" 361 "STRNE R5, [R4,#0x60]\n" 362 "BLNE sub_FFC6241C\n" 363 "BL sub_FFD23410\n" 357 "BL sub_FFC61AB0_my\n" //-------------> (branches are joining here, DecideCaptureMode) 358 "BL sub_FFC64D10\n" 364 359 "LDR R1, [R4,#0x5C]\n" 365 360 "MOV R0, #0x41\n" 366 "BL sub_FFC661AC\n" 367 "BL sub_FFC6241C\n" 368 "BL sub_FFD22728\n" 369 "BL sub_FFD1DFE4\n" 370 "CMP R0, #0\n" 371 "BLEQ sub_FFD2276C\n" 372 "BL sub_FFD248EC\n" 373 "BL sub_FFD164E4\n" 374 "BL sub_FFC5AC2C\n" 361 "BL sub_FFC6695C\n" 362 "BL sub_FFD3221C\n" 363 "BL sub_FFD2DB00\n" 364 "CMP R0, #0\n" 365 "BLEQ sub_FFD32230\n" 366 "BL sub_FFD33954\n" 367 "BL sub_FFD1BB90\n" 368 "BL sub_FFC5B440\n" 375 369 "STR R0, [R4,#0x58]\n" 376 370 "LDR R0, =0x8003\n" 377 371 "STR R5, [R4,#0x2C]\n" 378 "BL sub_FFC5 CA44\n"372 "BL sub_FFC5D158\n" // PTM_GetCurrentItem 379 373 "STRH R0, [R4]\n" 380 374 "LDR R0, =0x313D\n" 381 375 "MOV R1, #0\n" 382 "BL sub_FFC5B 69C\n"383 "BL sub_FFC62 760\n"376 "BL sub_FFC5BEC4\n" // PostLogicalEventToUI 377 "BL sub_FFC62F9C\n" 384 378 "LDR R0, [R4,#0x30]\n" 385 379 "CMP R0, #1\n" 386 380 "STREQ R5, [R4,#0x30]\n" 387 381 "LDMEQFD SP!, {R4-R6,LR}\n" 388 "BEQ sub_FFC6 1D38\n"382 "BEQ sub_FFC626A0\n" 389 383 "LDMFD SP!, {R4-R6,PC}\n" 390 ); 391 } 384 385 ); 386 } //#fe 387 388 389 390 391 392 392 393 393 … … 396 396 //branches are joining here 397 397 398 void __attribute__((naked,noinline)) sub_FFC61 244_my(){398 void __attribute__((naked,noinline)) sub_FFC61AB0_my(){ 399 399 asm volatile( 400 400 "STMFD SP!, {R4-R6,LR}\n" 401 "MOV R5, R0\n" 402 "MOV R4, R1\n" 403 "LDR R1, =0xFFC6143C\n" 401 "MOV R5, R1\n" 402 "MOV R4, R0\n" 404 403 "MOV R0, #0x60\n" 405 "BL sub_FFC57EC4\n" 406 "LDR R6, =0x5C6C\n" 404 "LDR R1, =0xFFC61D80\n" // a_decidecapture ; "_DecideCaptureMode" 405 "BL sub_FFC5556C\n" 406 "LDR R6, =0x59C0\n" 407 407 "LDR R0, [R6,#0x10]\n" 408 408 "CMP R0, #0\n" 409 "BEQ loc_FFC61 3FC\n"409 "BEQ loc_FFC61BDC\n" 410 410 "LDR R0, [R6,#0x18]\n" 411 "LDR R 1, =0x820A\n"412 "LDR R 2, =0xFFC61458\n"413 "CMP R0, #1\n" 414 "BNE loc_FFC61 2C4\n"415 "CMP R 4, #1\n"411 "LDR R2, =0x820A\n" 412 "LDR R1, =0xFFFE0000\n" // aVer_011_001 413 "CMP R0, #1\n" 414 "BNE loc_FFC61B24\n" 415 "CMP R5, #1\n" 416 416 "LDMEQFD SP!, {R4-R6,PC}\n" 417 "CMP R4, #0\n" 418 "BNE loc_FFC612C4\n" 419 "CMP R5, R1\n" 420 "BNE loc_FFC612A4\n" 421 "BL sub_FFC627E0\n" 422 "BL sub_FFC62480\n" 423 "B loc_FFC613FC\n" 424 "loc_FFC612A4:\n" 425 "CMP R2, R5,LSL#17\n" 426 "TSTNE R5, #0xC00\n" 427 "BEQ loc_FFC612B8\n" 428 "BL sub_FFC62528_my\n" //-------------> 429 "B loc_FFC612BC\n" 430 "loc_FFC612B8:\n" 431 "BL sub_FFC624DC\n" 432 "loc_FFC612BC:\n" 433 "BL sub_FFC627E0\n" 434 "B loc_FFC613FC\n" 435 "loc_FFC612C4:\n" 436 "CMP R5, R1\n" 437 "BNE loc_FFC61318\n" 417 "CMP R5, #0\n" 418 "BNE loc_FFC61B24\n" 419 "CMP R4, R2\n" 420 "BEQ loc_FFC61B1C\n" 421 "CMP R1, R4,LSL#17\n" 422 "TSTNE R4, #0xC00\n" 423 "BEQ loc_FFC61B18\n" 424 "BL sub_FFC62E84_my\n" //-------------> (StartMovie) 425 "B loc_FFC61B1C\n" 426 "loc_FFC61B18:\n" 427 "BL sub_FFC62E38\n" 428 "loc_FFC61B1C:\n" 429 "BL sub_FFC62FFC\n" 430 "B loc_FFC61BDC\n" 431 "loc_FFC61B24:\n" 432 "CMP R4, R2\n" 433 "BEQ loc_FFC61BD4\n" 434 "CMP R1, R4,LSL#17\n" 438 435 "LDRH R0, [R6,#2]\n" 439 "CMP R0, R1\n" 440 "BEQ loc_FFC613F4\n" 441 "CMP R2, R0,LSL#17\n" 436 "TSTNE R4, #0xC00\n" 437 "BEQ loc_FFC61B84\n" 438 "CMP R0, R2\n" 439 "BEQ loc_FFC61BD4\n" 440 "CMP R1, R0,LSL#17\n" 442 441 "TSTNE R0, #0xC00\n" 443 "BEQ loc_FFC61 2FC\n"444 "LDR R1, =0xFFC61 45C\n"442 "BEQ loc_FFC61B68\n" 443 "LDR R1, =0xFFC61DA0\n" // a_movietomovie ; "_MovieToMovie" 445 444 "MOV R0, #0x60\n" 446 "BL sub_FFC5 7EC4\n"447 "CMP R 4, #1\n"448 "BEQ loc_FFC61 3CC\n"449 "B loc_FFC61 310\n"450 "loc_FFC61 2FC:\n"451 "LDR R1, =0xFFC61 46C\n"445 "BL sub_FFC5556C\n" 446 "CMP R5, #1\n" 447 "BEQ loc_FFC61BAC\n" 448 "B loc_FFC61B7C\n" 449 "loc_FFC61B68:\n" 450 "LDR R1, =0xFFC61DB0\n" // a_stilltomovie ; "_StillToMovie" 452 451 "MOV R0, #0x60\n" 453 "BL sub_FFC57EC4\n" 454 "CMP R4, #1\n" 455 "BEQ loc_FFC613E8\n" 456 "loc_FFC61310:\n" 457 "BL sub_FFC62480\n" 458 "B loc_FFC613F4\n" 459 "loc_FFC61318:\n" 460 "CMP R2, R5,LSL#17\n" 461 "LDRH R0, [R6,#2]\n" 462 "TSTNE R5, #0xC00\n" 463 "BEQ loc_FFC61388\n" 464 "CMP R0, R1\n" 465 "BNE loc_FFC61348\n" 466 "LDR R1, =0xFFC6147C\n" 452 "BL sub_FFC5556C\n" 453 "CMP R5, #1\n" 454 "BEQ loc_FFC61BC8\n" 455 "loc_FFC61B7C:\n" 456 "BL sub_FFC62E84_my\n" //-------------> (StartMovie) 457 "B loc_FFC61BD4\n" 458 "loc_FFC61B84:\n" 459 "CMP R0, R2\n" 460 "BEQ loc_FFC61BD4\n" 461 "CMP R1, R0,LSL#17\n" 462 "TSTNE R0, #0xC00\n" 463 "BEQ loc_FFC61BB4\n" 464 "LDR R1, =0xFFC61DC0\n" // a_movietostill ; "_MovieToStill"\n" 467 465 "MOV R0, #0x60\n" 468 "BL sub_FFC57EC4\n" 469 "CMP R4, #1\n" 470 "BEQ loc_FFC613A4\n" 471 "B loc_FFC61380\n" 472 "loc_FFC61348:\n" 473 "CMP R2, R0,LSL#17\n" 474 "TSTNE R0, #0xC00\n" 475 "BEQ loc_FFC6136C\n" 476 "LDR R1, =0xFFC6148C\n" 466 "BL sub_FFC5556C\n" 467 "CMP R5, #1\n" 468 "BNE loc_FFC61BD0\n" 469 "loc_FFC61BAC:\n" 470 "LDMFD SP!, {R4-R6,LR}\n" 471 "B sub_FFC62EB0\n" 472 "loc_FFC61BB4:\n" 473 "LDR R1, =0xFFC61DD0\n" // a_stilltostill ; "_StillToStill"\n" 477 474 "MOV R0, #0x60\n" 478 "BL sub_FFC57EC4\n" 479 "CMP R4, #1\n" 480 "BEQ loc_FFC613CC\n" 481 "B loc_FFC61380\n" 482 "loc_FFC6136C:\n" 483 "LDR R1, =0xFFC6149C\n" 484 "MOV R0, #0x60\n" 485 "BL sub_FFC57EC4\n" 486 "CMP R4, #1\n" 487 "BEQ loc_FFC613E8\n" 488 "loc_FFC61380:\n" 489 "BL sub_FFC62528_my\n" //--------------> 490 "B loc_FFC613F4\n" 491 "loc_FFC61388:\n" 492 "CMP R0, R1\n" 493 "BNE loc_FFC613AC\n" 494 "LDR R1, =0xFFC614AC\n" 495 "MOV R0, #0x60\n" 496 "BL sub_FFC57EC4\n" 497 "CMP R4, #1\n" 498 "BNE loc_FFC613F0\n" 499 "loc_FFC613A4:\n" 475 "BL sub_FFC5556C\n" 476 "CMP R5, #1\n" 477 "BNE loc_FFC61BD0\n" 478 "loc_FFC61BC8:\n" 500 479 "LDMFD SP!, {R4-R6,LR}\n" 501 "B sub_FFC624B0\n" 502 "loc_FFC613AC:\n" 503 "CMP R2, R0,LSL#17\n" 504 "TSTNE R0, #0xC00\n" 505 "BEQ loc_FFC613D4\n" 506 "LDR R1, =0xFFC614BC\n" 507 "MOV R0, #0x60\n" 508 "BL sub_FFC57EC4\n" 509 "CMP R4, #1\n" 510 "BNE loc_FFC613F0\n" 511 "loc_FFC613CC:\n" 512 "LDMFD SP!, {R4-R6,LR}\n" 513 "B sub_FFC62554\n" 514 "loc_FFC613D4:\n" 515 "LDR R1, =0xFFC614CC\n" 516 "MOV R0, #0x60\n" 517 "BL sub_FFC57EC4\n" 518 "CMP R4, #1\n" 519 "BNE loc_FFC613F0\n" 520 "loc_FFC613E8:\n" 521 "LDMFD SP!, {R4-R6,LR}\n" 522 "B sub_FFC62504\n" 523 "loc_FFC613F0:\n" 524 "BL sub_FFC624DC\n" 525 "loc_FFC613F4:\n" 526 "CMP R4, #0\n" 480 "B sub_FFC62E60\n" 481 "loc_FFC61BD0:\n" 482 "BL sub_FFC62E38\n" 483 "loc_FFC61BD4:\n" 484 "CMP R5, #0\n" 527 485 "LDMNEFD SP!, {R4-R6,PC}\n" 528 "loc_FFC61 3FC:\n"529 "STRH R 5, [R6,#2]\n"486 "loc_FFC61BDC:\n" 487 "STRH R4, [R6,#2]\n" 530 488 "LDMFD SP!, {R4-R6,PC}\n" 531 489 ); 532 } 533 534 535 536 537 538 539 void __attribute__((naked,noinline)) sub_FFC62528_my(){ 490 } // #fe 491 492 //StartMovie 493 void __attribute__((naked,noinline)) sub_FFC62E84_my(){ 540 494 asm volatile( 541 495 "STMFD SP!, {R4,LR}\n" 542 "LDR R1, =0xFFC62 740\n"496 "LDR R1, =0xFFC62FDC\n" // a_startmovie ; "_StartMovie"\n" 543 497 "MOV R0, #0x20\n" 544 "BL sub_FFC5 7EC4\n"545 "LDR R0, =0x5 C6C\n"498 "BL sub_FFC5556C\n" 499 "LDR R0, =0x59C0\n" 546 500 "LDR R0, [R0,#0x28]\n" 547 501 "CMP R0, #0\n" 548 "BLNE sub_FFC63 060\n"502 "BLNE sub_FFC63860\n" 549 503 "LDMFD SP!, {R4,LR}\n" 550 504 "MOV R0, #0\n" 551 "B sub_FFC65380_my\n" //-----------> 552 ); 553 } 554 555 556 557 558 559 void __attribute__((naked,noinline)) sub_FFC65380_my(){ 505 "B sub_FFC65BBC_my\n" // Continue here 506 ); 507 } 508 509 510 void __attribute__((naked,noinline)) sub_FFC65BBC_my(){ 560 511 asm volatile( 561 512 "STMFD SP!, {R4,LR}\n" 562 "LDR R4, =0x5 E18\n"513 "LDR R4, =0x5B6C\n" 563 514 "MOV R0, #0\n" 564 515 "STR R0, [R4,#0x30]\n" 565 516 "LDR R0, [R4,#8]\n" 566 517 "CMP R0, #0\n" 567 "BNE loc_FFC65 3AC\n"568 "LDR R0, =sub_FFC6 4F8C_my\n" //----------->518 "BNE loc_FFC65BE8\n" 519 "LDR R0, =sub_FFC657C8_my\n" // Continue here 569 520 "MOV R1, #0\n" 570 "BL sub_FFC5AEA0\n" 521 "BL sub_FFC5AEA0\n" // CreateController 571 522 "STR R0, [R4,#8]\n" 572 "loc_FFC65 3AC:\n"523 "loc_FFC65BE8:\n" 573 524 "LDR R0, [R4,#0xC]\n" 574 525 "CMP R0, #0\n" 575 "BNE loc_FFC65 3C8\n"576 "LDR R0, =0xFFC6 4C2C\n"526 "BNE loc_FFC65C04\n" 527 "LDR R0, =0xFFC65468\n" 577 528 "MOV R1, #0\n" 578 "BL sub_FFC62 194\n"529 "BL sub_FFC62B0C\n" 579 530 "STR R0, [R4,#0xC]\n" 580 "loc_FFC65 3C8:\n"581 "BL sub_FFC6 5B88\n"582 "BL sub_FFC6 4C90\n"583 "BL sub_FFD 2C228\n"584 "BL sub_FFD 2DF94\n"531 "loc_FFC65C04:\n" 532 "BL sub_FFC663CC\n" 533 "BL sub_FFC654CC\n" 534 "BL sub_FFD3B164\n" 535 "BL sub_FFD3BFAC\n" 585 536 "LDMFD SP!, {R4,LR}\n" 586 "B sub_FFD24154\n" 587 ); 588 } 589 590 591 592 593 594 595 void __attribute__((naked,noinline)) sub_FFC64F8C_my(){ 537 "B sub_FFD330C8\n" 538 ); 539 } 540 541 542 void __attribute__((naked,noinline)) sub_FFC657C8_my(){ 596 543 asm volatile( 597 544 "STMFD SP!, {R3-R11,LR}\n" 598 "LDR R5, =0x5 E18\n"545 "LDR R5, =0x5B6C\n" 599 546 "MOV R4, R1\n" 600 547 "LDR R2, [R5,#0x2C]\n" … … 606 553 "MOV R11, R3\n" 607 554 "MVN R8, #0\n" 608 "BEQ loc_FFC65 004\n"555 "BEQ loc_FFC65840\n" 609 556 "CMP R4, R9\n" 610 "BEQ loc_FFC65 1F4\n"557 "BEQ loc_FFC65A30\n" 611 558 "CMP R4, #0x800\n" 612 559 "LDREQ R2, [R5,#0x38]\n" 613 560 "CMPEQ R11, R2\n" 614 "BNE loc_FFC65 304\n"561 "BNE loc_FFC65B40\n" 615 562 "STR R1, [R5,#0x2C]!\n" 616 563 "CMP R0, #0\n" 617 564 "STR R8, [R5,#0xC]\n" 618 "BNE loc_FFC65 378\n"619 "BL sub_FFC1 C744\n"620 "CMP R0, #1\n" 621 "BEQ loc_FFC6 4FFC\n"622 "BL sub_FFC1 C74C\n"623 "CMP R0, #1\n" 624 "BNE loc_FFC65 378\n"625 "loc_FFC6 4FFC:\n"626 "BL sub_FFC6 4DDC\n"627 "B loc_FFC65 378\n"628 "loc_FFC65 004:\n"565 "BNE loc_FFC65BB4\n" 566 "BL sub_FFC1A540\n" 567 "CMP R0, #1\n" 568 "BEQ loc_FFC65838\n" 569 "BL sub_FFC1A548\n" 570 "CMP R0, #1\n" 571 "BNE loc_FFC65BB4\n" 572 "loc_FFC65838:\n" 573 "BL sub_FFC65618\n" 574 "B loc_FFC65BB4\n" 575 "loc_FFC65840:\n" 629 576 "CMP R0, #1\n" 630 577 "SUBEQ R12, R4, #0x2000\n" 631 578 "SUBEQS R12, R12, #0x1C\n" 632 "BNE loc_FFC65 020\n"633 "MOV R0, #0\n" 634 "BL sub_FFC65 684\n"635 "B loc_FFC65 378\n"636 "loc_FFC65 020:\n"637 "BL sub_FFC 70D30\n"579 "BNE loc_FFC6585C\n" 580 "MOV R0, #0\n" 581 "BL sub_FFC65EBC\n" 582 "B loc_FFC65BB4\n" 583 "loc_FFC6585C:\n" 584 "BL sub_FFC5A964\n" 638 585 "LDR R10, =0x9A5\n" 639 586 "CMP R0, #1\n" 640 587 "SUB R6, R10, #4\n" 641 588 "SUB R7, R10, #2\n" 642 "BNE loc_FFC65 054\n"589 "BNE loc_FFC65890\n" 643 590 "CMP R4, R10\n" 644 591 "CMPNE R4, R6\n" 645 592 "CMPNE R4, R7\n" 646 "BNE loc_FFC65 054\n"647 "BL sub_FFC 6FED4\n"593 "BNE loc_FFC65890\n" 594 "BL sub_FFC59B08\n" 648 595 "STR R4, [R5,#0x3C]\n" 649 "B loc_FFC65 304\n"650 "loc_FFC65 054:\n"651 "BL sub_FFD 22588\n"652 "CMP R0, #1\n" 653 "BNE loc_FFC65 074\n"596 "B loc_FFC65B40\n" 597 "loc_FFC65890:\n" 598 "BL sub_FFD32074\n" // GetAEIntegralServiceMode_7 599 "CMP R0, #1\n" 600 "BNE loc_FFC658B0\n" 654 601 "MOV R0, R4\n" 655 "BL sub_FFC5B 3DC\n"602 "BL sub_FFC5BBFC\n" 656 603 "CMP R0, #1\n" 657 604 "CMPNE R4, R10\n" 658 "BEQ loc_FFC65 304\n"659 "loc_FFC65 074:\n"660 "BL sub_FFC1 C81C\n"661 "CMP R0, #1\n" 662 "BNE loc_FFC65 08C\n"605 "BEQ loc_FFC65B40\n" 606 "loc_FFC658B0:\n" 607 "BL sub_FFC1A618\n" 608 "CMP R0, #1\n" 609 "BNE loc_FFC658C8\n" 663 610 "CMP R4, R6\n" 664 611 "CMPNE R4, R7\n" 665 "BEQ loc_FFC65 378\n"666 "loc_FFC65 08C:\n"667 "BL sub_FFC62 35C\n"612 "BEQ loc_FFC65BB4\n" 613 "loc_FFC658C8:\n" 614 "BL sub_FFC6279C\n" 668 615 "LDR R1, =0x9A2\n" 669 616 "CMP R0, #1\n" 670 617 "ADD R2, R1, #2\n" 671 "BNE loc_FFC65 0B4\n"618 "BNE loc_FFC658F0\n" 672 619 "CMP R4, R6\n" 673 620 "CMPNE R4, R1\n" 674 621 "CMPNE R4, R7\n" 675 622 "CMPNE R4, R2\n" 676 "BEQ loc_FFC65 378\n"677 "loc_FFC65 0B4:\n"623 "BEQ loc_FFC65BB4\n" 624 "loc_FFC658F0:\n" 678 625 "LDR R12, =0x200A\n" 679 626 "CMP R4, R12\n" 680 "BEQ loc_FFC65 368\n"681 "BGT loc_FFC65 130\n"627 "BEQ loc_FFC65BA4\n" 628 "BGT loc_FFC6596C\n" 682 629 "LDR R12, =0x907\n" 683 630 "CMP R4, R12\n" 684 631 "MOVEQ R1, #2\n" 685 632 "MOVEQ R0, R10\n" 686 "BEQ loc_FFC65 2A4\n"687 "BGT loc_FFC65 10C\n"633 "BEQ loc_FFC65AE0\n" 634 "BGT loc_FFC65948\n" 688 635 "SUB R12, R4, #0x800\n" 689 636 "LDR R6, =0x2003\n" 690 637 "SUBS R12, R12, #0x26\n" 691 "BEQ loc_FFC65 208\n"638 "BEQ loc_FFC65A44\n" 692 639 "SUB R12, R4, #0x800\n" 693 640 "SUBS R12, R12, #0x29\n" 694 "BEQ loc_FFC65 24C\n"641 "BEQ loc_FFC65A88\n" 695 642 "CMP R4, #0x860\n" 696 643 "SUBNE R12, R4, #0x800\n" 697 644 "SUBNES R12, R12, #0x61\n" 698 "BNE loc_FFC65 31C\n"699 "B loc_FFC65 304\n"700 "loc_FFC65 10C:\n"645 "BNE loc_FFC65B58\n" 646 "B loc_FFC65B40\n" 647 "loc_FFC65948:\n" 701 648 "CMP R4, R6\n" 702 "BEQ loc_FFC65 29C\n"649 "BEQ loc_FFC65AD8\n" 703 650 "CMP R4, R1\n" 704 "BEQ loc_FFC65 368\n"651 "BEQ loc_FFC65BA4\n" 705 652 "CMP R4, R7\n" 706 "BEQ loc_FFC65 29C\n"653 "BEQ loc_FFC65AD8\n" 707 654 "CMP R4, R2\n" 708 "BEQ loc_FFC65 368\n"709 "B loc_FFC65 31C\n"710 "loc_FFC65 130:\n"655 "BEQ loc_FFC65BA4\n" 656 "B loc_FFC65B58\n" 657 "loc_FFC6596C:\n" 711 658 "LDR R12, =0x3149\n" 712 659 "CMP R4, R12\n" 713 660 "MOVEQ R1, #0\n" 714 661 "MOVEQ R0, #0x84\n" 715 "BEQ loc_FFC65 314\n"716 "BGT loc_FFC65 188\n"662 "BEQ loc_FFC65B50\n" 663 "BGT loc_FFC659C4\n" 717 664 "SUB R12, R4, #0x2000\n" 718 665 "SUBS R12, R12, #0x20\n" 719 666 "MOVEQ R1, R11\n" 720 667 "MOVEQ R0, #0x83\n" 721 "BEQ loc_FFC65 314\n"668 "BEQ loc_FFC65B50\n" 722 669 "CMP R4, R9\n" 723 "BEQ loc_FFC65 1E0\n"670 "BEQ loc_FFC65A1C\n" 724 671 "SUB R12, R4, #0x3100\n" 725 672 "SUBS R12, R12, #0x35\n" 726 "BEQ loc_FFC65 1C4\n"673 "BEQ loc_FFC65A00\n" 727 674 "SUB R12, R4, #0x3000\n" 728 675 "SUBS R12, R12, #0x148\n" 729 "BNE loc_FFC65 31C\n"676 "BNE loc_FFC65B58\n" 730 677 "MOV R1, #0\n" 731 678 "MOV R0, #0x86\n" 732 "B loc_FFC65 314\n"733 "loc_FFC65 188:\n"679 "B loc_FFC65B50\n" 680 "loc_FFC659C4:\n" 734 681 "SUB R12, R4, #0x3100\n" 735 682 "SUBS R12, R12, #0x4A\n" 736 "BEQ loc_FFC65 30C\n"683 "BEQ loc_FFC65B48\n" 737 684 "SUB R12, R4, #0x4000\n" 738 685 "SUBS R12, R12, #3\n" 739 "BEQ loc_FFC65 2C8\n"686 "BEQ loc_FFC65B04\n" 740 687 "SUB R12, R4, #0x4000\n" 741 688 "SUBS R12, R12, #8\n" 742 "BEQ loc_FFC65 2AC\n"689 "BEQ loc_FFC65AE8\n" 743 690 "SUB R12, R4, #0x4000\n" 744 691 "SUBS R12, R12, #0xF\n" 745 "BNE loc_FFC65 31C\n"692 "BNE loc_FFC65B58\n" 746 693 "MOV R0, #0x82\n" 747 "BL sub_FFC66 1EC\n"748 "B loc_FFC65 378\n"749 "loc_FFC65 1C4:\n"750 "BL sub_FFC6 5BBC\n"694 "BL sub_FFC6699C\n" 695 "B loc_FFC65BB4\n" 696 "loc_FFC65A00:\n" 697 "BL sub_FFC66400\n" // GetVRAMHPixelsSize_2 751 698 "CMP R0, #4\n" 752 "BEQ loc_FFC65 368\n"699 "BEQ loc_FFC65BA4\n" 753 700 "LDR R0, [R5,#0x1C]\n" 754 701 "CMP R0, #0\n" 755 "BLNE sub_FFC6 4D24\n"756 "B loc_FFC65 378\n"757 "loc_FFC65 1E0:\n"702 "BLNE sub_FFC65560\n" 703 "B loc_FFC65BB4\n" 704 "loc_FFC65A1C:\n" 758 705 "MOV R0, #1\n" 759 706 "STR R0, [R5,#0x1C]\n" 760 707 "LDR R0, [R5,#0x18]\n" 761 708 "CMP R0, #1\n" 762 "BNE loc_FFC65 1FC\n"763 "loc_FFC65 1F4:\n"764 "BL sub_FFC6 4D24\n"709 "BNE loc_FFC65A38\n" 710 "loc_FFC65A30:\n" 711 "BL sub_FFC65560\n" 765 712 "LDMFD SP!, {R3-R11,PC}\n" 766 "loc_FFC65 1FC:\n"713 "loc_FFC65A38:\n" 767 714 "MOV R0, R4\n" 768 "BL sub_FFC6 4EFC\n"769 "B loc_FFC65 378\n"770 "loc_FFC65 208:\n"771 "BL sub_FFC62 35C\n"772 "CMP R0, #0\n" 773 "BEQ loc_FFC65 220\n"715 "BL sub_FFC65738\n" 716 "B loc_FFC65BB4\n" 717 "loc_FFC65A44:\n" 718 "BL sub_FFC6279C\n" 719 "CMP R0, #0\n" 720 "BEQ loc_FFC65A5C\n" 774 721 "MOV R0, R4\n" 775 "BL sub_FFC62 350\n"776 "B loc_FFC65 378\n"777 "loc_FFC65 220:\n"722 "BL sub_FFC62CD0\n" 723 "B loc_FFC65BB4\n" 724 "loc_FFC65A5C:\n" 778 725 "LDR R0, [R5,#0x10]\n" 779 726 "LDR R1, [R5,#0x14]\n" … … 781 728 "LDR R1, [R5,#0x1C]\n" 782 729 "ORRS R0, R0, R1\n" 783 "BNE loc_FFC65 378\n"730 "BNE loc_FFC65BB4\n" 784 731 "MOV R1, #0\n" 785 732 "MOV R0, R6\n" 786 "BL sub_FFC4 A82C\n"787 "BL sub_FFD 49F28\n"788 "B loc_FFC65 378\n"789 "loc_FFC65 24C:\n"733 "BL sub_FFC47374\n" 734 "BL sub_FFD21708\n" // StartRecModeMenu 735 "B loc_FFC65BB4\n" 736 "loc_FFC65A88:\n" 790 737 "LDR R0, [R5,#0x10]\n" 791 738 "LDR R1, [R5,#0x14]\n" 792 739 "ORRS R0, R0, R1\n" 793 "BNE loc_FFC65 378\n"794 "BL sub_FFC62 368\n"740 "BNE loc_FFC65BB4\n" 741 "BL sub_FFC62CDC\n" 795 742 "CMP R0, #0\n" 796 743 "LDREQ R0, [R5,#0x1C]\n" 797 744 "CMPEQ R0, #0\n" 798 "BNE loc_FFC65 378\n"799 "BL sub_FFC62 35C\n"800 "CMP R0, #0\n" 801 "BNE loc_FFC65 378\n"802 "BL sub_FFD 2E03C\n"803 "CMP R0, #0\n" 804 "BNE loc_FFC65 378\n"745 "BNE loc_FFC65BB4\n" 746 "BL sub_FFC6279C\n" 747 "CMP R0, #0\n" 748 "BNE loc_FFC65BB4\n" 749 "BL sub_FFD3B92C\n" // j_IsEvfDriveMode_16\n" 750 "CMP R0, #0\n" 751 "BNE loc_FFC65BB4\n" 805 752 "MOV R1, #0\n" 806 753 "MOV R0, R6\n" 807 "BL sub_FFC4 A82C\n"808 "BL sub_FFD1 73A8\n"809 "B loc_FFC65 378\n"810 "loc_FFC65 29C:\n"754 "BL sub_FFC47374\n" 755 "BL sub_FFD1C988\n" 756 "B loc_FFC65BB4\n" 757 "loc_FFC65AD8:\n" 811 758 "MOV R1, #1\n" 812 759 "MOV R0, R4\n" 813 "loc_FFC65 2A4:\n"814 "BL sub_FFC6 4E38_my\n" //------------->760 "loc_FFC65AE0:\n" 761 "BL sub_FFC65674_my\n" // Continue here 815 762 "LDMFD SP!, {R3-R11,PC}\n" 816 "loc_FFC65 2AC:\n"763 "loc_FFC65AE8:\n" 817 764 "MOV R0, R11\n" 818 "BL sub_FFC6 0C94\n"765 "BL sub_FFC6145C\n" 819 766 "CMP R0, #0\n" 820 767 "MOVEQ R1, R11\n" 821 768 "MOVEQ R0, R4\n" 822 "BLEQ sub_FFC6 5828_my\n" //----------->823 "B loc_FFC65 304\n"824 "loc_FFC65 2C8:\n"769 "BLEQ sub_FFC6606C_my\n" // Continue here 770 "B loc_FFC65B40\n" 771 "loc_FFC65B04:\n" 825 772 "LDR R0, [R5,#0x3C]\n" 826 773 "CMN R0, #1\n" 827 "BEQ loc_FFC65 304\n"828 "MOV R0, #0\n" 829 "BL sub_FFC 6EF6C\n"774 "BEQ loc_FFC65B40\n" 775 "MOV R0, #0\n" 776 "BL sub_FFC58BEC\n" 830 777 "LDR R0, [R5,#0x3C]\n" 831 778 "CMP R0, R6\n" 832 "BNE loc_FFC65 2F4\n"833 "BL sub_FFC1 C744\n"834 "CMP R0, #0\n" 835 "BEQ loc_FFC65 300\n"836 "loc_FFC65 2F4:\n"779 "BNE loc_FFC65B30\n" 780 "BL sub_FFC1A540\n" 781 "CMP R0, #0\n" 782 "BEQ loc_FFC65B3C\n" 783 "loc_FFC65B30:\n" 837 784 "LDR R0, [R5,#0x3C]\n" 838 785 "MOV R1, #0\n" 839 "BL sub_FFC5B 650\n"840 "loc_FFC65 300:\n"786 "BL sub_FFC5BE78\n" // PostLogicalEventForNotPowerType\n" 787 "loc_FFC65B3C:\n" 841 788 "STR R8, [R5,#0x3C]\n" 842 "loc_FFC65 304:\n"789 "loc_FFC65B40:\n" 843 790 "MOV R0, #1\n" 844 791 "LDMFD SP!, {R3-R11,PC}\n" 845 "loc_FFC65 30C:\n"792 "loc_FFC65B48:\n" 846 793 "MOV R1, #0\n" 847 794 "MOV R0, #0x85\n" 848 "loc_FFC65 314:\n"849 "BL sub_FFC66 1AC\n"850 "B loc_FFC65 378\n"851 "loc_FFC65 31C:\n"795 "loc_FFC65B50:\n" 796 "BL sub_FFC6695C\n" 797 "B loc_FFC65BB4\n" 798 "loc_FFC65B58:\n" 852 799 "LDR R12, =0x855\n" 853 800 "CMP R4, R12\n" 854 "BEQ loc_FFC65 358\n"855 "BGT loc_FFC65 344\n"801 "BEQ loc_FFC65B94\n" 802 "BGT loc_FFC65B80\n" 856 803 "SUB R12, R4, #0x800\n" 857 804 "SUBS R12, R12, #0x38\n" 858 805 "SUBNE R12, R4, #0x800\n" 859 806 "SUBNES R12, R12, #0x39\n" 860 "BNE loc_FFC65 368\n"861 "B loc_FFC65 358\n"862 "loc_FFC65 344:\n"807 "BNE loc_FFC65BA4\n" 808 "B loc_FFC65B94\n" 809 "loc_FFC65B80:\n" 863 810 "SUB R12, R4, #0x800\n" 864 811 "SUBS R12, R12, #0x56\n" 865 812 "SUBNE R12, R4, #0x800\n" 866 813 "SUBNES R12, R12, #0x5D\n" 867 "BNE loc_FFC65 368\n"868 "loc_FFC65 358:\n"814 "BNE loc_FFC65BA4\n" 815 "loc_FFC65B94:\n" 869 816 "LDR R0, [R5,#0x10]\n" 870 817 "LDR R1, [R5,#0x14]\n" 871 818 "ORRS R0, R0, R1\n" 872 "BNE loc_FFC65 378\n"873 "loc_FFC65 368:\n"819 "BNE loc_FFC65BB4\n" 820 "loc_FFC65BA4:\n" 874 821 "MOV R1, R11\n" 875 822 "MOV R0, R4\n" 876 "BL sub_FFC6 5828_my\n" //----------------->823 "BL sub_FFC6606C_my\n" // Continue here 877 824 "LDMFD SP!, {R3-R11,PC}\n" 878 "loc_FFC65 378:\n"825 "loc_FFC65BB4:\n" 879 826 "MOV R0, #0\n" 880 827 "LDMFD SP!, {R3-R11,PC}\n" 881 828 ); 882 } 883 884 885 886 887 888 889 void __attribute__((naked,noinline)) sub_FFC64E38_my(){ 890 asm volatile( 891 "STMFD SP!, {R4-R6,LR}\n" 892 "MOV R4, R0\n" 893 "LDR R0, =0x5E18\n" 894 "MOV R5, R1\n" 895 "LDR R0, [R0,#0x1C]\n" 896 "CMP R0, #0\n" 897 "LDRNE R1, =0xFFC64F68\n" 898 "BNE loc_FFC64EE4\n" 899 "BL sub_FFC65BC8\n" 900 "CMP R0, #1\n" 901 "BNE loc_FFC64E74\n" 902 "loc_FFC64E64:\n" 903 "MOV R0, R4\n" 904 "LDMFD SP!, {R4-R6,LR}\n" 905 "MOV R1, #0\n" 906 "B sub_FFC65828_my\n" //-------------> 907 "loc_FFC64E74:\n" 908 "CMP R5, #2\n" 909 "BNE loc_FFC64E8C\n" 910 "BL sub_FFC64550\n" 911 "CMP R0, #0\n" 912 "BEQ loc_FFC64ED4\n" 913 "B loc_FFC64EA0\n" 914 "loc_FFC64E8C:\n" 915 "CMP R5, #1\n" 916 "BNE loc_FFC64ED4\n" 917 "BL sub_FFC64568\n" 918 "CMP R0, #0\n" 919 "BNE loc_FFC64ED4\n" 920 "loc_FFC64EA0:\n" 921 "MOV R0, #0\n" 922 "BL sub_FFC6EF6C\n" 923 "SUB R12, R4, #0x900\n" 924 "SUBS R12, R12, #0xA1\n" 925 "SUBNE R12, R4, #0x900\n" 926 "SUBNES R12, R12, #0xA3\n" 927 "SUBNE R12, R4, #0x900\n" 928 "SUBNES R12, R12, #0xA5\n" 929 "LDREQ R0, =0xC507\n" 930 "MOVEQ R1, #0\n" 931 "BLEQ sub_FFC4A82C\n" 932 "loc_FFC64ECC:\n" 933 "MOV R0, #0\n" 934 "LDMFD SP!, {R4-R6,PC}\n" 935 "loc_FFC64ED4:\n" 936 "BL sub_FFC64DDC\n" 937 "CMP R0, #0\n" 938 "BNE loc_FFC64EF0\n" 939 "LDR R1, =0xFFC64F78\n" 940 "loc_FFC64EE4:\n" 941 "MOV R0, #0x60\n" 942 "BL sub_FFC57EC4\n" 943 "B loc_FFC64ECC\n" 944 "loc_FFC64EF0:\n" 945 "MOV R0, R5\n" 946 "BL sub_FFD21504\n" 947 "B loc_FFC64E64\n" 948 ); 949 } 950 951 952 953 954 955 956 957 958 void __attribute__((naked,noinline)) sub_FFC65828_my(){ 829 } // #fe 830 831 // sub_FFC65674_my 832 //sub_FFC6606C_my 833 834 835 836 void __attribute__((naked,noinline)) sub_FFC65674_my(){ 837 asm volatile( 838 "STMFD SP!, {R4-R6,LR}\n" 839 "MOV R4, R0\n" 840 "LDR R0, =0x5B6C\n" 841 "MOV R5, R1\n" 842 "LDR R0, [R0,#0x1C]\n" 843 "CMP R0, #0\n" 844 "LDRNE R1, =0xFFC657A4\n" // aMvicon_fshtdwn ; "MviCon_fShtDwn" 845 "BNE loc_FFC65720\n" 846 "BL sub_FFC6640C\n" 847 "CMP R0, #1\n" 848 "BNE loc_FFC656B0\n" 849 "loc_FFC656A0:\n" 850 "MOV R0, R4\n" 851 "LDMFD SP!, {R4-R6,LR}\n" 852 "MOV R1, #0\n" 853 "B sub_FFC6606C_my\n" // Continue here 854 "loc_FFC656B0:\n" 855 "CMP R5, #2\n" 856 "BNE loc_FFC656C8\n" 857 "BL sub_FFC64D10\n" 858 "CMP R0, #0\n" 859 "BEQ loc_FFC65710\n" 860 "B loc_FFC656DC\n" 861 "loc_FFC656C8:\n" 862 "CMP R5, #1\n" 863 "BNE loc_FFC65710\n" 864 "BL sub_FFC64D28\n" 865 "CMP R0, #0\n" 866 "BNE loc_FFC65710\n" 867 "loc_FFC656DC:\n" 868 "MOV R0, #0\n" 869 "BL sub_FFC58BEC\n" 870 "SUB R12, R4, #0x900\n" 871 "SUBS R12, R12, #0xA1\n" 872 "SUBNE R12, R4, #0x900\n" 873 "SUBNES R12, R12, #0xA3\n" 874 "SUBNE R12, R4, #0x900\n" 875 "SUBNES R12, R12, #0xA5\n" 876 "LDREQ R0, =0xC507\n" 877 "MOVEQ R1, #0\n" 878 "BLEQ sub_FFC47374\n" 879 "loc_FFC65708:\n" 880 "MOV R0, #0\n" 881 "LDMFD SP!, {R4-R6,PC}\n" 882 "loc_FFC65710:\n" 883 "BL sub_FFC65618\n" 884 "CMP R0, #0\n" 885 "BNE loc_FFC6572C\n" 886 "LDR R1, =0xFFC657B4\n" // aMvicon_initchk ; "MviCon_InitChkBuf"\n" 887 "loc_FFC65720:\n" 888 "MOV R0, #0x60\n" 889 "BL sub_FFC5556C\n" 890 "B loc_FFC65708\n" 891 "loc_FFC6572C:\n" 892 "MOV R0, R5\n" 893 "BL sub_FFD31120\n" 894 "B loc_FFC656A0\n" 895 ); 896 } // #fe 897 898 899 900 void __attribute__((naked,noinline)) sub_FFC6606C_my(){ 959 901 asm volatile( 960 902 "STMFD SP!, {R4-R8,LR}\n" 961 903 "MOV R7, R1\n" 962 904 "MOV R4, R0\n" 963 "BL sub_FFC6 5C44\n"964 "LDR R5, =0x5 E5C\n"905 "BL sub_FFC66488\n" 906 "LDR R5, =0x5BB0\n" 965 907 "LDR R3, =0x200A\n" 966 908 "LDR R12, [R5]\n" … … 972 914 "ADD LR, R3, #0x15\n" 973 915 "ADDLS PC, PC, R12,LSL#2\n" 974 "B loc_FFC6 5B80\n"975 "loc_FFC6 5864:\n"976 "B loc_FFC6 588C\n"977 "loc_FFC6 5868:\n"978 "B loc_FFC6 589C\n"979 "loc_FFC6 586C:\n"980 "B loc_FFC6 58AC\n"981 "loc_FFC6 5870:\n"982 "B loc_FFC6 5920\n"983 "loc_FFC6 5874:\n"984 "B loc_FFC6 5960\n"985 "loc_FFC6 5878:\n"986 "B loc_FFC6 59E8\n"987 "loc_FFC6 587C:\n"988 "B loc_FFC6 5A18\n"989 "loc_FFC6 5880:\n"990 "B loc_FFC6 5AC8\n"991 "loc_FFC6 5884:\n"992 "B loc_FFC6 5A28\n"993 "loc_FFC6 5888:\n"994 "B loc_FFC6 5AF0\n"995 "loc_FFC6 588C:\n"916 "B loc_FFC663C4\n" 917 "loc_FFC660A8:\n" 918 "B loc_FFC660D0\n" 919 "loc_FFC660AC:\n" 920 "B loc_FFC660E0\n" 921 "loc_FFC660B0:\n" 922 "B loc_FFC660F0\n" 923 "loc_FFC660B4:\n" 924 "B loc_FFC66164\n" 925 "loc_FFC660B8:\n" 926 "B loc_FFC661A4\n" 927 "loc_FFC660BC:\n" 928 "B loc_FFC6622C\n" 929 "loc_FFC660C0:\n" 930 "B loc_FFC6625C\n" 931 "loc_FFC660C4:\n" 932 "B loc_FFC6630C\n" 933 "loc_FFC660C8:\n" 934 "B loc_FFC662D0\n" 935 "loc_FFC660CC:\n" 936 "B loc_FFC66334\n" 937 "loc_FFC660D0:\n" 996 938 "MOV R1, R7\n" 997 939 "MOV R0, R4\n" 998 940 "LDMFD SP!, {R4-R8,LR}\n" 999 "B sub_FFC65 7B0\n"1000 "loc_FFC6 589C:\n"941 "B sub_FFC65FE8\n" 942 "loc_FFC660E0:\n" 1001 943 "MOV R1, R7\n" 1002 944 "MOV R0, R4\n" 1003 945 "LDMFD SP!, {R4-R8,LR}\n" 1004 "B sub_FFC6 5DC0_my\n" //------------>1005 "loc_FFC6 58AC:\n"946 "B sub_FFC66608_my\n" // Continue here 947 "loc_FFC660F0:\n" 1006 948 "CMP R4, R1\n" 1007 "BEQ loc_FFC6 5910\n"949 "BEQ loc_FFC66154\n" 1008 950 "SUB R12, R4, #0x2000\n" 1009 951 "SUBS R12, R12, #6\n" 1010 "BEQ loc_FFC6 58D4\n"952 "BEQ loc_FFC66118\n" 1011 953 "CMP R4, R0\n" 1012 "BEQ loc_FFC6 5918\n"954 "BEQ loc_FFC6615C\n" 1013 955 "SUB R12, R4, #0x3100\n" 1014 956 "SUBS R12, R12, #0x4B\n" 1015 "BNE loc_FFC6 5B80\n"1016 "loc_FFC6 58D4:\n"1017 "BL sub_FFC6 4DB8\n"1018 "MOV R0, #0\n" 1019 "BL sub_FFC6 5C2C\n"957 "BNE loc_FFC663C4\n" 958 "loc_FFC66118:\n" 959 "BL sub_FFC655F4\n" 960 "MOV R0, #0\n" 961 "BL sub_FFC66470\n" 1020 962 "LDR R0, [R5,#8]\n" 1021 963 "CMP R0, #0\n" 1022 964 "MOVNE R1, #0\n" 1023 965 "MOVNE R0, R6\n" 1024 "BNE loc_FFC6 5908\n"966 "BNE loc_FFC6614C\n" 1025 967 "LDR R0, [R5,#4]\n" 1026 968 "CMP R0, #0\n" 1027 "BEQ loc_FFC6 5B30\n"969 "BEQ loc_FFC66374\n" 1028 970 "LDR R0, =0x9A1\n" 1029 971 "MOV R1, #0\n" 1030 "loc_FFC6 5908:\n"1031 "BL sub_FFC65 7B0\n"1032 "B loc_FFC6 5B30\n"1033 "loc_FFC6 5910:\n"1034 "BL sub_FFC6 5D34\n"1035 "B loc_FFC6 5B30\n"1036 "loc_FFC6 5918:\n"1037 "BL sub_FFC6 5D4C\n"1038 "B loc_FFC6 5B30\n"1039 "loc_FFC6 5920:\n"972 "loc_FFC6614C:\n" 973 "BL sub_FFC65FE8\n" 974 "B loc_FFC66374\n" 975 "loc_FFC66154:\n" 976 "BL sub_FFC6657C\n" 977 "B loc_FFC66374\n" 978 "loc_FFC6615C:\n" 979 "BL sub_FFC66594\n" 980 "B loc_FFC66374\n" 981 "loc_FFC66164:\n" 1040 982 "SUB R12, R4, #0x900\n" 1041 983 "SUBS R12, R12, #0xA2\n" 1042 "BEQ loc_FFC6 5950\n"984 "BEQ loc_FFC66194\n" 1043 985 "CMP R4, R6\n" 1044 "BEQ loc_FFC6 5948\n"986 "BEQ loc_FFC6618C\n" 1045 987 "CMP R4, R1\n" 1046 "BEQ loc_FFC6 5958\n"988 "BEQ loc_FFC6619C\n" 1047 989 "CMP R4, R0\n" 1048 "BLEQ sub_FFC6 5D4C\n"1049 "B loc_FFC6 5B80\n"1050 "loc_FFC6 5948:\n"1051 "BL sub_FFC65 754_my\n" //---------------->1052 "B loc_FFC6 5B80\n"1053 "loc_FFC6 5950:\n"1054 "BL sub_FFC6 5D14\n"1055 "B loc_FFC6 5B80\n"1056 "loc_FFC6 5958:\n"1057 "BL sub_FFC6 5D34\n"1058 "B loc_FFC6 5B80\n"1059 "loc_FFC6 5960:\n"990 "BLEQ sub_FFC66594\n" 991 "B loc_FFC663C4\n" 992 "loc_FFC6618C:\n" 993 "BL sub_FFC65F8C_my\n" // Continue here EntryActionOnPreMoving 994 "B loc_FFC663C4\n" 995 "loc_FFC66194:\n" 996 "BL sub_FFC66558\n" 997 "B loc_FFC663C4\n" 998 "loc_FFC6619C:\n" 999 "BL sub_FFC6657C\n" 1000 "B loc_FFC663C4\n" 1001 "loc_FFC661A4:\n" 1060 1002 "CMP R4, LR\n" 1061 "BEQ loc_FFC6 59BC\n"1062 "BGT loc_FFC6 5988\n"1003 "BEQ loc_FFC66200\n" 1004 "BGT loc_FFC661CC\n" 1063 1005 "CMP R4, R6\n" 1064 "BEQ loc_FFC6 59A4\n"1006 "BEQ loc_FFC661E8\n" 1065 1007 "CMP R4, R1\n" 1066 "BEQ loc_FFC6 59D4\n"1067 "loc_FFC6 597C:\n"1008 "BEQ loc_FFC66218\n" 1009 "loc_FFC661C0:\n" 1068 1010 "CMP R4, R3\n" 1069 "BNE loc_FFC6 5B80\n"1070 "B loc_FFC6 5998\n"1071 "loc_FFC6 5988:\n"1011 "BNE loc_FFC663C4\n" 1012 "B loc_FFC661DC\n" 1013 "loc_FFC661CC:\n" 1072 1014 "CMP R4, R0\n" 1073 "BEQ loc_FFC6 59C8\n"1074 "loc_FFC6 5990:\n"1015 "BEQ loc_FFC6620C\n" 1016 "loc_FFC661D4:\n" 1075 1017 "CMP R4, R2\n" 1076 "BNE loc_FFC6 5B80\n"1077 "loc_FFC6 5998:\n"1078 "BL sub_FFC6 5D9C\n"1079 "BL sub_FFC6 5D14\n"1080 "B loc_FFC6 5B30\n"1081 "loc_FFC6 59A4:\n"1082 "BL sub_FFC1 8464\n"1018 "BNE loc_FFC663C4\n" 1019 "loc_FFC661DC:\n" 1020 "BL sub_FFC665E4\n" 1021 "BL sub_FFC66558\n" 1022 "B loc_FFC66374\n" 1023 "loc_FFC661E8:\n" 1024 "BL sub_FFC16BA4\n" 1083 1025 "MOV R0, #5\n" 1084 "BL sub_FFC6 5C2C\n"1026 "BL sub_FFC66470\n" 1085 1027 "MOV R0, #0\n" 1086 1028 "STR R0, [R5,#0xC]\n" 1087 "B loc_FFC6 5B30\n"1088 "loc_FFC6 59BC:\n"1029 "B loc_FFC66374\n" 1030 "loc_FFC66200:\n" 1089 1031 "MOV R0, #5\n" 1090 "BL sub_FFC6 5C2C\n"1091 "B loc_FFC6 5A0C\n"1092 "loc_FFC6 59C8:\n"1093 "BL sub_FFC1 8464\n"1094 "BL sub_FFC6 5D9C\n"1095 "B loc_FFC6 5AC0\n"1096 "loc_FFC6 59D4:\n"1097 "BL sub_FFC1 8464\n"1098 "BL sub_FFC6 5D9C\n"1099 "B loc_FFC6 5A20\n"1100 "loc_FFC6 59E0:\n"1101 "BL sub_FFC6 5C2C\n"1102 "B loc_FFC6 5B30\n"1103 "loc_FFC6 59E8:\n"1032 "BL sub_FFC66470\n" 1033 "B loc_FFC66250\n" 1034 "loc_FFC6620C:\n" 1035 "BL sub_FFC16BA4\n" 1036 "BL sub_FFC665E4\n" 1037 "B loc_FFC66304\n" 1038 "loc_FFC66218:\n" 1039 "BL sub_FFC16BA4\n" 1040 "BL sub_FFC665E4\n" 1041 "B loc_FFC66264\n" 1042 "loc_FFC66224:\n" 1043 "BL sub_FFC66470\n" 1044 "B loc_FFC66374\n" 1045 "loc_FFC6622C:\n" 1104 1046 "CMP R4, LR\n" 1105 "BEQ loc_FFC6 5A0C\n"1106 "BGT loc_FFC6 5A00\n"1047 "BEQ loc_FFC66250\n" 1048 "BGT loc_FFC66244\n" 1107 1049 "CMP R4, R1\n" 1108 "BNE loc_FFC6 597C\n"1109 "B loc_FFC6 5A20\n"1110 "loc_FFC6 5A00:\n"1050 "BNE loc_FFC661C0\n" 1051 "B loc_FFC66264\n" 1052 "loc_FFC66244:\n" 1111 1053 "CMP R4, R0\n" 1112 "BNE loc_FFC6 5990\n"1113 "B loc_FFC6 5AC0\n"1114 "loc_FFC6 5A0C:\n"1054 "BNE loc_FFC661D4\n" 1055 "B loc_FFC66304\n" 1056 "loc_FFC66250:\n" 1115 1057 "MOV R0, R7\n" 1116 "BL sub_FFC6 5D68\n"1117 "B loc_FFC6 5B30\n"1118 "loc_FFC6 5A18:\n"1058 "BL sub_FFC665B0\n" 1059 "B loc_FFC66374\n" 1060 "loc_FFC6625C:\n" 1119 1061 "CMP R4, R1\n" 1120 "BNE loc_FFC6 5B80\n"1121 "loc_FFC6 5A20:\n"1062 "BNE loc_FFC663C4\n" 1063 "loc_FFC66264:\n" 1122 1064 "MOV R0, #8\n" 1123 "B loc_FFC6 59E0\n"1124 "loc_FFC6 5A28:\n"1065 "B loc_FFC66224\n" 1066 "loc_FFC662D0:\n" 1125 1067 "CMP R4, R0\n" 1126 "BEQ loc_FFC6 5AC0\n"1127 "BGT loc_FFC6 5AAC\n"1068 "BEQ loc_FFC66304\n" 1069 "BGT loc_FFC662F0\n" 1128 1070 "CMP R4, R3\n" 1129 "BEQ loc_FFC6 5910\n"1071 "BEQ loc_FFC66154\n" 1130 1072 "CMP R4, LR\n" 1131 "BEQ loc_FFC6 5A0C\n"1132 "B loc_FFC6 5B80\n"1133 "loc_FFC6 5AAC:\n"1073 "BEQ loc_FFC66250\n" 1074 "B loc_FFC663C4\n" 1075 "loc_FFC662F0:\n" 1134 1076 "CMP R4, R2\n" 1135 1077 "SUBNE R12, R4, #0x4000\n" 1136 1078 "SUBNES R12, R12, #0xE\n" 1137 "BEQ loc_FFC6 5910\n"1138 "B loc_FFC6 5B80\n"1139 "loc_FFC6 5AC0:\n"1079 "BEQ loc_FFC66154\n" 1080 "B loc_FFC663C4\n" 1081 "loc_FFC66304:\n" 1140 1082 "MOV R0, #7\n" 1141 "B loc_FFC6 59E0\n"1142 "loc_FFC6 5AC8:\n"1083 "B loc_FFC66224\n" 1084 "loc_FFC6630C:\n" 1143 1085 "CMP R4, R3\n" 1144 "BEQ loc_FFC6 5AE0\n"1086 "BEQ loc_FFC66324\n" 1145 1087 "CMP R4, LR\n" 1146 "BEQ loc_FFC6 5A0C\n"1088 "BEQ loc_FFC66250\n" 1147 1089 "CMP R4, R2\n" 1148 "BNE loc_FFC6 5B80\n"1149 "loc_FFC6 5AE0:\n"1150 "BL sub_FFC6 5D14\n"1151 "MOV R0, #0\n" 1152 "BL sub_FFC6 4EFC\n"1153 "B loc_FFC6 5B30\n"1154 "loc_FFC6 5AF0:\n"1090 "BNE loc_FFC663C4\n" 1091 "loc_FFC66324:\n" 1092 "BL sub_FFC66558\n" 1093 "MOV R0, #0\n" 1094 "BL sub_FFC65738\n" 1095 "B loc_FFC66374\n" 1096 "loc_FFC66334:\n" 1155 1097 "SUB R12, R4, #0x800\n" 1156 1098 "SUBS R12, R12, #0x4A\n" 1157 "BEQ loc_FFC6 5B38\n"1099 "BEQ loc_FFC6637C\n" 1158 1100 "CMP R4, R1\n" 1159 "BEQ loc_FFC6 5B70\n"1101 "BEQ loc_FFC663B4\n" 1160 1102 "CMP R4, R0\n" 1161 "BEQ loc_FFC6 5B60\n"1103 "BEQ loc_FFC663A4\n" 1162 1104 "SUB R12, R4, #0x3100\n" 1163 1105 "SUBS R12, R12, #0x2A\n" 1164 "BNE loc_FFC6 5B80\n"1165 "BL sub_FFC6 5CCC\n"1106 "BNE loc_FFC663C4\n" 1107 "BL sub_FFC66510\n" 1166 1108 "LDR R0, [R5,#0x14]\n" 1167 1109 "CMP R0, #0\n" 1168 "BNE loc_FFC6 5B30\n"1169 "BL sub_FFC6 5CE8_my\n" //---------------->1170 "BL sub_FFD 22594\n"1171 "loc_FFC6 5B30:\n"1110 "BNE loc_FFC66374\n" 1111 "BL sub_FFC6652C_my\n" // Continue here EntryActionOnMoving 1112 "BL sub_FFD32080\n" 1113 "loc_FFC66374:\n" 1172 1114 "MOV R0, #0\n" 1173 1115 "LDMFD SP!, {R4-R8,PC}\n" 1174 "loc_FFC6 5B38:\n"1175 "BL sub_FFC6 5CCC\n"1116 "loc_FFC6637C:\n" 1117 "BL sub_FFC66510\n" 1176 1118 "LDR R0, =0x8007\n" 1177 1119 "MOV R1, #0\n" 1178 "BL sub_FFC5 CA38\n"1179 "BL sub_FFD 214B8\n"1180 "BL sub_FFC6 5D14\n"1181 "BL sub_FFD 22594\n"1182 "BL sub_FFC6 4DB8\n"1183 "MOV R0, #0\n" 1184 "B loc_FFC6 59E0\n"1185 "loc_FFC6 5B60:\n"1186 "BL sub_FFC6 5CCC\n"1187 "BL sub_FFD 214B8\n"1188 "BL sub_FFD 22594\n"1189 "B loc_FFC6 5918\n"1190 "loc_FFC6 5B70:\n"1191 "BL sub_FFC6 5CCC\n"1192 "BL sub_FFD 214B8\n"1193 "BL sub_FFD 22594\n"1194 "B loc_FFC6 5910\n"1195 "loc_FFC6 5B80:\n"1120 "BL sub_FFC5D14C\n" // j_PTM_SetCurrentItem 1121 "BL sub_FFD310D4\n" 1122 "BL sub_FFC66558\n" 1123 "BL sub_FFD32080\n" 1124 "BL sub_FFC655F4\n" 1125 "MOV R0, #0\n" 1126 "B loc_FFC66224\n" 1127 "loc_FFC663A4:\n" 1128 "BL sub_FFC66510\n" 1129 "BL sub_FFD310D4\n" 1130 "BL sub_FFD32080\n" 1131 "B loc_FFC6615C\n" 1132 "loc_FFC663B4:\n" 1133 "BL sub_FFC66510\n" 1134 "BL sub_FFD310D4\n" 1135 "BL sub_FFD32080\n" 1136 "B loc_FFC66154\n" 1137 "loc_FFC663C4:\n" 1196 1138 "MOV R0, #1\n" 1197 1139 "LDMFD SP!, {R4-R8,PC}\n" 1198 ".ltorg\n" 1199 ); 1200 } 1201 1202 1203 1204 1205 1206 1207 1208 1209 void __attribute__((naked,noinline)) sub_FFC65DC0_my(){ 1210 asm volatile( 1211 "LDR R3, =0x5E5C\n" 1140 ".ltorg\n" 1141 ); 1142 } // #fe 1143 1144 // subs used in the sub above : 1145 //sub_FFC66608_my 1146 //sub_FFC65F8C_my 1147 //sub_FFC6652C_my 1148 1149 1150 1151 1152 void __attribute__((naked,noinline)) sub_FFC66608_my(){ 1153 asm volatile( 1154 "LDR R3, =0x5BB0\n" 1212 1155 "LDR R12, =0x2006\n" 1213 1156 "STMFD SP!, {R4,LR}\n" … … 1215 1158 "LDR R2, [R3,#0x14]\n" 1216 1159 "CMP R0, R12\n" 1217 "BEQ loc_FFC6 5E34\n"1218 "BGT loc_FFC6 5E00\n"1160 "BEQ loc_FFC6667C\n" 1161 "BGT loc_FFC66648\n" 1219 1162 "SUB R12, R0, #0x900\n" 1220 1163 "SUBS R12, R12, #0xA2\n" 1221 "BEQ loc_FFC6 5E58\n"1164 "BEQ loc_FFC666A0\n" 1222 1165 "SUB R12, R0, #0x1000\n" 1223 1166 "SUBS R12, R12, #0x51\n" 1224 "BNE loc_FFC6 5E7C\n"1225 "BL sub_FFC6 5D34\n"1226 "B loc_FFC6 5E74\n"1227 "loc_FFC6 5E00:\n"1167 "BNE loc_FFC666C4\n" 1168 "BL sub_FFC6657C\n" 1169 "B loc_FFC666BC\n" 1170 "loc_FFC66648:\n" 1228 1171 "SUB R12, R0, #0x3000\n" 1229 1172 "SUBS R12, R12, #7\n" 1230 "BEQ loc_FFC6 5E70\n"1173 "BEQ loc_FFC666B8\n" 1231 1174 "SUB R12, R0, #0x3100\n" 1232 1175 "SUBS R12, R12, #0x4B\n" 1233 "BNE loc_FFC6 5E7C\n"1176 "BNE loc_FFC666C4\n" 1234 1177 "CMP R2, #0\n" 1235 "BNE loc_FFC6 5E74\n"1178 "BNE loc_FFC666BC\n" 1236 1179 "LDR R0, [R3,#8]\n" 1237 1180 "ORRS R0, R0, R1\n" 1238 "BEQ loc_FFC6 5E40\n"1239 "BL sub_FFC65 754_my\n" //------------>1240 "B loc_FFC6 5E74\n"1241 "loc_FFC6 5E34:\n"1181 "BEQ loc_FFC66688\n" 1182 "BL sub_FFC65F8C_my\n" // Continue here 1183 "B loc_FFC666BC\n" 1184 "loc_FFC6667C:\n" 1242 1185 "CMP R2, #0\n" 1243 "BLEQ sub_FFC64 588\n"1244 "B loc_FFC6 5E74\n"1245 "loc_FFC6 5E40:\n"1186 "BLEQ sub_FFC64D48\n" 1187 "B loc_FFC666BC\n" 1188 "loc_FFC66688:\n" 1246 1189 "LDR R0, [R3,#4]\n" 1247 1190 "CMP R0, #0\n" 1248 1191 "MOVNE R0, #3\n" 1249 "BNE loc_FFC6 5E68\n"1250 "BL sub_FFC6 5D14\n"1251 "B loc_FFC6 5E74\n"1252 "loc_FFC6 5E58:\n"1192 "BNE loc_FFC666B0\n" 1193 "BL sub_FFC66558\n" 1194 "B loc_FFC666BC\n" 1195 "loc_FFC666A0:\n" 1253 1196 "CMP R1, #0\n" 1254 "BNE loc_FFC6 5E74\n"1255 "BL sub_FFC1 806C\n"1197 "BNE loc_FFC666BC\n" 1198 "BL sub_FFC16760\n" 1256 1199 "MOV R0, #2\n" 1257 "loc_FFC6 5E68:\n"1258 "BL sub_FFC6 5C2C\n"1259 "B loc_FFC6 5E74\n"1260 "loc_FFC6 5E70:\n"1261 "BL sub_FFC6 5D4C\n"1262 "loc_FFC6 5E74:\n"1200 "loc_FFC666B0:\n" 1201 "BL sub_FFC66470\n" 1202 "B loc_FFC666BC\n" 1203 "loc_FFC666B8:\n" 1204 "BL sub_FFC66594\n" 1205 "loc_FFC666BC:\n" 1263 1206 "MOV R0, #0\n" 1264 1207 "LDMFD SP!, {R4,PC}\n" 1265 "loc_FFC6 5E7C:\n"1208 "loc_FFC666C4:\n" 1266 1209 "MOV R0, #1\n" 1267 1210 "LDMFD SP!, {R4,PC}\n" 1268 1211 ); 1269 } 1270 1271 1272 1273 1274 1275 void __attribute__((naked,noinline)) sub_FFC65 754_my(){1212 } //#fe 1213 1214 1215 1216 1217 1218 void __attribute__((naked,noinline)) sub_FFC65F8C_my(){ 1276 1219 asm volatile( 1277 1220 "STMFD SP!, {R4,LR}\n" 1278 "LDR R1, =0xFFC6 5A48\n"1221 "LDR R1, =0xFFC6626C\n" // a_entryactionon ; "_EntryActionOnPreMoving" 1279 1222 "MOV R0, #0x60\n" 1280 "BL sub_FFC5 7EC4\n"1281 "LDR R4, =0x5 E5C\n"1223 "BL sub_FFC5556C\n" 1224 "LDR R4, =0x5BB0\n" 1282 1225 "LDR R0, [R4,#0x10]\n" 1283 1226 "CMP R0, #0\n" 1284 1227 "LDMEQFD SP!, {R4,LR}\n" 1285 "BEQ sub_FFC6 5CE8_my\n" //------------->1286 "LDR R1, =0xFFC6 5A64\n"1228 "BEQ sub_FFC6652C_my\n" // Continue here 1229 "LDR R1, =0xFFC66288\n" // a_entryaction_0 ; "_EntryActionOnSelfTimer" 1287 1230 "MOV R0, #0x60\n" 1288 "BL sub_FFC5 7EC4\n"1289 "BL sub_FFD 225C0\n"1231 "BL sub_FFC5556C\n" 1232 "BL sub_FFD320AC\n" 1290 1233 "LDR R0, [R4,#0x18]\n" 1291 1234 "CMP R0, #1\n" 1292 1235 "MOVNE R0, #1\n" 1293 1236 "STRNE R0, [R4,#0x18]\n" 1294 "BLNE sub_FFC5 BF6C\n"1237 "BLNE sub_FFC5C808\n" // LockMainPower\n" 1295 1238 "MOV R0, #9\n" 1296 "BL sub_FFC6 5C2C\n"1239 "BL sub_FFC66470\n" 1297 1240 "LDMFD SP!, {R4,LR}\n" 1298 "B sub_FFD21374\n" 1299 ); 1300 } 1301 1302 1303 1304 1305 1306 void __attribute__((naked,noinline)) sub_FFC65CE8_my(){ 1241 "B sub_FFD30F90\n" 1242 ); 1243 } // #fe 1244 1245 1246 1247 1248 void __attribute__((naked,noinline)) sub_FFC6652C_my(){ 1307 1249 asm volatile( 1308 1250 "STMFD SP!, {R4,LR}\n" 1309 "LDR R1, =0xFFC6 5E9C\n"1251 "LDR R1, =0xFFC666E4\n" // a_entryaction_1 ; "_EntryActionOnMoving" 1310 1252 "MOV R0, #0x60\n" 1311 "BL sub_FFC5 7EC4\n"1312 "LDR R1, =0x5 E5C\n"1253 "BL sub_FFC5556C\n" 1254 "LDR R1, =0x5BB0\n" 1313 1255 "MOV R0, #0\n" 1314 1256 "STR R0, [R1,#0xC]\n" 1315 1257 "MOV R0, #4\n" 1316 "BL sub_FFC6 5C2C\n"1258 "BL sub_FFC66470\n" 1317 1259 "LDMFD SP!, {R4,LR}\n" 1318 "B sub_FFC65420_my\n" //-------------> 1319 ); 1320 } 1321 1322 void __attribute__((naked,noinline)) sub_FFC65420_my(){ 1323 asm volatile( 1324 "LDR R0, =0x5E18\n" 1260 "B sub_FFC65C5C_my\n" // Continue here 1261 1262 ); 1263 } //#fe 1264 1265 void __attribute__((naked,noinline)) sub_FFC65C5C_my(){ 1266 asm volatile( 1267 "LDR R0, =0x5B6C\n" 1325 1268 "STMFD SP!, {R3,LR}\n" 1326 1269 "LDR R1, [R0,#0x40]\n" … … 1328 1271 "MOVNE R1, #1\n" 1329 1272 "STRNE R1, [R0,#0x40]\n" 1330 "BLNE sub_FFC5 BF6C\n"1273 "BLNE sub_FFC5C808\n" // LockMainPower\n" 1331 1274 "MOV R1, #0\n" 1332 1275 "MOV R0, #0x80\n" 1333 "BL sub_FFC66 1AC\n"1276 "BL sub_FFC6695C\n" 1334 1277 "MOV R2, #2\n" 1335 1278 "MOV R1, SP\n" 1336 1279 "MOV R0, #0x6B\n" 1337 "BL sub_FFC5 9C2C\n"1280 "BL sub_FFC5819C\n" // PT_GetPropertyCaseString_0\n" 1338 1281 "MOV R2, #2\n" 1339 1282 "MOV R1, SP\n" 1340 1283 "MOV R0, #0xA3\n" 1341 "BL sub_FFC5 9B24\n"1342 "BL sub_FFC4 A918\n"1343 "BL sub_FFC6 47FC\n"1344 "BL sub_FFC1 842C_my\n" //---------------->1345 "BL sub_FFC6 4D70\n"1284 "BL sub_FFC5809C\n" // PT_GetPropertyCaseString\n" 1285 "BL sub_FFC47434\n" 1286 "BL sub_FFC65000\n" 1287 "BL sub_FFC16B74_my\n" // Continue here (SSAPI:RecordMovie) 1288 "BL sub_FFC655AC\n" 1346 1289 "LDMFD SP!, {R12,PC}\n" 1347 1290 ); 1348 } 1349 1350 1351 1352 1353 1354 void __attribute__((naked,noinline)) sub_FFC1 842C_my(){1291 } //#fe 1292 1293 1294 1295 1296 1297 void __attribute__((naked,noinline)) sub_FFC16B74_my(){ 1355 1298 asm volatile( 1356 1299 "STMFD SP!, {R4,LR}\n" 1357 1300 "MOV R4, R0\n" 1358 1301 "MOV R0, #0x20\n" 1359 "LDR R1, =0xFFC1 8554\n"1360 "BL sub_FFC5 7EC4\n"1361 "BL sub_FFC1 89A8\n"1302 "LDR R1, =0xFFC16C94\n" // aSsapiRecordmov ; "SSAPI::RecordMovie" 1303 "BL sub_FFC5556C\n" 1304 "BL sub_FFC16FC8\n" 1362 1305 "CMP R0, #0\n" 1363 1306 "LDMNEFD SP!, {R4,PC}\n" 1364 "MOV R0, #4\n" 1365 "BL sub_FFC48200\n" 1366 "BL sub_FFC4B9CC\n" 1307 "BL sub_FFC48A68\n" 1367 1308 "MOV R0, R4\n" 1368 1309 "LDMFD SP!, {R4,LR}\n" 1369 "B sub_FFC4DB58_my\n" //-----------------> 1370 ); 1371 } 1372 1373 1374 1375 1376 1377 1378 1379 1380 void __attribute__((naked,noinline)) sub_FFC4DB58_my(){ 1310 "B sub_FFC4AB5C_my\n" // Continue here 1311 ); 1312 } // #fe 1313 1314 1315 1316 void __attribute__((naked,noinline)) sub_FFC4AB5C_my(){ 1381 1317 asm volatile( 1382 1318 "STMFD SP!, {R4-R8,LR}\n" … … 1386 1322 "MOV R5, #0\n" 1387 1323 "STR R0, [SP,#0x34]\n" 1388 "BL sub_FFC4 DB28\n"1389 "CMP R0, #0\n" 1390 "LDRNE R1, =0x1 3B\n"1391 "BNE loc_FFC4 DD04\n"1392 "LDR R4, =0x5 6B8\n"1393 "MOV R1, #0x 1E\n"1394 "LDR R0, [R4,# 0xC]\n"1395 "BL sub_FFC1 8E20\n"1396 "BL sub_FFC5 9DBC\n"1324 "BL sub_FFC4AB2C\n" 1325 "CMP R0, #0\n" 1326 "LDRNE R1, =0x163\n" 1327 "BNE loc_FFC4AD08\n" 1328 "LDR R4, =0x52E4\n" 1329 "MOV R1, #0x5E\n" 1330 "LDR R0, [R4,#8]\n" 1331 "BL sub_FFC173FC\n" 1332 "BL sub_FFC5832C\n" 1397 1333 "STR R0, [R4,#4]\n" 1398 1334 "MOV R0, #0\n" 1399 "BL sub_FFC5 5F0C\n"1335 "BL sub_FFC52170\n" 1400 1336 "STR R0, [SP,#0x28]\n" 1401 1337 "ADD R0, SP, #0x28\n" 1402 1338 "MOV R1, SP\n" 1403 "BL sub_FFC5 6058\n"1339 "BL sub_FFC522BC\n" 1404 1340 "MOV R0, SP\n" 1405 "BL sub_FFC5 5F40\n"1341 "BL sub_FFC521A4\n" 1406 1342 "STR R0, [SP,#0x2C]\n" 1407 1343 "LDR R0, [R4,#4]\n" … … 1409 1345 "ADD R2, SP, #0x2C\n" 1410 1346 "MOV R1, #0x34\n" 1411 "BL sub_FFC5 A0DC\n"1347 "BL sub_FFC58640\n" 1412 1348 "LDR R7, [SP,#0x2C]\n" 1413 "BL sub_FFC4 E080\n"1349 "BL sub_FFC4B04C\n" 1414 1350 "MOV R6, #0\n" 1415 1351 "ADD R1, SP, #0x28\n" … … 1417 1353 "STR R6, [SP,#0x2C]\n" 1418 1354 "STR R6, [SP,#0x28]\n" 1419 "BL sub_FFC 21C3C\n"1355 "BL sub_FFC1F6E8\n" 1420 1356 "LDR R0, [R4,#4]\n" 1421 1357 "MOV R3, #2\n" 1422 1358 "ADD R2, SP, #0x2C\n" 1423 1359 "MOV R1, #0x2F\n" 1424 "BL sub_FFC5 A0DC\n"1360 "BL sub_FFC58640\n" 1425 1361 "LDR R0, [R4,#4]\n" 1426 1362 "MOV R3, #2\n" 1427 1363 "ADD R2, SP, #0x28\n" 1428 1364 "MOV R1, #0x2D\n" 1429 "BL sub_FFC5 A0DC\n"1365 "BL sub_FFC58640\n" 1430 1366 "ADD R1, SP, #0x28\n" 1431 1367 "ADD R0, SP, #0x2C\n" 1432 "BL sub_FFC2 4B70\n"1368 "BL sub_FFC23048\n" 1433 1369 "LDR R0, [R4,#4]\n" 1434 1370 "MOV R3, #2\n" 1435 1371 "ADD R2, SP, #0x2C\n" 1436 1372 "MOV R1, #0x30\n" 1437 "BL sub_FFC5 A0DC\n"1373 "BL sub_FFC58640\n" 1438 1374 "ADD R1, SP, #0x28\n" 1439 1375 "ADD R0, SP, #0x2C\n" 1440 "BL sub_FFC 22400\n"1376 "BL sub_FFC1FEC0\n" 1441 1377 "LDR R0, [R4,#4]\n" 1442 1378 "MOV R3, #2\n" 1443 1379 "ADD R2, SP, #0x28\n" 1444 1380 "MOV R1, #0x2E\n" 1445 "BL sub_FFC5 A0DC\n"1381 "BL sub_FFC58640\n" 1446 1382 "LDR R0, [R4,#4]\n" 1447 1383 "MOV R3, #2\n" 1448 1384 "ADD R2, SP, #0x2C\n" 1449 1385 "MOV R1, #0xB8\n" 1450 "BL sub_FFC5 A188\n"1386 "BL sub_FFC586EC\n" 1451 1387 "TST R0, #1\n" 1452 "LDRNE R1, =0x1 1D\n"1453 "LDRNE R0, =0xFFC4 DF7C\n"1454 "BLNE sub_FFC0 C098\n"1388 "LDRNE R1, =0x142\n" 1389 "LDRNE R0, =0xFFC4AF80\n" // aSsmovierec_c ; "SsMovieRec.c" 1390 "BLNE sub_FFC0BDB8\n" // DebugAssert 1455 1391 "LDRH R0, [SP,#0x2C]\n" 1456 1392 "MOV R3, #4\n" … … 1461 1397 "LDR R0, [R4,#4]\n" 1462 1398 "MOV R1, #0x92\n" 1463 "BL sub_FFC5 A0DC\n"1399 "BL sub_FFC58640\n" 1464 1400 "MOV R2, #1\n" 1465 1401 "ADD R1, SP, #0x34\n" 1466 1402 "MOV R0, #0xFA\n" 1467 "BL sub_FFC5 9C2C\n"1403 "BL sub_FFC5819C\n" // PT_GetPropertyCaseString 1468 1404 "TST R0, #1\n" 1469 "LDRNE R1, =0x1 52\n"1470 "LDRNE R0, =0xFFC4 DF7C\n"1471 "BLNE sub_FFC0 C098\n"1405 "LDRNE R1, =0x17A\n" 1406 "LDRNE R0, =0xFFC4AF80\n" // aSsmovierec_c ; "SsMovieRec.c" 1407 "BLNE sub_FFC0BDB8\n" // DebugAssert 1472 1408 "LDRB R0, [SP,#0x34]\n" 1473 1409 "MOV R3, R8\n" … … 1476 1412 "ADD R0, SP, #0x30\n" 1477 1413 "STR R7, [SP]\n" 1478 "BL sub_FFCE 6924\n"1414 "BL sub_FFCEBB1C\n" 1479 1415 "TST R0, #1\n" 1480 "LDRNE R1, =0x1 56\n"1481 "BNE loc_FFC4 DD04\n"1482 "LDR R0, =0x1 926C\n"1416 "LDRNE R1, =0x17E\n" 1417 "BNE loc_FFC4AD08\n" 1418 "LDR R0, =0x18370\n" 1483 1419 "LDR R1, [SP,#0x30]\n" 1484 1420 "MOV R2, #0x10\n" 1485 "BL sub_FFCD CDE8\n"1421 "BL sub_FFCDE9C0\n" 1486 1422 "TST R0, #1\n" 1487 "BEQ loc_FFC4 DD14\n"1488 "LDR R1, =0x1 5E\n"1489 "loc_FFC4 DD04:\n"1490 "LDR R0, =0xFFC4 DF7C\n"1491 "BL sub_FFC0 C098\n"1492 "loc_FFC4 DD0C:\n"1423 "BEQ loc_FFC4AD18\n" 1424 "LDR R1, =0x186\n" 1425 "loc_FFC4AD08:\n" 1426 "LDR R0, =0xFFC4AF80\n" // aSsmovierec_c ; "SsMovieRec.c" 1427 "BL sub_FFC0BDB8\n" // DebugAssert 1428 "loc_FFC4AD10:\n" 1493 1429 "ADD SP, SP, #0x38\n" 1494 1430 "LDMFD SP!, {R4-R8,PC}\n" 1495 "loc_FFC4 DD14:\n"1431 "loc_FFC4AD18:\n" 1496 1432 "LDR R0, [R4,#4]\n" 1497 1433 "MOV R3, #4\n" 1498 1434 "ADD R2, SP, #0x30\n" 1499 1435 "MOV R1, #0x2B\n" 1500 "BL sub_FFC5 A0DC\n"1501 "BL sub_FFC6 74DC\n"1436 "BL sub_FFC58640\n" 1437 "BL sub_FFC66B40\n" 1502 1438 "LDRSB R1, [SP,#0x34]\n" 1503 1439 "CMP R0, R1\n" 1504 1440 "MOVEQ R7, #0\n" 1505 "BEQ loc_FFC4 DD68\n"1506 "LDR R5, =0x1 926C\n"1441 "BEQ loc_FFC4AD6C\n" 1442 "LDR R5, =0x18370\n" 1507 1443 "MOV R0, R5\n" 1508 "BL sub_FFC6 7658\n"1444 "BL sub_FFC66CBC\n" 1509 1445 "MOV R8, R0\n" 1510 "BL sub_FFC95 9E4\n"1446 "BL sub_FFC95774\n" 1511 1447 "CMP R8, R0\n" 1512 1448 "MOV R7, R0\n" 1513 "LDRLS R1, =0x1 6B\n"1514 "LDRLS R0, =0xFFC4 DF7C\n"1515 "BLLS sub_FFC0 C098\n"1449 "LDRLS R1, =0x193\n" 1450 "LDRLS R0, =0xFFC4AF80\n" // aSsmovierec_c ; "SsMovieRec.c" 1451 "BLLS sub_FFC0BDB8\n" // DebugAssert 1516 1452 "SUB R7, R8, R7\n" 1517 "loc_FFC4 DD68:\n"1518 "BL sub_FFC4 9C20_my\n" //----------------------->1519 "LDR R0, =0x1 9290\n"1453 "loc_FFC4AD6C:\n" 1454 "BL sub_FFC46780_my\n" // Continue here (taskcreate_MovieRecord) 1455 "LDR R0, =0x18394\n" 1520 1456 "LDRH R3, [R0,#0x46]\n" 1521 1457 "LDRH R2, [R0,#0x44]\n" 1522 1458 "LDR R1, [R0,#0x40]\n" 1523 1459 "LDR R0, [R0,#0x3C]\n" 1524 "BL sub_FFC4 8CA0\n"1460 "BL sub_FFC45800\n" 1525 1461 "MOV R3, #0\n" 1526 "LDR R2, =0xFFC4 DAF0\n"1462 "LDR R2, =0xFFC4AAF4\n" 1527 1463 "MOV R1, #0\n" 1528 "LDR R0, =0xFFC4 DB04\n"1464 "LDR R0, =0xFFC4AB08\n" 1529 1465 "ADD R8, SP, #0xC\n" 1530 1466 "STMIA R8, {R0-R3}\n" 1531 "LDR R2, =0xFFC4 DB14\n"1532 "LDR R1, =0xFFC4 DB00\n"1467 "LDR R2, =0xFFC4AB18\n" 1468 "LDR R1, =0xFFC4AB04\n" 1533 1469 "STMEA SP, {R1-R3}\n" 1534 1470 "LDR R1, [R4,#4]\n" … … 1536 1472 "MOV R2, R7\n" 1537 1473 "MOV R0, R5\n" 1538 "BL sub_FFC4 8FFC\n"1539 "LDR R0, [R4,# 0xC]\n"1474 "BL sub_FFC45B5C\n" 1475 "LDR R0, [R4,#8]\n" 1540 1476 "MOV R1, #0x20\n" 1541 "BL sub_FFC18DEC\n" 1542 "B loc_FFC4DD0C\n" 1543 ); 1544 } 1545 1546 1547 void __attribute__((naked,noinline)) sub_FFC49C20_my(){ 1477 "BL sub_FFC173C8\n" 1478 "B loc_FFC4AD10\n" 1479 ); 1480 } // #fe 1481 1482 void __attribute__((naked,noinline)) sub_FFC46780_my(){ 1548 1483 asm volatile( 1549 1484 "STMFD SP!, {R3-R9,LR}\n" 1550 "LDR R5, =0x5 538\n"1485 "LDR R5, =0x5178\n" 1551 1486 "MOV R6, #0\n" 1552 1487 "STR R6, [R5,#0x20]\n" … … 1554 1489 "LDR R8, =0x2710\n" 1555 1490 "CMP R0, #0\n" 1556 "BNE loc_FFC4 9CD8\n"1491 "BNE loc_FFC46838\n" 1557 1492 "MOV R0, #1\n" 1558 1493 "STR R0, [R5,#4]\n" 1559 1494 "MOV R0, #0\n" 1560 1495 "MOV R1, #0\n" 1561 "BL sub_FFC0B F14\n"1496 "BL sub_FFC0BC34\n" 1562 1497 "STR R0, [R5,#0x10]\n" 1563 1498 "MOV R0, #0\n" 1564 1499 "MOV R1, #0\n" 1565 "BL sub_FFC0B F14\n"1500 "BL sub_FFC0BC34\n" 1566 1501 "STR R0, [R5,#0x14]\n" 1567 1502 "MOV R0, #0\n" 1568 1503 "MOV R1, #0xA\n" 1569 "BL sub_FFC0B ECC\n"1504 "BL sub_FFC0BBEC\n" 1570 1505 "STR R0, [R5,#0x18]\n" 1571 1506 "MOV R0, #0\n" 1572 1507 "MOV R1, #0xA\n" 1573 "BL sub_FFC0B ECC\n"1574 "LDR R7, =0x1 8E70\n"1508 "BL sub_FFC0BBEC\n" 1509 "LDR R7, =0x17F84\n" 1575 1510 "MOV R4, #9\n" 1576 1511 "ADD R9, R4, #0x2D4\n" 1577 1512 "STR R0, [R5,#0x1C]\n" 1578 "loc_FFC4 9C94:\n"1513 "loc_FFC467F4:\n" 1579 1514 "RSB R0, R4, R4,LSL#3\n" 1580 1515 "STR R6, [R7,R0,LSL#2]\n" … … 1582 1517 "STR R9, [SP]\n" 1583 1518 "LDR R0, [R5,#0x1C]\n" 1584 "LDR R3, =0xFFC4 8F9C\n"1519 "LDR R3, =0xFFC45AFC\n" // aMovierecorder_ 1585 1520 "MOV R2, R8\n" 1586 "BL sub_FFC0B FD8\n"1521 "BL sub_FFC0BCF8\n" 1587 1522 "SUBS R4, R4, #1\n" 1588 "BPL loc_FFC4 9C94\n"1523 "BPL loc_FFC467F4\n" 1589 1524 "MOV R3, #0\n" 1590 1525 "STR R3, [SP]\n" 1591 "LDR R3, =MovieRecord_Task_my\n" // ----------------->1526 "LDR R3, =MovieRecord_Task_my\n" // FFC46678 task_MovieRecord 1592 1527 "MOV R2, #0x1000\n" 1593 1528 "MOV R1, #0x14\n" 1594 "LDR R0, =0xFFC4 9E28\n" // "Movierecord"1595 "BL sub_FFC0B E98\n"1596 "loc_FFC4 9CD8:\n"1597 "BL sub_FFD0 71E4\n"1598 "BL sub_FFC4 9D3C\n"1529 "LDR R0, =0xFFC46988\n" // aMovierecord ; "MovieRecord" 1530 "BL sub_FFC0BBB8\n" // KernelCreateTask 1531 "loc_FFC46838:\n" 1532 "BL sub_FFD0A4C8\n" // taskcreate_AviWrite 1533 "BL sub_FFC4689C\n" 1599 1534 "MOV R1, R0\n" 1600 1535 "MOV R0, #0xB\n" … … 1602 1537 "STR R0, [R1]\n" 1603 1538 "STR R3, [SP]\n" 1604 "LDR R3, =0xFFC4 8F9C\n"1539 "LDR R3, =0xFFC45AFC\n" // aMovierecorder_ ; "MovieRecorder.c" 1605 1540 "MOV R2, R8\n" 1606 1541 "LDR R0, [R5,#0x18]\n" 1607 "BL sub_FFC0B FD8\n"1542 "BL sub_FFC0BCF8\n" 1608 1543 "LDMFD SP!, {R3-R9,PC}\n" 1609 1544 ); 1610 } 1611 1612 1613 void __attribute__((naked,noinline)) MovieRecord_Task_my(){ 1545 } // #fe 1546 */ 1547 1548 void __attribute__((naked,noinline)) MovieRecord_Task_my(){ 1614 1549 asm volatile( 1615 1550 "STMFD SP!, {R2-R8,LR}\n" 1616 1551 "LDR R8, =0x32B\n" 1617 1552 "LDR R7, =0x2710\n" 1618 "LDR R4, =0x5 538\n"1553 "LDR R4, =0x5178\n" 1619 1554 "MOV R6, #0\n" 1620 1555 "MOV R5, #1\n" 1621 "loc_FFC4 9B30:\n"1556 "loc_FFC46690:\n" 1622 1557 "LDR R0, [R4,#0x18]\n" 1623 1558 "MOV R2, #0\n" 1624 1559 "ADD R1, SP, #4\n" 1625 "BL sub_FFC1 9070\n"1560 "BL sub_FFC1764C\n" 1626 1561 "LDR R0, [R4,#0x20]\n" 1627 1562 "CMP R0, #0\n" 1628 "BNE loc_FFC4 9C00\n"1563 "BNE loc_FFC46760\n" 1629 1564 "LDR R0, [SP,#4]\n" 1630 1565 "LDR R1, [R0]\n" … … 1632 1567 "CMP R1, #9\n" 1633 1568 "ADDLS PC, PC, R1,LSL#2\n" 1634 "B loc_FFC4 9C00\n"1635 "loc_FFC4 9B64:\n"1636 "B loc_FFC4 9BB4\n"1637 "loc_FFC4 9B68:\n"1638 "B loc_FFC4 9BD4\n"1639 "loc_FFC4 9B6C:\n"1640 "B loc_FFC4 9BE4\n"1641 "loc_FFC4 9B70:\n"1642 "B loc_FFC4 9BEC\n"1643 "loc_FFC4 9B74:\n"1644 "B loc_FFC4 9BBC\n"1645 "loc_FFC4 9B78:\n"1646 "B loc_FFC4 9BF4\n"1647 "loc_FFC4 9B7C:\n"1648 "B loc_FFC4 9BC4\n"1649 "loc_FFC4 9B80:\n"1650 "B loc_FFC4 9C00\n"1651 "loc_FFC4 9B84:\n"1652 "B loc_FFC4 9BFC\n"1653 "loc_FFC4 9B88:\n"1654 "B loc_FFC4 9B8C\n"1655 "loc_FFC4 9B8C:\n"1656 "LDR R0, =0xFFC4 9814\n"1569 "B loc_FFC46760\n" 1570 "loc_FFC466C4:\n" 1571 "B loc_FFC46714\n" 1572 "loc_FFC466C8:\n" 1573 "B loc_FFC46734\n" 1574 "loc_FFC466CC:\n" 1575 "B loc_FFC46744\n" 1576 "loc_FFC466D0:\n" 1577 "B loc_FFC4674C\n" 1578 "loc_FFC466D4:\n" 1579 "B loc_FFC4671C\n" 1580 "loc_FFC466D8:\n" 1581 "B loc_FFC46754\n" 1582 "loc_FFC466DC:\n" 1583 "B loc_FFC46724\n" 1584 "loc_FFC466E0:\n" 1585 "B loc_FFC46760\n" 1586 "loc_FFC466E4:\n" 1587 "B loc_FFC4675C\n" 1588 "loc_FFC466E8:\n" 1589 "B loc_FFC466EC\n" 1590 "loc_FFC466EC:\n" 1591 "LDR R0, =0xFFC46374\n" 1657 1592 "STR R6, [R4,#0x34]\n" 1658 1593 "STR R0, [R4,#0xA0]\n" 1659 "LDR R0, =0xFFC4 928C\n"1660 "LDR R2, =0xFFC4 91A8\n"1661 "LDR R1, =0x18 F98\n"1594 "LDR R0, =0xFFC45DEC\n" 1595 "LDR R2, =0xFFC45D08\n" 1596 "LDR R1, =0x180AC\n" 1662 1597 "STR R6, [R4,#0x24]\n" 1663 "BL sub_FFC 2B58C\n"1598 "BL sub_FFCA2C98\n" 1664 1599 "STR R5, [R4,#0x38]\n" 1665 "B loc_FFC4 9C00\n"1666 "loc_FFC4 9BB4:\n"1667 "BL unlock_optical_zoom\n" // +1668 "BL sub_FFC4 990C\n"1669 "B loc_FFC4 9C00\n"1670 "loc_FFC4 9BBC:\n"1671 "BL sub_FFC4 9614_my\n" //------------------->1672 "B loc_FFC4 9C00\n"1673 "loc_FFC4 9BC4:\n"1600 "B loc_FFC46760\n" 1601 "loc_FFC46714:\n" 1602 "BL unlock_optical_zoom\n" // + 1603 "BL sub_FFC4646C\n" 1604 "B loc_FFC46760\n"