Index: /trunk/platform/a470/sub/100e/stubs_entry_ida.S
===================================================================
--- /trunk/platform/a470/sub/100e/stubs_entry_ida.S	(revision 785)
+++ /trunk/platform/a470/sub/100e/stubs_entry_ida.S	(revision 785)
@@ -0,0 +1,232 @@
+
+NSTUB(eventproc_export_memShow, 0xffc00bd0)
+
+NSTUB(eventproc_export_CreateCountingSemaphore, 0xffc0b670)
+NSTUB(eventproc_export_DeleteSemaphore, 0xffc0b6c8)
+
+NSTUB(eventproc_export_TakeSemaphore, 0xffc0b774)
+NSTUB(eventproc_export_GiveSemaphore, 0xffc0b844)
+
+NSTUB(eventproc_export_CreateTask, 0xffc0b8e0)
+
+NSTUB(eventproc_export_ExitTask, 0xffc0bb70)
+
+NSTUB(eventproc_export_RotateConsoleZOder, 0xffc0c4c0)
+
+NSTUB(eventproc_export_CPrintf, 0xffc0c6d0)
+NSTUB(eventproc_export_CPutChar, 0xffc0c72c)
+NSTUB(eventproc_export_GetCh, 0xffc0c758)
+NSTUB(eventproc_export_GetStringWithPrompt, 0xffc0c7a8)
+NSTUB(eventproc_export_OpenConsole, 0xffc0c808)
+NSTUB(eventproc_export_CloseConsole, 0xffc0c96c)
+
+NSTUB(eventproc_export_StartRedirectUART, 0xffc0d04c)
+NSTUB(eventproc_export_StopRedirectUART, 0xffc0d164)
+
+NSTUB(eventproc_export_sprintf, 0xffc0d7c8)
+
+NSTUB(eventproc_export_strcpy, 0xffc0d88c)
+NSTUB(eventproc_export_strcmp, 0xffc0d8a4)
+NSTUB(eventproc_export_strlen, 0xffc0d8e8)
+NSTUB(eventproc_export_memcmp, 0xffc0d90c)
+
+NSTUB(eventproc_export_Fopen_Fut, 0xffc13544)
+NSTUB(eventproc_export_Fclose_Fut, 0xffc13584)
+NSTUB(eventproc_export_Fread_Fut, 0xffc13630)
+NSTUB(eventproc_export_Fwrite_Fut, 0xffc13684)
+
+NSTUB(eventproc_export_Fseek_Fut, 0xffc13724)
+
+NSTUB(eventproc_export_Open, 0xffc13b34)
+NSTUB(eventproc_export_Close, 0xffc13b5c)
+
+NSTUB(eventproc_export_Read, 0xffc13c04)
+NSTUB(eventproc_export_Write, 0xffc13c08)
+
+NSTUB(eventproc_export_Lseek, 0xffc13d64)
+
+NSTUB(eventproc_export_StartCameraLog, 0xffc1422c)
+NSTUB(eventproc_export_ShowCameraLog, 0xffc14230)
+NSTUB(eventproc_export_ShowCameraLogInfo, 0xffc14234)
+NSTUB(eventproc_export_StopCameraLog, 0xffc14238)
+NSTUB(eventproc_export_PutsCameraLogEvent, 0xffc1423c)
+
+NSTUB(eventproc_export_NewTaskShell, 0xffc142bc)
+
+NSTUB(eventproc_export_ExMem, 0xffc142d4)
+
+NSTUB(eventproc_export_SleepTask, 0xffc17c9c)
+
+NSTUB(eventproc_export_EraseLogSector, 0xffc4e4f8)
+
+NSTUB(eventproc_export_UnLoadScript, 0xffc50b5c)
+
+NSTUB(eventproc_export_LoadScript, 0xffc50c10)
+
+NSTUB(eventproc_export_OpLog_Stop, 0xffc54d94)
+NSTUB(eventproc_export_OpLog_ReadFromROM, 0xffc54dc0)
+NSTUB(eventproc_export_OpLog_ReadFromSD, 0xffc54e40)
+NSTUB(eventproc_export_OpLog_WriteToSD, 0xffc551e8)
+NSTUB(eventproc_export_OpLog_WriteToROM, 0xffc555f0)
+NSTUB(eventproc_export_OpLog_Get, 0xffc55618)
+NSTUB(eventproc_export_OpLog_Show, 0xffc55638)
+NSTUB(eventproc_export_OpLog_Play, 0xffc556d4)
+
+NSTUB(eventproc_export_OpLog_Start, 0xffc55808)
+
+NSTUB(eventproc_export_StartWDT, 0xffc56130)
+NSTUB(eventproc_export_StopWDT, 0xffc56194)
+
+NSTUB(eventproc_export_GetBuildDate, 0xffc56284)
+NSTUB(eventproc_export_GetBuildTime, 0xffc5628c)
+NSTUB(eventproc_export_GetFirmwareVersion, 0xffc56294)
+
+NSTUB(eventproc_export_CheckSumAll, 0xffc563a0)
+NSTUB(eventproc_export_RomCheckSum, 0xffc56590)
+
+NSTUB(eventproc_export_FmtMenu_ExecuteQuickFormat, 0xffc59c54)
+
+NSTUB(eventproc_export_CreateController, 0xffc5a938)
+NSTUB(eventproc_export_DeleteController, 0xffc5a9f4)
+
+NSTUB(eventproc_export_MoveControllerToTopOfZOrder, 0xffc5ab78)
+
+NSTUB(eventproc_export_GetSelfControllerHandle, 0xffc5acbc)
+
+NSTUB(eventproc_export_PostLogicalEventForNotPowerType, 0xffc5b0f4)
+NSTUB(eventproc_export_PostLogicalEventToUI, 0xffc5b140)
+NSTUB(eventproc_export_PostEventShootSeqToUI, 0xffc5b1b8)
+NSTUB(eventproc_export_ShowLogicalEventName, 0xffc5b20c)
+
+NSTUB(eventproc_export_IsControlEventActive, 0xffc5b7b0)
+
+NSTUB(eventproc_export_SetScriptMode, 0xffc5b870)
+
+NSTUB(eventproc_export_UiEvnt_StartDisguiseCradleStatus, 0xffc5b898)
+
+NSTUB(eventproc_export_UnlockMainPower, 0xffc5b9d8)
+NSTUB(eventproc_export_LockMainPower, 0xffc5ba84)
+NSTUB(eventproc_export_SetAutoShutdownTime, 0xffc5baf8)
+
+NSTUB(eventproc_export_HardwareDefectWithRestart, 0xffc5bcd0)
+NSTUB(eventproc_export_HardwareDefect, 0xffc5bd20)
+
+NSTUB(eventproc_export_PTM_AllResetToFactorySetting, 0xffc5bf34)
+NSTUB(eventproc_export_PTM_AllReset, 0xffc5bf44)
+
+NSTUB(eventproc_export_PTM_SetCurrentCaptureMode, 0xffc5c2ac)
+
+NSTUB(eventproc_export_PTM_GetWorkingCaptureMode, 0xffc5c3c4)
+NSTUB(eventproc_export_PTM_SetCurrentItem, 0xffc5c3c8)
+
+NSTUB(eventproc_export_PTM_GetCurrentItem, 0xffc5c3d4)
+
+NSTUB(eventproc_export_PTM_NextItem, 0xffc5c440)
+NSTUB(eventproc_export_PTM_PrevItem, 0xffc5c444)
+
+NSTUB(eventproc_export_PTM_IsEnableItem, 0xffc5c454)
+NSTUB(eventproc_export_PTM_SetProprietyEnable, 0xffc5c458)
+
+NSTUB(eventproc_export_PTM_BackupUIProperty, 0xffc5c470)
+NSTUB(eventproc_export_PTM_RestoreUIProperty, 0xffc5c474)
+
+NSTUB(eventproc_export_SetCurrentCaptureModeType, 0xffc61d9c)
+NSTUB(eventproc_export_GetCurrentCaptureModeType, 0xffc61dd8)
+
+NSTUB(eventproc_export_StartGUISystem, 0xffc6e854)
+
+NSTUB(eventproc_export_atol, 0xffc6e994)
+
+NSTUB(eventproc_export_memcpy, 0xffc6ebb4)
+
+NSTUB(eventproc_export_SetSDPwrPort, 0xffd0a024)
+NSTUB(eventproc_export_GetAdVBattBottom, 0xffd0a050)
+NSTUB(eventproc_export_GetAdChValue, 0xffd0a054)
+NSTUB(eventproc_export_BeepDrive, 0xffd0a058)
+NSTUB(eventproc_export_VbattGet, 0xffd0a05c)
+NSTUB(eventproc_export_LEDDrive, 0xffd0a060)
+NSTUB(eventproc_export_ShowPhySwStatus, 0xffd0a064)
+NSTUB(eventproc_export_SetRawSWCheckMode, 0xffd0a074)
+NSTUB(eventproc_export_OnPrintPhySw, 0xffd0a084)
+NSTUB(eventproc_export_OffPrintPhySw, 0xffd0a094)
+NSTUB(eventproc_export_GetSwitchStatus, 0xffd0a0a4)
+NSTUB(eventproc_export_ShowSDStatus, 0xffd0a0a8)
+NSTUB(eventproc_export_GetSDDetect, 0xffd0a0b8)
+NSTUB(eventproc_export_GetSDProtect, 0xffd0a0bc)
+NSTUB(eventproc_export_SetIgnoreAVJACK, 0xffd0a0c0)
+NSTUB(eventproc_export_GetDialEventId, 0xffd0a0d0)
+
+NSTUB(eventproc_export_MonSelEvent, 0xffd0a2e8)
+NSTUB(eventproc_export_MemoryChecker, 0xffd0a2ec)
+NSTUB(eventproc_export_VerifyByte, 0xffd0a2f0)
+NSTUB(eventproc_export_EraseSignature, 0xffd0a2f4)
+NSTUB(eventproc_export_SDump, 0xffd0a304)
+NSTUB(eventproc_export_Dump, 0xffd0a308)
+NSTUB(eventproc_export_Dump32, 0xffd0a318)
+NSTUB(eventproc_export_Poke32, 0xffd0a32c)
+NSTUB(eventproc_export_Poke16, 0xffd0a33c)
+NSTUB(eventproc_export_Poke8, 0xffd0a34c)
+NSTUB(eventproc_export_Peek32, 0xffd0a35c)
+NSTUB(eventproc_export_Peek16, 0xffd0a360)
+NSTUB(eventproc_export_Peek8, 0xffd0a364)
+NSTUB(eventproc_export_Wait, 0xffd0a368)
+
+NSTUB(eventproc_export_ShowAllTaskInfo, 0xffd0a37c)
+
+NSTUB(eventproc_export_UI_ShowStateOfRecMode, 0xffd0ac64)
+
+NSTUB(eventproc_export_UIFS_SetDialStillRec, 0xffd0ad64)
+NSTUB(eventproc_export_UIFS_SetDialMovieRec, 0xffd0ad8c)
+NSTUB(eventproc_export_UIFS_SetDialPlay, 0xffd0adb4)
+NSTUB(eventproc_export_UIFS_OpenPopupStrobe, 0xffd0addc)
+NSTUB(eventproc_export_UIFS_ClosePopupStrobe, 0xffd0ae0c)
+NSTUB(eventproc_export_UIFS_MountExtFlash, 0xffd0ae3c)
+NSTUB(eventproc_export_UIFS_UnmountExtFlash, 0xffd0ae6c)
+NSTUB(eventproc_export_UIFS_PressTeleButton, 0xffd0ae9c)
+NSTUB(eventproc_export_UIFS_UnpressTeleButton, 0xffd0aed8)
+NSTUB(eventproc_export_UIFS_PressWideButton, 0xffd0af10)
+NSTUB(eventproc_export_UIFS_UnpressWideButton, 0xffd0af4c)
+NSTUB(eventproc_export_UIFS_ConnectVideo, 0xffd0af84)
+NSTUB(eventproc_export_UIFS_DisconnectVideo, 0xffd0afb4)
+NSTUB(eventproc_export_UIFS_MoveZoomTo, 0xffd0afe4)
+NSTUB(eventproc_export_UIFS_StopPostingUIEvent, 0xffd0afe8)
+NSTUB(eventproc_export_UIFS_RestartPostingUIEvent, 0xffd0afec)
+NSTUB(eventproc_export_UIFS_SetCaptureModeToP, 0xffd0aff0)
+NSTUB(eventproc_export_UIFS_SetCaptureModeToTv, 0xffd0b024)
+NSTUB(eventproc_export_UIFS_SetCaptureModeToM, 0xffd0b058)
+NSTUB(eventproc_export_UIFS_SetCaptureModeToMacro, 0xffd0b08c)
+NSTUB(eventproc_export_UIFS_SetCaptureModeToISO3200, 0xffd0b094)
+NSTUB(eventproc_export_UIFS_Capture, 0xffd0b09c)
+NSTUB(eventproc_export_UIFS_CaptureNoneStop, 0xffd0b0a0)
+NSTUB(eventproc_export_UIFS_StartMovieRecord, 0xffd0b0a4)
+NSTUB(eventproc_export_UIFS_StopMovieRecord, 0xffd0b0a8)
+NSTUB(eventproc_export_UIFS_StartClockMode, 0xffd0b0ac)
+NSTUB(eventproc_export_UIFS_EndClockMode, 0xffd0b0b4)
+NSTUB(eventproc_export_UIFS_SetCradleSetting, 0xffd0b0bc)
+NSTUB(eventproc_export_UIFS_WriteFirmInfoToFile, 0xffd0b0c0)
+NSTUB(eventproc_export_UIFS_GetMovieRecoadableNumber, 0xffd0b0c4)
+NSTUB(eventproc_export_UIFS_GetStillShotableNumber, 0xffd0b10c)
+
+NSTUB(eventproc_export_WriteToRom, 0xffd11be4)
+NSTUB(eventproc_export_EraseSectorOfRom, 0xffd11c94)
+
+NSTUB(eventproc_export_GetTimeOfSystem, 0xffd15bb8)
+
+NSTUB(eventproc_export_ExecuteResetFactoryWithRomWrite, 0xffd2aa54)
+
+NSTUB(eventproc_export_memset, 0xffd67c50)
+
+NSTUB(eventproc_export_sscanf, 0xffd68194)
+
+NSTUB(eventproc_export_AdditionAgentRAM, 0xffddba40)
+
+NSTUB(eventproc_export_StartDirectTransferManager, 0xffdef984)
+
+NSTUB(eventproc_export_StoptDtConfirmMenu, 0xffdf0508)
+
+NSTUB(eventproc_export_StartDtConfirmMenu, 0xffdf0650)
+
+NSTUB(eventproc_export_StoptDtExecuteMenu, 0xffe44db8)
+
+NSTUB(eventproc_export_StartDtExecuteMenu, 0xffe45144)
+
Index: /trunk/platform/a470/sub/100e/capt_seq.c
===================================================================
--- /trunk/platform/a470/sub/100e/capt_seq.c	(revision 785)
+++ /trunk/platform/a470/sub/100e/capt_seq.c	(revision 785)
@@ -0,0 +1,280 @@
+#include "lolevel.h"
+#include "platform.h"
+#include "core.h"
+
+static long *nrflag = (long*)0x9F90;
+
+#include "../../../generic/capt_seq.c"
+
+void __attribute__((naked,noinline)) sub_FFD0CAE8_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R0-R10,LR}\n"
+                "MOV     R6, #0\n"
+                "MOV     R4, R0\n"
+                "BL      sub_FFD0D5E8\n"
+                "MVN     R1, #0\n"
+                "BL      sub_FFC173EC\n"
+                "MOV     R2, #4\n"
+                "ADD     R1, SP, #0x30-0x28\n"
+                "MOV     R0, #0x8A\n"
+                "BL      sub_FFC56F08\n"
+                "TST     R0, #1\n"
+                "MOVNE   R1, #0x218\n"
+                "LDRNE   R0, =0xFFD0CCFC\n"
+                "BLNE    sub_FFC0BDB8\n"
+                "LDR     R8, =0x1973C\n"
+                "LDR     R5, =0x19690\n"
+                "LDRSH   R1, [R8,#0xE]\n"
+                "LDR     R0, [R5,#0x74]\n"
+                "BL      sub_FFCCB1F0\n"
+                "BL      sub_FFC32B68\n"
+                "LDR     R2, =0x888C\n"
+                "ADD     R3, R4, #0x8C\n"
+                "STRH    R0, [R4,#0x88]\n"
+                "STR     R2, [SP]\n"  //Was "STRD    R2, [SP,#0x30-0x30]\n"
+                "STR     R3, [SP,#4]\n" //
+                "MOV     R1, R0\n"
+                "LDRH    R0, [R5,#0x4C]\n"
+                "LDRSH   R2, [R8,#0xC]\n"
+                "LDR     R3, =0x8888\n"
+                "BL      sub_FFD0DAD4\n"
+                "BL      wait_until_remote_button_is_released\n"
+                "BL      capt_seq_hook_set_nr\n"
+				"BL      sub_FFD0CB5C\n"
+ );
+}
+
+
+void __attribute__((naked,noinline)) task_CaptSeqTask_my() //#fs
+{
+	asm volatile (
+                "STMFD   SP!, {R3-R7,LR}\n"
+                "LDR     R6, =0x52D0\n"
+"loc_FFC488AC:\n"
+                "LDR     R0, [R6,#8]\n"
+                "MOV     R2, #0\n"
+                "MOV     R1, SP\n"
+                "BL      sub_FFC1763C\n"
+                "TST     R0, #1\n"
+                "BEQ     loc_FFC488D8\n"
+                "LDR     R1, =0x48E\n"
+                "LDR     R0, =0xFFC485CC\n"
+                "BL      sub_FFC0BDB8\n"
+                "BL      sub_FFC0BB70\n"
+                "LDMFD   SP!, {R3-R7,PC}\n"
+"loc_FFC488D8:\n"
+                //"LDR     R0, [SP,#0x18-0x18]\n"
+				"LDR     R0, [SP]\n" //+
+                "LDR     R1, [R0]\n"
+				
+                "LDR     R2, =0x1850\n"         // DEBUG: Save jumptable-target ...
+                "STR     R1, [R2]\n"            // ...to some unused space. Read and displayed in GUI in core/gui.c
+				
+                "CMP     R1, #0x19\n"
+                "ADDLS   PC, PC, R1,LSL#2\n"
+                "B       loc_FFC48AEC\n"
+"loc_FFC488EC:\n"
+                "B       loc_FFC48954\n"
+"loc_FFC488F0:\n"
+                "B       loc_FFC4895C\n"
+"loc_FFC488F4:\n"
+                "B       loc_FFC489DC\n"
+"loc_FFC488F8:\n"
+                "B       loc_FFC489F0\n"
+"loc_FFC488FC:\n"
+                "B       loc_FFC489E8\n"
+"loc_FFC48900:\n"
+                "B       loc_FFC489F8\n"
+"loc_FFC48904:\n"
+                "B       loc_FFC48A00\n"
+"loc_FFC48908:\n"
+                "B       loc_FFC48A0C\n"
+"loc_FFC4890C:\n"
+                "B       loc_FFC48A64\n"
+"loc_FFC48910:\n"
+                "B       loc_FFC489F0\n"
+"loc_FFC48914:\n"
+                "B       loc_FFC48A6C\n"
+"loc_FFC48918:\n"
+                "B       loc_FFC48A74\n"
+"loc_FFC4891C:\n"
+                "B       loc_FFC48A7C\n"
+"loc_FFC48920:\n"
+                "B       loc_FFC48A84\n"
+"loc_FFC48924:\n"
+                "B       loc_FFC48A8C\n"
+"loc_FFC48928:\n"
+                "B       loc_FFC48A98\n"
+"loc_FFC4892C:\n"
+                "B       loc_FFC48AA0\n"
+"loc_FFC48930:\n"
+                "B       loc_FFC48AA8\n"
+"loc_FFC48934:\n"
+                "B       loc_FFC48AB0\n"
+"loc_FFC48938:\n"
+                "B       loc_FFC48ABC\n"
+"loc_FFC4893C:\n"
+                "B       loc_FFC48AC4\n"
+"loc_FFC48940:\n"
+                "B       loc_FFC48ACC\n"
+"loc_FFC48944:\n"
+                "B       loc_FFC48AD4\n"
+"loc_FFC48948:\n"
+                "B       loc_FFC48ADC\n"
+"loc_FFC4894C:\n"
+                "B       loc_FFC48AE4\n"
+"loc_FFC48950:\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48954:\n" //1
+                "BL      sub_FFD0B650\n"
+				"BL      shooting_expo_param_override\n"  // +
+                "B       loc_FFC48A04\n"
+"loc_FFC4895C:\n" //2
+                "LDR     R4, [R0,#0xC]\n"
+                "LDR     R0, [R4,#8]\n"
+                "ORR     R0, R0, #1\n"
+                "STR     R0, [R4,#8]\n"
+                "BL      sub_FFD0B640\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFD0BA28\n"
+                "TST     R0, #1\n"
+                "MOVNE   R2, R4\n"
+                "MOVNE   R1, #1\n"
+                "BNE     loc_FFC48A5C\n"
+                "BL      sub_FFD2A16C\n"
+                "BL      sub_FFC57098\n"
+                "STR     R0, [R4,#0x14]\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFD0CA20\n"
+                "BL      sub_FFD0D484\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFD0CAE8_my\n"  //-------------->
+				"BL      capt_seq_hook_raw_here\n"  //-------------->
+                "MOV     R5, R0\n"
+                "BL      sub_FFD0E464\n"
+                "BL      sub_FFD0E4A0\n"
+                "MOV     R2, R4\n"
+                "MOV     R1, #1\n"
+                "MOV     R0, R5\n"
+                "BL      sub_FFC47080\n"
+                "BL      sub_FFD0CE98\n"
+                "CMP     R0, #0\n"
+                "LDRNE   R0, [R4,#8]\n"
+                "ORRNE   R0, R0, #0x2000\n"
+                "STRNE   R0, [R4,#8]\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC489DC:\n"
+                "MOV     R0, #1\n"
+                "BL      sub_FFD0B7E4\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC489E8:\n"
+                "BL      sub_FFD0B2B0\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC489F0:\n"
+                "BL      sub_FFD0B630\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC489F8:\n"
+                "BL      sub_FFD0B638\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48A00:\n"
+                "BL      sub_FFD0B704\n"
+"loc_FFC48A04:\n"
+                "BL      sub_FFC46D00\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48A0C:\n"
+                "LDR     R4, [R0,#0xC]\n"
+                "BL      sub_FFD0B640\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFD0BDA8\n"
+                "TST     R0, #1\n"
+                "MOV     R5, R0\n"
+                "BNE     loc_FFC48A4C\n"
+                "BL      sub_FFC57098\n"
+                "STR     R0, [R4,#0x14]\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFD0CA20\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFD0CEF8\n"
+                "MOV     R5, R0\n"
+                "LDR     R0, [R4,#0x14]\n"
+                "BL      sub_FFC572A4\n"
+"loc_FFC48A4C:\n"
+                "BL      sub_FFD0B630\n"
+                "MOV     R2, R4\n"
+                "MOV     R1, #9\n"
+                "MOV     R0, R5\n"
+"loc_FFC48A5C:\n"
+                "BL      sub_FFC47080\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48A64:\n"
+                "BL      sub_FFD0B764\n"
+                "B       loc_FFC48A04\n"
+"loc_FFC48A6C:\n"
+                "BL      sub_FFD0C024\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48A74:\n"
+                "BL      sub_FFD0C20C\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48A7C:\n"
+                "BL      sub_FFD0C29C\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48A84:\n"
+                "BL      sub_FFD0C350\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48A8C:\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFD0C4F4\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48A98:\n"
+                "BL      sub_FFD0C644\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48AA0:\n"
+                "BL      sub_FFD0C6D8\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48AA8:\n"
+                "BL      sub_FFD0C7A0\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48AB0:\n"
+                "BL      sub_FFD0B900\n"
+                "BL      sub_FFC149A0\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48ABC:\n"
+                "BL      sub_FFD0C40C\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48AC4:\n"
+                "BL      sub_FFD0C450\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48ACC:\n"
+                "BL      sub_FFD0E448\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48AD4:\n"
+                "BL      sub_FFD0E464\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48ADC:\n"
+                "BL      sub_FFD0E474\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48AE4:\n"
+                "BL      sub_FFD0E4A0\n"
+                "B       loc_FFC48AF8\n"
+"loc_FFC48AEC:\n"
+                "LDR     R1, =0x58E\n"
+                "LDR     R0, =0xFFC485CC\n"
+                "BL      sub_FFC0BDB8\n"
+"loc_FFC48AF8:\n"
+                //"LDR     R0, [SP,#0x18-0x18]\n"
+				"LDR     R0, [SP]\n" //+
+                "LDR     R1, [R0,#4]\n"
+                "LDR     R0, [R6,#4]\n"
+                "BL      sub_FFC173B8\n"
+                //"LDR     R4, [SP,#0x18-0x18]\n"
+				"LDR     R4, [SP]\n" //+
+                "LDR     R0, [R4,#8]\n"
+                "CMP     R0, #0\n"
+                "LDREQ   R1, =0x10D\n"
+                "LDREQ   R0, =0xFFC485CC\n"
+                "BLEQ    sub_FFC0BDB8\n"
+                "MOV     R0, #0\n"
+                "STR     R0, [R4,#8]\n"
+                "B       loc_FFC488AC\n"
+    );
+} //#fe
Index: /trunk/platform/a470/sub/100e/stubs_entry.S
===================================================================
--- /trunk/platform/a470/sub/100e/stubs_entry.S	(revision 785)
+++ /trunk/platform/a470/sub/100e/stubs_entry.S	(revision 785)
@@ -0,0 +1,143 @@
+// !!! THIS FILE IS GENERATED. DO NOT EDIT. !!!
+#include "stubs_asm.h"
+
+NSTUB(AllocateMemory, 0xffdda868)
+NSTUB(AllocateUncacheableMemory, 0xffc17e18)
+NSTUB(Close, 0xffc13b5c)
+NSTUB(CreateTask, 0xffc0b8e0)
+NSTUB(DeleteFile_Fut, 0xffc13408)
+// Best match: 66%
+NSTUB(EnterToCompensationEVF, 0xffc15c0c)
+NSTUB(ExecuteEventProcedure, 0xffc53380)
+// Best match: 79%
+NSTUB(ExitFromCompensationEVF, 0xffc15bdc)
+NSTUB(ExitTask, 0xffc0bb70)
+NSTUB(Fclose_Fut, 0xffc13584)
+NSTUB(Feof_Fut, 0xffc13770)
+NSTUB(Fflush_Fut, 0xffc137ac)
+NSTUB(Fgets_Fut, 0xffc136d8)
+NSTUB(Fopen_Fut, 0xffc13544)
+NSTUB(Fread_Fut, 0xffc13630)
+NSTUB(FreeMemory, 0xffdda860)
+NSTUB(FreeUncacheableMemory, 0xffc17e4c)
+NSTUB(Fseek_Fut, 0xffc13724)
+NSTUB(Fwrite_Fut, 0xffc13684)
+// ERROR: GetBatteryTemperature is not found!
+// Best match: 60%
+NSTUB(GetCCDTemperature, 0xffc32b68)
+NSTUB(GetCurrentAvValue, 0xffd032e4)
+// Best match: 64%
+NSTUB(GetCurrentTargetDistance, 0xffd023dc)
+NSTUB(GetDrive_ClusterSize, 0xffc3c8d0)
+NSTUB(GetDrive_FreeClusters, 0xffc3c938)
+NSTUB(GetDrive_TotalClusters, 0xffc3c904)
+// Best match: 93%
+NSTUB(GetFocusLensSubjectDistance, 0xffdd69ac)
+// Best match: 60%
+NSTUB(GetOpticalTemperature, 0xffc32c4c)
+// Best match: 96%
+NSTUB(GetParameterData, 0xffd29c9c)
+// Best match: 68%
+NSTUB(GetPropertyCase, 0xffc56f08)
+NSTUB(GetSystemTime, 0xffdda8c0)
+// Best match: 92%
+NSTUB(GetZoomLensCurrentPoint, 0xffd060a0)
+NSTUB(GetZoomLensCurrentPosition, 0xffdd1c94)
+// Best match: 67%
+NSTUB(IsStrobeChargeCompleted, 0xffc97108)
+NSTUB(LocalTime, 0xffc51028)
+// Best match: 93%
+NSTUB(LockMainPower, 0xffc5b568)
+NSTUB(Lseek, 0xffc13c9c)
+// Best match: 92%
+NSTUB(MakeDirectory_Fut, 0xffc1347c)
+// Best match: 69%
+NSTUB(MoveFocusLensToDistance, 0xffe28454)
+// Best match: 58%
+NSTUB(MoveZoomLensWithPoint, 0xffdd7160)
+// Best match: 62%
+NSTUB(NewTaskShell, 0xffc569cc)
+NSTUB(Open, 0xffc13b34)
+NSTUB(Read, 0xffc0a15c)
+NSTUB(ReadFastDir, 0xffdc4160)
+// Best match: 62%
+NSTUB(RefreshPhysicalScreen, 0xffd66e5c)
+NSTUB(Remove, 0xffc13ba4)
+// Best match: 93%
+NSTUB(RenameFile_Fut, 0xffc133b4)
+// Best match: 93%
+NSTUB(SetAutoShutdownTime, 0xffc5b5dc)
+NSTUB(SetFileTimeStamp, 0xffc13e38)
+// Best match: 96%
+NSTUB(SetParameterData, 0xffd29c0c)
+NSTUB(SetPropertyCase, 0xffc56e08)
+// Best match: 92%
+NSTUB(SleepTask, 0xffc17c9c)
+NSTUB(TakeSemaphore, 0xffc0b774)
+// Best match: 62%
+NSTUB(TurnOffBackLight, 0xffc65db0)
+// Best match: 77%
+NSTUB(TurnOnBackLight, 0xffc65d98)
+// Best match: 86%
+NSTUB(UIFS_WriteFirmInfoToFile, 0xffd1f7a4)
+// Best match: 93%
+NSTUB(UnlockMainPower, 0xffc5b4bc)
+// Best match: 96%
+NSTUB(UpdateMBROnFlash, 0xffc3c710)
+// Best match: 82%
+NSTUB(VbattGet, 0xffc105d0)
+NSTUB(Write, 0xffc13c08)
+NSTUB(_log, 0xffe4f520)
+NSTUB(_log10, 0xffe4e464)
+NSTUB(_pow, 0xffe4e5d4)
+NSTUB(_sqrt, 0xffe50888)
+NSTUB(close, 0xffc09f74)
+NSTUB(closedir, 0xffdc4230)
+NSTUB(closefastdir, 0xffdc4230)
+NSTUB(free, 0xffc03a98)
+// Best match: 86%
+NSTUB(kbd_p1_f, 0xffc11d08)
+// Best match: 86%
+NSTUB(kbd_p1_f_cont, 0xffc11d14)
+// Best match: 89%
+NSTUB(kbd_p2_f, 0xffc11548)
+// Best match: 62%
+NSTUB(kbd_pwr_off, 0xffc30b30)
+// ERROR: kbd_pwr_on is not found!
+// ERROR: kbd_read_keys is not found!
+// Best match: 82%
+NSTUB(kbd_read_keys_r2, 0xffc30728)
+NSTUB(lseek, 0xffc13c9c)
+NSTUB(malloc, 0xffc039c4)
+NSTUB(memcmp, 0xffc0d90c)
+NSTUB(memcpy, 0xffc6e698)
+NSTUB(memset, 0xffd67210)
+NSTUB(mkdir, 0xffc13f00)
+NSTUB(mktime_ext, 0xffc6ef04)
+NSTUB(open, 0xffc09ec4)
+NSTUB(opendir, 0xffdc40cc)
+NSTUB(openfastdir, 0xffdc40cc)
+// Best match: 95%
+NSTUB(qsort, 0xffd67718)
+// Best match: 95%
+NSTUB(rand, 0xffc0da14)
+NSTUB(read, 0xffc0a15c)
+NSTUB(readfastdir, 0xffdc4160)
+NSTUB(rename, 0xffc13c30)
+// Best match: 95%
+NSTUB(srand, 0xffc0da08)
+NSTUB(stat, 0xffc13d68)
+NSTUB(strcat, 0xffc6e484)
+// Best match: 56%
+NSTUB(strchr, 0xffc6e50c)
+NSTUB(strcmp, 0xffc0d8a4)
+NSTUB(strcpy, 0xffc0d88c)
+NSTUB(strftime, 0xffc6e90c)
+NSTUB(strlen, 0xffc0d8e8)
+NSTUB(strncmp, 0xffc6e4c0)
+NSTUB(strncpy, 0xffc1d81c)
+NSTUB(strrchr, 0xffc6e530)
+NSTUB(strtol, 0xffc1da54)
+NSTUB(time, 0xffc50edc)
+NSTUB(vsprintf, 0xffc0d80c)
+NSTUB(write, 0xffc0a1bc)
Index: /trunk/platform/a470/sub/100e/stubs_entry_2.S
===================================================================
--- /trunk/platform/a470/sub/100e/stubs_entry_2.S	(revision 785)
+++ /trunk/platform/a470/sub/100e/stubs_entry_2.S	(revision 785)
@@ -0,0 +1,51 @@
+#include "stubs_asm.h"
+
+NHSTUB(kbd_read_keys,					0xFFC11C0C)
+NHSTUB(GetBatteryTemperature,			0xFFC32BD8)
+NHSTUB(GetOpticalTemperature, 			0xFFC32C48)
+NHSTUB(EnterToCompensationEVF, 			0xFFC15A90)
+NHSTUB(ExpCtrlTool_StartContiAE,		0xFFC218C8)
+NHSTUB(ExpCtrlTool_StopContiAE,			0xFFC21A0C)
+NHSTUB(SetAE_ShutterSpeed, 				0xFFE2AB18)
+NHSTUB(MakeAFScan, 						0xFFD0B374)
+NHSTUB(PostLEDMessage,	    			0xFFC30258)
+NHSTUB(UnlockAF, 						0xFFC158B8)
+NHSTUB(DoAFLock, 						0xFFC157A0)
+NHSTUB(PT_PlaySound, 					0xFFC46714)
+NHSTUB(UnsetZoomForMovie, 				0xFFD2ED10)
+NHSTUB(PostLogicalEventForNotPowerType, 0xFFC5ABD8)
+NHSTUB(RefreshUSBMode, 					0xFFC27730)
+NHSTUB(TurnOnMic, 						0xFFC31170)
+NHSTUB(TurnOffMic, 						0xFFC311C4)
+
+NHSTUB(WriteSDCard,						0xFFCF8A00) 
+NHSTUB(PutInNdFilter, 					0xFFE267B4)
+NHSTUB(PutOutNdFilter, 					0xFFE267EC)
+
+//NSTUB(AllocateMemory, 				0xFFDF1D70)
+//NSTUB(FreeMemory, 					0xFFDF1D68)
+//NSTUB(dumpMemoryToFile, 			0xffc00948)
+//NSTUB(GetDrive_FreeClusters,		0xFFC416F0)
+//NSTUB(GetDrive_TotalClusters,		0xFFC416BC)
+//NSTUB(strcpy, 						0xFFC0D88C)
+//NHSTUB(ExecuteEventProcedure, 0xffc59eb4)
+//NHSTUB(ExitFromCompensationEVF, 0xffc15fa4)
+//NSTUB(GetAEIntegralServiceMode_0,	0xFFC1A9C4)
+//NSTUB(IsFactoryMode,				0xFFC38838)
+//NSTUB(PhySw_testgpio,				0xFFC356EC)
+
+// NOT found, using NULLSUB
+NHSTUB(kbd_pwr_on,						0xffc00948)
+NHSTUB(kbd_pwr_off,						0xffc00948)
+NSTUB(Unmount_FileSystem, 0xffc00948)
+NSTUB(Mount_FileSystem, 0xffc00948)
+NSTUB(rewinddir, 0xffc00948)
+NSTUB(SetZoomActuatorSpeedPercent, 0xffc00948)
+//NSTUB(taskcreate_AudioTsk,			0xFFC3591C)
+//NSTUB(TurnOnBackLight,				0xFFC6C558)
+//NSTUB(TurnOffBackLight,			0xFFC6C570)
+//NSTUB(unknown_libname_80, 			0xFFC668B0)
+//NSTUB(unknown_libname_96, 			0xFFC6C77C)
+//NHSTUB(OpLog_WriteToSD, 			0xFFC5B878)
+//NSTUB(open, 						0xFFC09EC4)
+//NSTUB(close, 						0xFFC09F74)
Index: /trunk/platform/a470/sub/100e/boot.c
===================================================================
--- /trunk/platform/a470/sub/100e/boot.c	(revision 785)
+++ /trunk/platform/a470/sub/100e/boot.c	(revision 785)
@@ -0,0 +1,1441 @@
+#include "lolevel.h"
+#include "platform.h"
+#include "core.h"
+
+const char * const new_sa = &_end;
+
+/* Ours stuff */
+extern long wrs_kernel_bss_start;
+extern long wrs_kernel_bss_end;
+
+// Forward declarations
+void CreateTask_PhySw();
+void CreateTask_spytask();
+
+void boot();
+
+void boot() { //#fs
+    long *canon_data_src = (void*)0xFFEAB38C; //found with "romdata start" string
+    long *canon_data_dst = (void*)0x1900;
+    long canon_data_len = 0xEBA8 - 0x1900; // data_end - data_start
+    long *canon_bss_start = (void*)0xEBA8; // just after data 
+    long canon_bss_len = 0xA5718 - 0xEBA8; // found using heapstart 
+
+    long i;
+
+    // Code taken from VxWorks CHDK. Changes CPU speed?
+    asm volatile (
+	"MRC     p15, 0, R0,c1,c0\n"
+	"ORR     R0, R0, #0x1000\n"
+	"ORR     R0, R0, #4\n"
+	"ORR     R0, R0, #1\n"
+	"MCR     p15, 0, R0,c1,c0\n"
+    :::"r0");
+
+    for(i=0;i<canon_data_len/4;i++)
+	canon_data_dst[i]=canon_data_src[i];
+
+    for(i=0;i<canon_bss_len/4;i++)
+	canon_bss_start[i]=0;
+
+/*    asm volatile (
+	"MRC     p15, 0, R0,c1,c0\n"
+	"ORR     R0, R0, #0x1000\n"
+	"BIC     R0, R0, #4\n"
+	"ORR     R0, R0, #1\n"
+	"MCR     p15, 0, R0,c1,c0\n"
+    :::"r0");
+*/
+
+    // jump to init-sequence that follows the data-copy-routine 
+    asm volatile ("B      sub_FFC001a4_my\n");
+}; //#fe
+
+
+// init
+void __attribute__((naked,noinline)) sub_FFC001a4_my() { //#fs 
+        asm volatile (
+                "LDR     R0, =0xFFC0021C\n"
+                "MOV     R1, #0\n"
+                "LDR     R3, =0xFFC00254\n"
+        "loc_FFC001B0:\n"
+                "CMP     R0, R3\n"
+                "LDRCC   R2, [R0],#4\n"
+                "STRCC   R2, [R1],#4\n"
+                "BCC     loc_FFC001B0\n"
+                "LDR     R0, =0xFFC00254\n"
+                "MOV     R1, #0x4B0\n"
+                "LDR     R3, =0xFFC00468\n"
+        "loc_FFC001CC:\n"
+                "CMP     R0, R3\n"
+                "LDRCC   R2, [R0],#4\n"
+                "STRCC   R2, [R1],#4\n"
+                "BCC     loc_FFC001CC\n"
+                "MOV     R0, #0xD2\n"
+                "MSR     CPSR_cxsf, R0\n"
+                "MOV     SP, #0x1000\n"
+                "MOV     R0, #0xD3\n"
+                "MSR     CPSR_cxsf, R0\n"
+                "MOV     SP, #0x1000\n"			
+                "LDR     R0, =0xFFC00210\n"
+                "LDR     R2, =0xEEEEEEEE\n"
+                "MOV     R3, #0x1000\n"
+        "loc_FFC00200:\n"
+                "CMP     R0, R3\n"
+                "STRCC   R2, [R0],#4\n"
+                "BCC     loc_FFC00200\n"
+                //"BL      sub_FFC00FA0\n"
+                "BL      sub_FFC00FA0_my\n"
+        );
+} //#fe
+
+void __attribute__((naked,noinline)) sub_FFC00FA0_my() { //#fs 
+        asm volatile (
+              //"STR     LR, [SP,#0xFFFFFFFC]!\n"
+              "STR     LR, [SP,#-4]!\n"         // inspired by original CHDK-code
+              "SUB     SP, SP, #0x74\n"
+              "MOV     R0, SP\n"
+              "MOV     R1, #0x74\n"
+              "BL      sub_FFE4E264\n"
+              "MOV     R0, #0x53000\n"
+              "STR     R0, [SP,#0x74-0x70]\n"
+        );
+//              "LDR     R0, =0xA5718\n"    
+        asm volatile (
+              "LDR     R0, =new_sa\n"
+              "LDR     R0, [R0]\n"
+        );
+        asm volatile (
+              "LDR     R2, =0x279C00\n"
+              "LDR     R1, =0x272968\n"
+              "STR     R0, [SP,#0x74-0x6C]\n"
+              "SUB     R0, R1, R0\n"
+              "ADD     R3, SP, #0x74-0x68\n"
+              "STR     R2, [SP,#0x74-0x74]\n"
+              "STMIA   R3, {R0-R2}\n"
+              "MOV     R0, #0x22\n"
+              "STR     R0, [SP,#0x74-0x5C]\n"
+              "MOV     R0, #0x68\n"
+              "STR     R0, [SP,#0x74-0x58]\n"
+              "LDR     R0, =0x19B\n"
+              "MOV     R1, #0x64\n"
+              //"STRD     R0, [SP,#0x74-0x54]\n"        // "strd not supported by cpu" claims gcc
+              "STR      R0, [SP,#0x74-0x54]\n"          // split in two single-word STRs
+              "STR      R1, [SP,#0x74-0x50]\n"
+              "MOV     R0, #0x78\n"
+              //"STRD     R0, [SP,#0x74-0x4C]\n"        // "strd not supported by cpu" claims gcc
+              "STR      R0, [SP,#0x74-0x4C]\n"          // split in two single-word STRs
+              "STR      R1, [SP,#0x74-0x48]\n"
+              "MOV     R0, #0\n"
+              "STR     R0, [SP,#0x74-0x44]\n"
+              "STR     R0, [SP,#0x74-0x40]\n"
+              "MOV     R0, #0x10\n"
+              "STR     R0, [SP,#0x74-0x18]\n"
+              "MOV     R0, #0x800\n"
+              "STR     R0, [SP,#0x74-0x14]\n"
+              "MOV     R0, #0xA0\n"
+              "STR     R0, [SP,#0x74-0x10]\n"
+              "MOV     R0, #0x280\n"
+              "STR     R0, [SP,#0x74-0x0C]\n"
+              //"LDR     R1, =0xFFC04DA4\n"         // uHwSetup 
+              "LDR     R1, =uHwSetup_my\n"         // followup to own function
+              "MOV     R0, SP\n"
+              "MOV     R2, #0\n"
+              "BL      sub_FFC02D58\n"
+              "ADD     SP, SP, #0x74\n"
+              "LDR     PC, [SP],#4\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) uHwSetup_my() { //#fs 
+        asm volatile (
+              "STMFD   SP!, {R4,LR}\n"
+              "BL      sub_FFC0094C\n"
+              "BL      sub_FFC0972C\n"          // _dmSetup
+              "CMP     R0, #0\n"
+              "LDRLT   R0, =0xFFC04EB8\n"       // aDmsetup
+              "BLLT    sub_FFC04E98\n"          // _err_init_task
+              "BL      sub_FFC049C8\n"          // _termDriverInit
+              "CMP     R0, #0\n"
+              "LDRLT   R0, =0xFFC04EC0\n"       // aTermdriverinit
+              "BLLT    sub_FFC04E98\n"          // _err_init_task
+              "LDR     R0, =0xFFC04ED0\n"       // a_term
+              "BL      sub_FFC04AB4\n"          // _termDeviceCreate
+              "CMP     R0, #0\n"
+              "LDRLT   R0, =0xFFC04ED8\n"       // aTermdevicecrea
+              "BLLT    sub_FFC04E98\n"          // _err_init_task
+              "LDR     R0, =0xFFC04ED0\n"       // a_term
+              "BL      sub_FFC03564\n"          // _stdioSetup
+              "CMP     R0, #0\n"
+              "LDRLT   R0, =0xFFC04EEC\n"       // aStdiosetup
+              "BLLT    sub_FFC04E98\n"          // _err_init_task
+              "BL      sub_FFC092B4\n"          // _stdlibSetup
+              "CMP     R0, #0\n"
+              "LDRLT   R0, =0xFFC04EF8\n"       // aStdlibsetup
+              "BLLT    sub_FFC04E98\n"          // _err_init_task
+              "BL      sub_FFC014B8\n"          // _armlib_setup
+              "CMP     R0, #0\n"
+              "LDRLT   R0, =0xFFC04F04\n"       // aArmlib_setup
+              "BLLT    sub_FFC04E98\n"          // _err_init_task
+              "LDMFD   SP!, {R4,LR}\n"
+              //"B       _CreateTaskStartup\n"   // FFC0CD84
+              "B       CreateTask_Startup_my\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) CreateTask_Startup_my() { //#fs 
+        asm volatile (
+                "STMFD   SP!, {R3,LR}\n"
+                //"BL      nullsub_201\n"
+                "BL      sub_FFC1978C\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC0CDB4\n"
+				"BL      sub_FFC119C0\n"
+				"CMP     R0, #0\n"
+                "BNE     loc_FFC0CDB4\n"
+				"LDR     R1, =0xC0220000\n"
+                "MOV     R0, #0x44\n"
+                "STR     R0, [R0,#0xA0]\n"
+        "loc_FFC0CDB0:\n"
+                "B       loc_FFC0CDB0\n"
+        "loc_FFC0CDB4:\n"
+                //"BL      nullsub_203\n"
+                //"BL      nullsub_202\n"
+                "BL      sub_FFC17B14\n"
+                "LDR     R1, =0x2CE000\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC17D5C\n"
+                "BL      sub_FFC17D08\n"
+                "MOV     R3, #0\n"
+                "STR     R3, [SP,#8-8]\n"
+                //"LDR     R3, =0xFFC0CD28\n"    // Startup
+                "LDR     R3, =task_Startup_my\n"      // followup to own function
+                "MOV     R2, #0\n"
+                "MOV     R1, #0x19\n"
+                "LDR     R0, =0xFFC0CDFC\n"      // aStartup
+                "BL      sub_FFC0B8E0\n"         // CreateTask
+                "MOV     R0, #0\n"
+                "LDMFD   SP!, {R12,PC}\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) task_Startup_my() { //#fs 
+                asm volatile (
+                "STMFD   SP!, {R4,LR}\n"
+                "BL      sub_FFC051BC\n"  // uRegClockSave
+                "BL      sub_FFC12B1C\n"
+                "BL      sub_FFC0FDFC\n"
+                "BL      sub_FFC197CC\n"
+                "BL      sub_FFC19994\n"
+                //"BL      sub_FFC19854\n"  // StartDiskboot
+        );
+
+        CreateTask_spytask();
+
+        asm volatile (
+                "BL      sub_FFC19B48\n"
+                "BL      sub_FFC199E4\n"        
+			
+                "BL      sub_FFC17054\n"
+                "BL      sub_FFC19B4C\n"
+        );
+
+        CreateTask_PhySw();
+
+        asm volatile (
+                //"BL      sub_FFC118D8\n"        // CreateTask_PhySw - checks buttons and acts accordingly
+                "BL      sub_FFC14A18_my\n"        // divert to intercept task_ShootSeqTask
+                "BL      sub_FFC19B64\n"
+                //"BL      nullsub_2\n"
+                "BL      sub_FFC10DAC\n"
+                "BL      sub_FFC19554\n"		// taskCreate_bye
+                "BL      sub_FFC11408\n"
+                "BL      sub_FFC10CAC\n"
+                //"BL      sub_FFC1A4CC\n"
+                "BL      sub_FFC1A4CC_my\n"     // divert for SDHC-bootdisk-support
+                "BL      sub_FFC10C68\n"
+
+                // modification: BL instead of B to last function to control action after its return
+                "BL       sub_FFC05070\n"
+                "LDMFD   SP!, {R4,PC}\n"        // restore stack to PC instead of LR to return to caller
+        );
+}; //#fe
+
+void CreateTask_spytask() { //#fs 
+        _CreateTask("SpyTask", 0x19, 0x2000, core_spytask, 0);
+
+}; //#fe
+
+void CreateTask_PhySw() { //#fs 
+        _CreateTask("PhySw", 0x18, 0x800, mykbd_task, 0);
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC14A18_my() { //#fs 
+        asm volatile (
+                "STMFD   SP!, {R4,LR}\n"
+                "LDR     R4, =0x1C04\n"
+                "MOV     R0, #0\n"
+                "MOV     R1, #4\n"
+                "STR     R0, [R4,#0xC]\n"
+                "BL      sub_FFC0BC10\n"
+                "STR     R0, [R4,#4]\n"
+                "MOV     R0, #0\n"
+                "MOV     R1, #1\n"
+                "BL      sub_FFC0BC34\n"
+                "STR     R0, [R4,#8]\n"
+                "BL      sub_FFC4B714\n"
+				"BL		 sub_FFC4C8E8\n"
+                "BL      sub_FFC4A828\n"
+				//"BL		 sub_FFC47814\n"
+                "BL      sub_FFC47814_my\n"     // divert this for ShootSeqTask
+                "BL      sub_FFC4B9D4\n"
+                "LDR     R0, [R4,#4]\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "MOV     R1, #0x1000\n"
+                "B       sub_FFC173B8\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC47814_my() { //#fs 
+        asm volatile (
+                "STMFD   SP!, {R4,LR}\n"
+                "LDR     R4, =0x5298\n"
+                "LDR     R0, [R4,#4]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC47880\n"
+                //"BL      nullsub_5\n"
+                "MOV     R1, #1\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC0BC34\n"
+                "STR     R0, [R4,#0xC]\n"
+                "MOV     R0, #0\n"
+                "MOV     R1, #0\n"
+                "BL      sub_FFC0BC10\n"
+                "STR     R0, [R4,#0x10]\n"
+                "BL      sub_FFC47B10\n"
+                "BL      sub_FFC48060\n"   // continue here for task_ShootSeqTask (this is nonsense. We just need CaptSeqTask)
+                "MOV     R0, #0\n"			
+                "STR     R0, [R4,#0x8]\n"
+                "ADD     R0, R4, #0x14\n"
+                "MOV     R1, #0\n"
+                "STR     R1, [R0],#4\n"
+                "STR     R1, [R0]\n"
+                "BL      sub_FFC48200\n"
+                "BL      sub_FFC4BB80\n"
+                "BL      sub_FFC4A1F8\n"
+				//"BL      sub_FFC48B2C\n"
+                "BL      sub_FFC48B2C_my\n"     // continue here for task_CaptSeqTask
+                "BL      sub_FFC49D40\n"
+        "loc_FFC47880:\n"
+                "MOV     R0, #1\n"
+                "STR     R0, [R4,#4]\n"
+                "LDMFD   SP!, {R4,PC}\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC48B2C_my() { //#fs  // CreateTask_CaptSeqTask
+        asm volatile (
+                "STMFD   SP!, {R3-R5,LR}\n"
+                "LDR     R2, =0x1961C\n"
+                "MOV     R0, #0\n"
+                "MOV     R1, #0\n"
+        "loc_FFC48B3C:\n"
+                "ADD     R3, R2, R0,LSL#4\n"
+                "ADD     R0, R0, #1\n"
+                "CMP     R0, #5\n"
+                "STR     R1, [R3,#8]\n"
+                "BCC     loc_FFC48B3C\n"			
+                "BL      sub_FFD0B9C0\n"
+                "BL      sub_FFD0D598\n"				
+                "MOV     R1, #5\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC0BBEC\n"
+                "LDR     R4, =0x52D0\n"
+                "LDR     R1, =0x1001FF\n"
+                "STR     R0, [R4,#8]\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC0BC10\n"
+                "STR     R0, [R4,#4]\n"
+                "MOV     R0, #0\n"
+                "MOV     R1, #1\n"
+				"BL      sub_FFC0BC34\n"
+				"STR     R0, [R4,#0xC]\n"
+                "MOV     R3, #0\n"
+                //"STR     R3, [SP,#0x10+var_10]\n"
+                "STR     R3, [SP]\n"
+                //"LDR     R3, =0xFFC488A4\n"           // task_CaptSeqTask
+                "LDR     R3, =task_CaptSeqTask_my\n"            // task_CaptSeqTask
+                "LDR     R0, =0xFFC48C60\n"             // aCaptseqtask ; "CaptSeqTask"
+                "MOV     R2, #0x1000\n"
+                "MOV     R1, #0x17\n"
+                "BL      sub_FFC0BBB8\n"                // uKernelMiscCreateTask o. CreateTaskStrict
+                "LDMFD   SP!, {R3-R5,PC}\n"
+        ".ltorg\n"
+        );
+}; //#fe
+
+// -----------------
+// SDHC-Boot-Support
+// -----------------
+// Required subs:
+//   Startup -> FFC1A4CC -> FFC1A080 -> FFC5DFE0 -> uAC_Boot -> CreateTask_InitFileModules -> task_InitFileModules -> FFC577C0 -> FFC3CA60 -> FFC3C380 -> FFC3C62C
+//                           \->FFC5E924 -> FFC5F410 ->/|
+//                   -> StartFactoryModeController =>||
+//
+// uAC_Boot:                   FFC5D48C
+// CreateTask_InitFileModules: FFC5EC48 
+// task_InitFileModules:       FFC5F754 
+
+
+void __attribute__((naked,noinline)) sub_FFC1A4CC_my() { //#fs  
+        asm volatile (
+                "STMFD   SP!, {R4,LR}\n"
+                "BL      sub_FFC5BFB4\n"
+                "BL      sub_FFC33B48\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC1A4EC\n"
+                "BL      sub_FFC5ED54\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "B       sub_FFC33BB8\n"
+"loc_FFC1A4EC:\n"
+                "BL      sub_FFC5DD9C\n"
+                "LDR     R4, =0x1D18\n"
+                "LDR     R0, [R4,#4]\n"
+                "CMP     R0, #0\n"
+                "LDMNEFD SP!, {R4,PC}\n"
+                "MOV     R1, #0\n"
+                "LDR     R0, =sub_FFC1A080_my\n" //------->
+                "BL      sub_FFC5A41C\n"
+                "STR     R0, [R4,#4]\n"
+                "LDMFD   SP!, {R4,PC}\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC1A080_my() { //#fs  
+        asm volatile (
+                "STMFD   SP!, {R3-R11,LR}\n"
+                "LDR     R6, =0x1D18\n"
+                "MOV     R5, R1\n"
+                "LDR     R0, [R6,#0x14]\n"
+                "MOV     R4, R3\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC1A0A4\n"
+                "BL      sub_FFC5C7D8\n"
+                "B       loc_FFC1A13C\n"
+"loc_FFC1A0A4:\n"
+                "LDR     R11, =0x1167\n"
+                "MOV     R7, #0\n"
+                "SUB     R12, R11, #5\n"
+                "CMP     R5, R12\n"
+                "MOV     R9, #1\n"
+                "BEQ     loc_FFC1A3D8\n"
+                "BGT     loc_FFC1A1D4\n"
+                "LDR     R3, =0x1063\n"
+                "CMP     R5, R3\n"
+                "SUB     LR, R3, #0xD\n"
+                "SUB     R1, R3, #8\n"
+                "SUB     R8, R3, #5\n"
+                "SUB     R2, R3, #2\n"
+                "SUB     R0, R3, #1\n"
+                "BEQ     loc_FFC1A470\n"
+                "BGT     loc_FFC1A15C\n"
+                "CMP     R5, LR\n"
+                "BEQ     loc_FFC1A470\n"
+                "BGT     loc_FFC1A144\n"
+                "SUB     R12, R5, #0x800\n"
+                "SUBS    R12, R12, #3\n"
+                "BEQ     loc_FFC1A2F4\n"
+                "SUB     R12, R5, #0x800\n"
+                "SUBS    R12, R12, #0x144\n"
+                "BEQ     loc_FFC1A4A8\n"
+                "SUB     R12, R5, #0x900\n"
+                "SUBS    R12, R12, #0xA3\n"
+                "SUBNE   R12, R5, #0x900\n"
+                "SUBNES  R12, R12, #0xA5\n"
+                "BNE     loc_FFC1A4C4\n"
+                "LDR     R0, [R6,#0xC]\n"
+                "SUB     R12, R0, #0x8000\n"
+                "SUBS    R12, R12, #2\n"
+                "BEQ     loc_FFC1A13C\n"
+                "LDR     R0, =0x10A5\n"
+                "BL      sub_FFC5B294\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC1A4C4\n"
+"loc_FFC1A13C:\n"
+                "MOV     R0, #0\n"
+                "LDMFD   SP!, {R3-R11,PC}\n"
+"loc_FFC1A144:\n"
+                "CMP     R5, R1\n"
+                "CMPNE   R5, R8\n"
+                "CMPNE   R5, R2\n"
+                "CMPNE   R5, R0\n"
+                "BNE     loc_FFC1A4C4\n"
+                "B       loc_FFC1A470\n"
+"loc_FFC1A15C:\n"
+                "LDR     R12, =0x10AE\n"
+                "CMP     R5, R12\n"
+                "BEQ     loc_FFC1A40C\n"
+                "BGT     loc_FFC1A1A4\n"
+                "SUB     R12, R5, #0x1000\n"
+                "SUBS    R12, R12, #0x65\n"
+                "BEQ     loc_FFC1A470\n"
+                "SUB     R12, R5, #0x1000\n"
+                "LDR     R0, =0x10A3\n"
+                "SUBS    R12, R12, #0xA9\n"
+                "BEQ     loc_FFC1A3E8\n"
+                "SUB     R12, R5, #0x1000\n"
+                "SUBS    R12, R12, #0xAA\n"
+                "BEQ     loc_FFC1A400\n"
+                "SUB     R12, R5, #0x1000\n"
+                "SUBS    R12, R12, #0xAD\n"
+                "BNE     loc_FFC1A4C4\n"
+                "B       loc_FFC1A3F4\n"
+"loc_FFC1A1A4:\n"
+                "SUB     R12, R5, #0x1000\n"
+                "SUBS    R12, R12, #0xAF\n"
+                "BEQ     loc_FFC1A3F4\n"
+                "SUB     R12, R5, #0x1000\n"
+                "SUBS    R12, R12, #0xB0\n"
+                "BEQ     loc_FFC1A40C\n"
+                "SUB     R12, R5, #0x1000\n"
+                "SUBS    R12, R12, #0xB2\n"
+                "BNE     loc_FFC1A4C4\n"
+                "LDR     R0, =0x1008\n"
+                "MOV     R1, R4\n"
+                "B       loc_FFC1A3D0\n"
+"loc_FFC1A1D4:\n"
+                "LDR     R10, =0x201B\n"
+                "LDR     R0, =0x1D18\n"
+                "CMP     R5, R10\n"
+                "LDR     R2, [R0,#0x10]!\n"
+                "LDR     R1, [R0,#0x10]\n"
+                "SUB     R8, R10, #0x17\n"
+                "BEQ     loc_FFC1A3AC\n"
+                "BGT     loc_FFC1A290\n"
+                "LDR     R10, =0x116A\n"
+                "CMP     R5, R10\n"
+                "BEQ     loc_FFC1A398\n"
+                "BGT     loc_FFC1A24C\n"
+                "SUB     R12, R5, #0x1100\n"
+                "SUBS    R12, R12, #0x63\n"
+                "MOVEQ   R1, #0\n"
+                "MOVEQ   R0, #0x82\n"
+                "BEQ     loc_FFC1A3C4\n"
+                "SUB     R12, R5, #0x1100\n"
+                "SUBS    R12, R12, #0x65\n"
+                "BEQ     loc_FFC1A3BC\n"
+                "LDR     R4, =0x1168\n"
+                "CMP     R5, R11\n"
+                "CMPNE   R5, R4\n"
+                "BNE     loc_FFC1A4C4\n"
+                "STR     R9, [R6,#0x10]\n"
+                "LDR     R6, =0x4508\n"
+                "CMP     R1, #0\n"
+                "BEQ     loc_FFC1A380\n"
+                "BL      sub_FFC5C80C\n"
+                "B       loc_FFC1A38C\n"
+"loc_FFC1A24C:\n"
+                "SUB     R12, R5, #0x2000\n"
+                "SUBS    R12, R12, #2\n"
+                "BEQ     loc_FFC1A43C\n"
+                "CMP     R5, R8\n"
+                "MOV     R0, R8\n"
+                "BEQ     loc_FFC1A448\n"
+                "SUB     R12, R5, #0x2000\n"
+                "SUBS    R12, R12, #5\n"
+                "BEQ     loc_FFC1A43C\n"
+                "SUB     R12, R5, #0x2000\n"
+                "SUBS    R12, R12, #0x19\n"
+                "BNE     loc_FFC1A4C4\n"
+                "CMP     R1, #0\n"
+                "BEQ     loc_FFC1A13C\n"
+                "CMP     R2, #0\n"
+                "BNE     loc_FFC1A13C\n"
+                "B       loc_FFC1A4A0\n"
+"loc_FFC1A290:\n"
+                "LDR     R12, =0x3111\n"
+                "CMP     R5, R12\n"
+                "BEQ     loc_FFC1A410\n"
+                "BGT     loc_FFC1A2D0\n"
+                "SUB     R12, R5, #0x2000\n"
+                "SUBS    R12, R12, #0x1D\n"
+                "BEQ     loc_FFC1A43C\n"
+                "LDR     R0, =0x2027\n"
+                "CMP     R5, R0\n"
+                "BEQ     loc_FFC1A418\n"
+                "SUB     R12, R5, #0x3000\n"
+                "SUBS    R12, R12, #6\n"
+                "SUBNE   R12, R5, #0x3000\n"
+                "SUBNES  R12, R12, #0x110\n"
+                "BNE     loc_FFC1A4C4\n"
+                "B       loc_FFC1A410\n"
+"loc_FFC1A2D0:\n"
+                "CMP     R5, #0x3140\n"
+                "BEQ     loc_FFC1A464\n"
+                "SUB     R12, R5, #0x3200\n"
+                "SUBS    R12, R12, #1\n"
+                "BEQ     loc_FFC1A4C4\n"
+                "SUB     R12, R5, #0x3200\n"
+                "SUBS    R12, R12, #2\n"
+                "BNE     loc_FFC1A4C4\n"
+                "B       loc_FFC1A410\n"
+"loc_FFC1A2F4:\n"
+                "MOV     R4, #1\n"
+                "MOV     R0, #2\n"
+                "BL      sub_FFC5C048\n"
+                "CMP     R0, #1\n"
+                "MOVEQ   R4, #2\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFC11030\n"
+                "CMP     R0, #0\n"
+                "STRNE   R9, [R6,#0x14]\n"
+                "BNE     loc_FFC1A34C\n"
+                "BL      sub_FFC61810\n"
+                "BL      sub_FFC5F6AC\n"
+                "BL      sub_FFC601B0\n"
+                "BL      sub_FFC5EFFC\n"
+                "BL      sub_FFC60808\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC1A354\n"
+                "BL      sub_FFC19DA4\n"
+                "BL      sub_FFC6076C\n"
+                "MOV     R1, R0\n"
+                "MOV     R0, R11\n"
+                "BL      sub_FFC5AC24\n"
+"loc_FFC1A34C:\n"
+                "MOV     R0, R7\n"
+                "LDMFD   SP!, {R3-R11,PC}\n"
+"loc_FFC1A354:\n"
+                "BL      sub_FFC1507C\n"
+                "CMP     R0, #1\n"
+                "LDRNE   R0, =0x310B\n"
+                "LDREQ   R0, =0x310C\n"
+                "MOV     R1, #0\n"
+                "BL      sub_FFC5AC24\n"
+                "BL      sub_FFC5E924_my\n"  // Continue here (possibility 1) for SDHC-boot
+                "B       loc_FFC1A34C\n"
+"loc_FFC1A374:\n"
+                "MOV     R0, R6\n"
+                "BL      sub_FFC46100\n"
+                "B       loc_FFC1A13C\n"
+"loc_FFC1A380:\n"
+                "BL      sub_FFC5F924\n"
+                "BL      sub_FFC5F888\n"
+                "BL      sub_FFC14D5C\n"
+"loc_FFC1A38C:\n"
+                "CMP     R5, R4\n"
+                "BNE     loc_FFC1A13C\n"
+                "B       loc_FFC1A374\n"
+"loc_FFC1A398:\n"
+                "MOV     R0, #1\n"
+                "BL      sub_FFC5C938\n"
+                "LDR     R0, =0x1005\n"
+                "MOV     R1, R10\n"
+                "B       loc_FFC1A3D0\n"
+"loc_FFC1A3AC:\n"
+                "CMP     R2, #1\n"
+                "BNE     loc_FFC1A410\n"
+                "BL      sub_FFC5C80C\n"
+                "B       loc_FFC1A13C\n"
+"loc_FFC1A3BC:\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, #0x83\n"
+"loc_FFC1A3C4:\n"
+                "BL      sub_FFC60288\n"
+                "B       loc_FFC1A13C\n"
+"loc_FFC1A3CC:\n"
+                "MOV     R0, R5\n"
+"loc_FFC1A3D0:\n"
+                "BL      sub_FFC5DAC4_my\n"  // Continue here (possibility 2) for SDHC-boot
+                "LDMFD   SP!, {R3-R11,PC}\n"
+"loc_FFC1A3D8:\n"
+                "BL      sub_FFC637A8\n"
+                "CMP     R0, #0\n"
+                "BLNE    sub_FFC626DC\n"
+                "B       loc_FFC1A410\n"
+"loc_FFC1A3E8:\n"
+                "BL      sub_FFC5B294\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC1A13C\n"
+"loc_FFC1A3F4:\n"
+                "MOV     R0, R5\n"
+                "BL      sub_FFC19E70\n"
+                "LDMFD   SP!, {R3-R11,PC}\n"
+"loc_FFC1A400:\n"
+                "BL      sub_FFC5B294\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC1A13C\n"
+"loc_FFC1A40C:\n"
+                "BL      sub_FFC1A8CC\n"
+"loc_FFC1A410:\n"
+                "MOV     R1, R4\n"
+                "B       loc_FFC1A3CC\n"
+"loc_FFC1A418:\n"
+                "MOV     R1, #0\n"
+                "BL      sub_FFC5DAC4_my\n"  // Continue here (possibility 2) for SDHC-boot
+                "MOV     R1, #0\n"
+                "MOV     R0, R10\n"
+                "BL      sub_FFC5DAC4_my\n"  // Continue here (possibility 2) for SDHC-boot
+                "MOV     R1, #0\n"
+                "MOV     R0, R8\n"
+"loc_FFC1A434:\n"
+                "BL      sub_FFC5DAC4_my\n"  // Continue here (possibility 2) for SDHC-boot
+                "B       loc_FFC1A13C\n"
+"loc_FFC1A43C:\n"
+                "STR     R7, [R6,#0x20]\n"
+                "BL      sub_FFC1A690\n"
+                "B       loc_FFC1A410\n"
+"loc_FFC1A448:\n"
+                "STR     R7, [R6,#0x20]\n"
+                "BL      sub_FFC1A690\n"
+                "LDR     R0, [R6,#0x10]\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC1A410\n"
+                "BL      sub_FFC5C850\n"
+                "B       loc_FFC1A13C\n"
+"loc_FFC1A464:\n"
+                "CMP     R1, #0\n"
+                "BLEQ    sub_FFC1A690\n"
+                "B       loc_FFC1A13C\n"
+"loc_FFC1A470:\n"
+                "CMP     R5, R2\n"
+                "MOVEQ   R0, R2\n"
+                "BEQ     loc_FFC1A4A0\n"
+                "BGT     loc_FFC1A490\n"
+                "CMP     R5, LR\n"
+                "CMPNE   R5, R8\n"
+                "BEQ     loc_FFC1A4A0\n"
+                "B       loc_FFC1A49C\n"
+"loc_FFC1A490:\n"
+                "CMP     R5, R0\n"
+                "CMPNE   R5, R3\n"
+                "BEQ     loc_FFC1A4A0\n"
+"loc_FFC1A49C:\n"
+                "MOV     R0, R1\n"
+"loc_FFC1A4A0:\n"
+                "MOV     R1, #0\n"
+                "B       loc_FFC1A434\n"
+"loc_FFC1A4A8:\n"
+                "TST     R4, #0x80000000\n"
+                "MOVNE   R0, #1\n"
+                "LDMNEFD SP!, {R3-R11,PC}\n"
+                "BL      sub_FFC64C74\n"
+                "CMP     R0, #0\n"
+                "BLEQ    sub_FFC16F6C\n"
+                "B       loc_FFC1A13C\n"
+"loc_FFC1A4C4:\n"
+                "MOV     R1, #0\n"
+                "B       loc_FFC1A3CC\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC5E924_my() { //#fs  
+        asm volatile (
+                "STMFD   SP!, {R4,LR}\n"
+                "BL      sub_FFC1A644\n"
+                "CMP     R0, #0\n"
+                "LDRNE   R0, =0x1061\n"
+                "BNE     loc_FFC5E94C\n"
+                "BL      sub_FFC1A62C\n"
+                "CMP     R0, #0\n"
+                "LDRNE   R0, =0x105B\n"
+                "BNE     loc_FFC5E94C\n"
+                "BL      sub_FFC1A65C\n"
+"loc_FFC5E94C:\n"
+                "MOV     R4, R0\n"
+                "BL      sub_FFC5EAAC\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFC5EB4C\n"
+                "LDR     R0, =0x581C\n"
+                "LDR     R0, [R0]\n"
+                "TST     R0, #1\n"
+                "TSTEQ   R0, #0x10\n"
+                "BEQ     loc_FFC5E97C\n"
+"loc_FFC5E970:\n"
+                "MOV     R1, R4\n"
+                "MOV     R0, #2\n"
+                "B       loc_FFC5E9C0\n"
+"loc_FFC5E97C:\n"
+                "TST     R0, #0x40\n"
+                "BEQ     loc_FFC5E990\n"
+"loc_FFC5E984:\n"
+                "MOV     R1, R4\n"
+                "MOV     R0, #1\n"
+                "B       loc_FFC5E9C0\n"
+"loc_FFC5E990:\n"
+                "TST     R0, #0x20\n"
+                "BEQ     loc_FFC5E9AC\n"
+                "TST     R0, #0x4000\n"
+                "BNE     loc_FFC5E9AC\n"
+"loc_FFC5E9A0:\n"
+                "MOV     R1, R4\n"
+                "MOV     R0, #0\n"
+                "B       loc_FFC5E9C0\n"
+"loc_FFC5E9AC:\n"
+                "LDR     R1, =0x102\n"
+                "BICS    R1, R1, R0\n"
+                "BNE     loc_FFC5E9C8\n"
+                "MOV     R1, R4\n"
+                "MOV     R0, #6\n"
+"loc_FFC5E9C0:\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "B       sub_FFC5E8C0_my\n"  // cont. for SDHC-boot
+"loc_FFC5E9C8:\n"
+                "TST     R0, #0x100\n"
+                "BNE     loc_FFC5E970\n"
+                "TST     R0, #0x400\n"
+                "BNE     loc_FFC5E984\n"
+                "TST     R0, #0x200\n"
+                "TSTEQ   R0, #2\n"
+                "BNE     loc_FFC5E9A0\n"
+                "TST     R0, #0x40000\n"
+                "BEQ     loc_FFC5E970\n"
+                "TST     R0, #0x200000\n"
+                "MOVEQ   R1, R4\n"
+                "MOVEQ   R0, #1\n"
+                "BLEQ    sub_FFC5E8C0_my\n"  // cont. for SDHC-boot
+                "B       loc_FFC5E970\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC5E8C0_my() { //#fs  
+        asm volatile (
+                "STMFD   SP!, {R4-R6,LR}\n"
+                "MOVS    R4, R0\n"
+                "MOV     R0, #1\n"
+                "MOV     R5, R1\n"
+                "BNE     loc_FFC5E900\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC5BFD8\n"
+                "BL      sub_FFC1A65C\n"
+                "SUB     R12, R0, #0x1000\n"
+                "SUBS    R12, R12, #0x5B\n"
+                "BNE     loc_FFC5E8F8\n"
+"loc_FFC5E8F0:\n"
+                "BL      sub_FFC5E7F4\n"
+                "B       loc_FFC5E908\n"
+"loc_FFC5E8F8:\n"
+                "BL      sub_FFC5E854\n"
+                "B       loc_FFC5E908\n"
+"loc_FFC5E900:\n"
+                "CMP     R4, #5\n"
+                "BEQ     loc_FFC5E8F0\n"
+"loc_FFC5E908:\n"
+                "CMP     R0, #0\n"
+                "LDREQ   R5, =0x1162\n"
+                "MOVEQ   R4, #2\n"
+                "MOV     R0, R4\n"
+                "MOV     R1, R5\n"
+                "LDMFD   SP!, {R4-R6,LR}\n"
+                "B       sub_FFC5DAC4_my\n" //------>
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC5DAC4_my() { //#fs  
+        asm volatile (
+                "STMFD   SP!, {R4-R8,LR}\n"
+                "MOV     R7, R1\n"
+                "MOV     R6, R0\n"
+                "BL      sub_FFC60808\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC5DD94\n"
+                "MOV     R1, R7\n"
+                "MOV     R0, R6\n"
+                "BL      sub_FFC5CB08\n"
+                "LDR     R4, =0x5760\n"
+                "MOV     R5, #0\n"
+                "LDR     R0, [R4,#0x10]\n"
+                "CMP     R0, #0x16\n"
+                "ADDLS   PC, PC, R0,LSL#2\n"
+                "B       loc_FFC5DD94\n"
+"loc_FFC5DB00:\n"
+                "B       loc_FFC5DB5C\n"
+"loc_FFC5DB04:\n"
+                "B       loc_FFC5DB78\n"
+"loc_FFC5DB08:\n"
+                "B       loc_FFC5DBAC\n"
+"loc_FFC5DB0C:\n"
+                "B       loc_FFC5DC5C\n"
+"loc_FFC5DB10:\n"
+                "B       loc_FFC5DC6C\n"
+"loc_FFC5DB14:\n"
+                "B       loc_FFC5DD94\n"
+"loc_FFC5DB18:\n"
+                "B       loc_FFC5DD94\n"
+"loc_FFC5DB1C:\n"
+                "B       loc_FFC5DCF0\n"
+"loc_FFC5DB20:\n"
+                "B       loc_FFC5DB6C\n"
+"loc_FFC5DB24:\n"
+                "B       loc_FFC5DD94\n"
+"loc_FFC5DB28:\n"
+                "B       loc_FFC5DCF0\n"
+"loc_FFC5DB2C:\n"
+                "B       loc_FFC5DBA0\n"
+"loc_FFC5DB30:\n"
+                "B       loc_FFC5DD94\n"
+"loc_FFC5DB34:\n"
+                "B       loc_FFC5DD94\n"
+"loc_FFC5DB38:\n"
+                "B       loc_FFC5DBB8\n"
+"loc_FFC5DB3C:\n"
+                "B       loc_FFC5DBC4\n"
+"loc_FFC5DB40:\n"
+                "B       loc_FFC5DC34\n"
+"loc_FFC5DB44:\n"
+                "B       loc_FFC5DB84\n"
+"loc_FFC5DB48:\n"
+                "B       loc_FFC5DD7C\n"
+"loc_FFC5DB4C:\n"
+                "B       loc_FFC5DCFC\n"
+"loc_FFC5DB50:\n"
+                "B       loc_FFC5DD2C\n"
+"loc_FFC5DB54:\n"
+                "B       loc_FFC5DD2C\n"
+"loc_FFC5DB58:\n"
+                "B       loc_FFC5DC78\n"
+"loc_FFC5DB5C:\n"
+                "MOV     R1, R7\n"
+                "MOV     R0, R6\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC5D48C_my\n"  // uAC_Boot // divert for SDHC-boot
+"loc_FFC5DB6C:\n"
+                "MOV     R0, R6\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC5E4C0\n"
+"loc_FFC5DB78:\n"
+                "MOV     R0, R6\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC5D12C\n"
+"loc_FFC5DB84:\n"
+                "SUB     R12, R6, #0x3000\n"
+                "SUBS    R12, R12, #6\n"
+                "BNE     loc_FFC5DD94\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC19C3C\n"
+                "BL      sub_FFC5E3BC\n"
+                "B       loc_FFC5DD8C\n"
+"loc_FFC5DBA0:\n"
+                "MOV     R0, R6\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC5E3F4\n"
+"loc_FFC5DBAC:\n"
+                "MOV     R0, R6\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC5D2BC\n"
+"loc_FFC5DBB8:\n"
+                "MOV     R0, R6\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC5D864\n"
+"loc_FFC5DBC4:\n"
+                "SUB     R12, R6, #0x3200\n"
+                "SUBS    R12, R12, #2\n"
+                "BNE     loc_FFC5DD94\n"
+                "MOV     R0, #3\n"
+                "BL      sub_FFC5CA14\n"
+                "MOV     R0, #8\n"
+                "BL      sub_FFC19B9C\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, #0x19\n"
+                "BL      sub_FFC2795C\n"
+                "BL      sub_FFC5F924\n"
+                "BL      sub_FFC5FBBC\n"
+                "BL      sub_FFC5F06C\n"
+                "B       loc_FFC5DD8C\n"
+"loc_FFC5DC34:\n"
+                "SUB     R12, R6, #0x3300\n"
+                "SUBS    R12, R12, #1\n"
+                "BNE     loc_FFC5DD94\n"
+                "LDR     R0, =0x4010\n"
+                "BL      sub_FFC19B9C\n"
+                "BL      sub_FFD5A3CC\n"
+                "BL      sub_FFC5F06C\n"
+                "MOV     R0, #4\n"
+                "BL      sub_FFC5CA14\n"
+                "B       loc_FFC5DD8C\n"
+"loc_FFC5DC5C:\n"
+                "MOV     R1, R7\n"
+                "MOV     R0, R6\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC5D9C0\n"
+"loc_FFC5DC6C:\n"
+                "MOV     R0, R6\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC5E604\n"
+"loc_FFC5DC78:\n"
+                "LDR     R7, =0x1182\n"
+                "MOV     R0, R6\n"
+                "CMP     R0, R7\n"
+                "MOV     R6, #1\n"
+                "STREQ   R6, [R4,#0xA8]\n"
+                "BEQ     loc_FFC5DD8C\n"
+                "SUB     R12, R0, #0x1000\n"
+                "SUBS    R12, R12, #0x1AC\n"
+                "BEQ     loc_FFC5DCD8\n"
+                "SUB     R12, R0, #0x3000\n"
+                "SUBS    R12, R12, #0x224\n"
+                "BNE     loc_FFC5DD94\n"
+                "MOV     R0, #8\n"
+                "BL      sub_FFC19B9C\n"
+                "MOV     R0, #3\n"
+                "BL      sub_FFC5CA14\n"
+                "STR     R5, [R4,#0xAC]\n"
+                "LDR     R0, [R4,#0xA8]\n"
+                "CMP     R0, #0\n"
+                "MOVNE   R1, #0\n"
+                "MOVNE   R0, R7\n"
+                "STRNE   R5, [R4,#0xA8]\n"
+                "BLNE    sub_FFC5D9C0\n"
+                "B       loc_FFC5DD8C\n"
+"loc_FFC5DCD8:\n"
+                "LDR     R0, [R4,#0xAC]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC5DD8C\n"
+                "BL      sub_FFD582F4\n"
+                "STR     R6, [R4,#0xAC]\n"
+                "B       loc_FFC5DD8C\n"
+"loc_FFC5DCF0:\n"
+                "MOV     R0, R6\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC5D784_my\n"  //----------> movie_rec.c
+"loc_FFC5DCFC:\n"
+                "LDR     R12, =0x10B0\n"
+                "CMP     R6, R12\n"
+                "BEQ     loc_FFC5DD28\n"
+                "BGT     loc_FFC5DD34\n"
+                "CMP     R6, #4\n"
+                "BEQ     loc_FFC5DD5C\n"
+                "SUB     R12, R6, #0x1000\n"
+                "SUBS    R12, R12, #0xAA\n"
+                "SUBNE   R12, R6, #0x1000\n"
+                "SUBNES  R12, R12, #0xAE\n"
+                "BNE     loc_FFC5DD94\n"
+"loc_FFC5DD28:\n"
+                "BL      sub_FFC5C6F4\n"
+"loc_FFC5DD2C:\n"
+                "MOV     R0, R5\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+"loc_FFC5DD34:\n"
+                "SUB     R12, R6, #0x2000\n"
+                "SUBS    R12, R12, #4\n"
+                "BEQ     loc_FFC5DD74\n"
+                "SUB     R12, R6, #0x5000\n"
+                "SUBS    R12, R12, #1\n"
+                "SUBNE   R12, R6, #0x5000\n"
+                "SUBNES  R12, R12, #6\n"
+                "BNE     loc_FFC5DD94\n"
+                "BL      sub_FFC5D098\n"
+                "B       loc_FFC5DD8C\n"
+"loc_FFC5DD5C:\n"
+                "LDR     R0, [R4,#0x2C]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC5DD74\n"
+                "BL      sub_FFC5DF50\n"
+                "BL      sub_FFC14BF8\n"
+                "B       loc_FFC5DD8C\n"
+"loc_FFC5DD74:\n"
+                "BL      sub_FFC5C730\n"
+                "B       loc_FFC5DD8C\n"
+"loc_FFC5DD7C:\n"
+                "SUB     R12, R6, #0x3000\n"
+                "SUBS    R12, R12, #0x130\n"
+                "BNE     loc_FFC5DD94\n"
+                "BL      sub_FFC5C7D8\n"
+"loc_FFC5DD8C:\n"
+                "MOV     R0, #0\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+"loc_FFC5DD94:\n"
+                "MOV     R0, #1\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC5D48C_my() { //#fs  uAC_Boot
+        asm volatile (
+                "STMFD   SP!, {R4-R8,LR}\n"
+                "LDR     R7, =0x8002\n"
+                "LDR     R4, =0x5760\n"
+                "CMP     R0, #2\n"
+                "MOV     R6, R1\n"
+                "MOV     R5, #1\n"
+                "BEQ     loc_FFC5D518\n"
+                "BGT     loc_FFC5D500\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC5D544\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC5D5DC\n"
+                "MOV     R0, #8\n"
+                "BL      sub_FFC5CA14\n"
+                "BL      sub_FFC5EC84\n"
+                "BL      sub_FFC5F78C\n"
+                "LDR     R1, =0xFFC5D73C\n"
+                "MOV     R0, #0x20\n"
+                "BL      sub_FFC542D8\n"
+                "BL      sub_FFC5EC48_my\n" //------>
+                "BL      sub_FFC5ED54\n"
+                "BL      sub_FFC1A5BC\n"
+                "LDR     R0, =0x4004\n"
+                "BL      sub_FFC19B9C\n"
+                "LDR     R0, [R4,#0x68]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC5D5BC\n"
+                "BL      sub_FFC19D80\n"
+                "B       loc_FFC5D5C0\n"
+"loc_FFC5D500:\n"
+                "CMP     R0, #6\n"
+                "STREQ   R5, [R4,#0x28]\n"
+                "BEQ     loc_FFC5D5D0\n"
+                "SUB     R12, R0, #0x2000\n"
+                "SUBS    R12, R12, #4\n"
+                "BNE     loc_FFC5D5DC\n"
+"loc_FFC5D518:\n"
+                "SUB     R12, R6, #0x1100\n"
+                "SUBS    R12, R12, #0x62\n"
+                "BNE     loc_FFC5D534\n"
+                "MOV     R1, R7\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC60288\n"
+                "STR     R5, [R4,#0x60]\n"
+"loc_FFC5D534:\n"
+                "BL      sub_FFC5F924\n"
+                "BL      sub_FFC5FBBC\n"
+                "BL      sub_FFC5D038\n"
+                "B       loc_FFC5D5D4\n"
+"loc_FFC5D544:\n"
+                "MOV     R0, #7\n"
+                "BL      sub_FFC5CA14\n"
+                "MOV     R0, R7\n"
+                "BL      sub_FFC19B9C\n"
+                "BL      sub_FFC5EC84\n"
+                "BL      sub_FFC5F78C\n"
+                "LDR     R1, =0xFFC5D74C\n"
+                "MOV     R0, #0x20\n"
+                "STR     R6, [R4,#0x18]\n"
+                "BL      sub_FFC542D8\n"
+                "LDR     R1, =0xFFC5D758\n"
+                "MOV     R0, #0x20\n"
+                "BL      sub_FFC542D8\n"
+                "STR     R5, [R4,#0x28]\n"
+                "BL      sub_FFC19D10\n"
+                "BL      sub_FFC19C64\n"
+                "LDR     R0, [R4,#0x1C]\n"
+                "LDR     R1, [R4,#0x20]\n"
+                "ORRS    R0, R0, R1\n"
+                "BLNE    sub_FFC5DF2C\n"
+                "LDR     R0, [R4,#0x68]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC5D5A8\n"
+                "BL      sub_FFC19D80\n"
+                "B       loc_FFC5D5B0\n"
+"loc_FFC5D5A8:\n"
+                "BL      sub_FFC14A7C\n"
+                "BL      sub_FFC1A5F4\n"
+"loc_FFC5D5B0:\n"
+                "BL      sub_FFC5EC48_my\n" //------>
+                "BL      sub_FFC5ECC0\n"
+                "B       loc_FFC5D5D4\n"
+"loc_FFC5D5BC:\n"
+                "BL      sub_FFC14A7C\n"
+"loc_FFC5D5C0:\n"
+                "BL      sub_FFC5ECF0\n"
+                "LDR     R0, [R4,#0x30]\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC5D5D4\n"
+"loc_FFC5D5D0:\n"
+                "BL      sub_FFC5DF74\n"
+"loc_FFC5D5D4:\n"
+                "MOV     R0, #0\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+"loc_FFC5D5DC:\n"
+                "MOV     R0, #1\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC5EC48_my() { //#fs  CreateTask_InitFileModules
+        asm volatile (
+                "LDR     R0, =0x5828\n"
+                "STMFD   SP!, {R3,LR}\n"
+                "LDR     R1, [R0,#4]\n"
+                "CMP     R1, #0\n"
+                "BNE     locret_FFC5EC80\n"
+                "MOV     R1, #1\n"
+                "STR     R1, [R0,#4]\n"
+                "MOV     R3, #0\n"
+                "STR     R3, [SP,#8-0x8]\n"
+                "LDR     R3, =task_InitFileModules_my\n"  // continue for SDHC-boot (orig: FFC5EBF8)
+                "MOV     R1, #0x19\n"
+                "LDR     R0, =0xFFC5EDAC\n"
+                "MOV     R2, #0x1000\n"
+                "BL      sub_FFC0B8E0\n"
+"locret_FFC5EC80:\n"
+                "LDMFD   SP!, {R12,PC}\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) task_InitFileModules_my() { //#fs  
+        asm volatile (
+                "STMFD   SP!, {R4-R6,LR}\n"
+                "BL      sub_FFC57794\n"
+                "LDR     R5, =0x5006\n"
+                "MOVS    R4, R0\n"
+                "MOVNE   R1, #0\n"
+                "MOVNE   R0, R5\n"
+                "BLNE    sub_FFC5AC24\n"
+                "BL      sub_FFC577C0_my\n"  // continue to SDHC-hook here!
+				"BL      core_spytask_can_start\n"      // CHDK: Set "it's-save-to-start"-Flag for spytask
+                "CMP     R4, #0\n"
+                "MOVEQ   R0, R5\n"
+                "LDMEQFD SP!, {R4-R6,LR}\n"
+                "MOVEQ   R1, #0\n"
+                "BEQ     sub_FFC5AC24\n"
+                "LDMFD   SP!, {R4-R6,PC}\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC577C0_my() { //#fs  
+        asm volatile (
+                "STMFD   SP!, {R4,LR}\n"
+                "BL      sub_FFC3C544_my\n"  // continue to SDHC-hook here!
+                "LDR     R4, =0x55A8\n"
+                "LDR     R0, [R4,#4]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC577F0\n"
+                "BL      sub_FFC65B88\n"
+                "BL      sub_FFCDC234\n"
+                "BL      sub_FFC65B88\n"
+                "BL      sub_FFC39F34\n"
+                "BL      sub_FFC65B98\n"
+                "BL      sub_FFCDC300\n"
+"loc_FFC577F0:\n"
+                "MOV     R0, #1\n"
+                "STR     R0, [R4]\n"
+                "LDMFD   SP!, {R4,PC}\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC3C544_my() { //#fs  
+        asm volatile (
+                "STMFD   SP!, {R4-R6,LR}\n"
+                "MOV     R6, #0\n"
+                "MOV     R0, R6\n"
+                "BL      sub_FFC3C004\n"
+                "LDR     R4, =0x11168\n"
+                "MOV     R5, #0\n"
+                "LDR     R0, [R4,#0x38]\n"
+                "BL      sub_FFC3CA38\n"
+                "CMP     R0, #0\n"
+                "LDREQ   R0, =0x2858\n"
+                "STREQ   R5, [R0,#0x10]\n"
+                "STREQ   R5, [R0,#0x14]\n"
+                "STREQ   R5, [R0,#0x18]\n"
+                "MOV     R0, R6\n"
+                "BL      sub_FFC3C044\n"
+                "MOV     R0, R6\n"
+				"BL      sub_FFC3C380_my\n"  // continue to SDHC-hook here!
+                "MOV     R5, R0\n"
+                "MOV     R0, R6\n"
+                "BL      sub_FFC3C3EC\n"
+                "LDR     R1, [R4,#0x3C]\n"
+                "AND     R2, R5, R0\n"
+                "CMP     R1, #0\n"
+                "MOV     R0, #0\n"
+                "MOVEQ   R0, #0x80000001\n"
+                "BEQ     loc_FFC3C5D8\n"
+                "LDR     R3, [R4,#0x2C]\n"
+                "CMP     R3, #2\n"
+                "MOVEQ   R0, #4\n"
+                "CMP     R1, #5\n"
+                "ORRNE   R0, R0, #1\n"
+                "BICEQ   R0, R0, #1\n"
+                "CMP     R2, #0\n"
+                "BICEQ   R0, R0, #2\n"
+                "ORREQ   R0, R0, #0x80000000\n"
+                "BICNE   R0, R0, #0x80000000\n"
+                "ORRNE   R0, R0, #2\n"
+"loc_FFC3C5D8:\n"
+                "STR     R0, [R4,#0x40]\n"
+                "LDMFD   SP!, {R4-R6,PC}\n"
+        );
+}; //#fe
+
+
+void __attribute__((naked,noinline)) sub_FFC3C380_my() { //#fs  
+        asm volatile (
+                "STMFD   SP!, {R4-R6,LR}\n"
+                "LDR     R5, =0x2858\n"
+                "MOV     R6, R0\n"
+                "LDR     R0, [R5,#0x14]\n"
+                "CMP     R0, #0\n"
+                "MOVNE   R0, #1\n"
+                "LDMNEFD SP!, {R4-R6,PC}\n"
+                "MOV     R0, #0x17\n"
+                "MUL     R1, R0, R6\n"
+                "LDR     R0, =0x11168\n"
+                "ADD     R4, R0, R1,LSL#2\n"
+                "LDR     R0, [R4,#0x38]\n"
+                "MOV     R1, R6\n"
+                "BL      sub_FFC3C110_my\n"  // continue to SDHC-hook here!
+                "CMP     R0, #0\n"
+                "LDMEQFD SP!, {R4-R6,PC}\n"
+                "LDR     R0, [R4,#0x38]\n"
+                "MOV     R1, R6\n"
+                "BL      sub_FFC3C278\n"
+                "CMP     R0, #0\n"
+                "LDMEQFD SP!, {R4-R6,PC}\n"
+                "MOV     R0, R6\n"
+                "BL      sub_FFC3BC0C\n"
+                "CMP     R0, #0\n"
+                "MOVNE   R1, #1\n"
+                "STRNE   R1, [R5,#0x14]\n"
+                "LDMFD   SP!, {R4-R6,PC}\n"
+        );
+}; //#fe
+
+void __attribute__((naked,noinline)) sub_FFC3C110_my() { //#fs  ; Partition table parse takes place here. => SDHC-boot
+        asm volatile (
+                "STMFD   SP!, {R4-R8,LR}\n"
+                "MOV     R8, R0\n"
+                "MOV     R0, #0x17\n"
+                "MUL     R1, R0, R1\n"
+                "LDR     R0, =0x11168\n"
+                "MOV     R6, #0\n"
+                "ADD     R7, R0, R1,LSL#2\n"
+                "LDR     R0, [R7,#0x3C]\n"
+                "MOV     R5, #0\n"
+                "CMP     R0, #6\n"
+                "ADDLS   PC, PC, R0,LSL#2\n"
+                "B       loc_FFC3C25C\n"
+"loc_FFC3C140:\n"
+                "B       loc_FFC3C174\n"
+"loc_FFC3C144:\n"
+                "B       loc_FFC3C15C\n"
+"loc_FFC3C148:\n"
+                "B       loc_FFC3C15C\n"
+"loc_FFC3C14C:\n"
+                "B       loc_FFC3C15C\n"
+"loc_FFC3C150:\n"
+                "B       loc_FFC3C15C\n"
+"loc_FFC3C154:\n"
+                "B       loc_FFC3C254\n"
+"loc_FFC3C158:\n"
+                "B       loc_FFC3C15C\n"
+"loc_FFC3C15C:\n"
+                "MOV     R2, #0\n"
+                "MOV     R1, #0x200\n"
+                "MOV     R0, #3\n"
+                "BL      sub_FFC51940\n"
+                "MOVS    R4, R0\n"
+                "BNE     loc_FFC3C17C\n"
+"loc_FFC3C174:\n"
+                "MOV     R0, #0\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+"loc_FFC3C17C:\n"
+                "LDR     R12, [R7,#0x4C]\n"
+                "MOV     R3, R4\n"
+                "MOV     R2, #1\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, R8\n"
+                //"BLX     R12\n"       // !! Workaround !!
+                "MOV     LR, PC\n"      // gcc won't compile "BLX R12" nor "BL R12".
+                "MOV     PC, R12\n"     // workaround: make your own "BL" and hope we don't need the change to thumb-mode
+				
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC3C1A8\n"
+                "MOV     R0, #3\n"
+                "BL      sub_FFC51A80\n"
+                "B       loc_FFC3C174\n"
+"loc_FFC3C1A8:\n"
+                "MOV     R0, R8\n"
+                "BL      sub_FFCF8D9C\n" // Add FAT32 autodetect-code after this line\n"
+
+                // Start of DataGhost's FAT32 autodetection code
+                // Policy: If there is a partition which has type W95 FAT32, use the first one of those for image storage
+                // According to the code below, we can use R1, R2, R3 and R12.
+                // LR wasn't really used anywhere but for storing a part of the partition signature. This is the only thing
+                // that won't work with an offset, but since we can load from LR+offset into LR, we can use this to do that :)
+                "MOV     R12, R4\n"                    // Copy the MBR start address so we have something to work with
+                "MOV     LR, R4\n"                     // Save old offset for MBR signature
+                "MOV     R1, #1\n"                     // Note the current partition number
+                "B       dg_sd_fat32_enter\n"          // We actually need to check the first partition as well, no increments yet!
+           "dg_sd_fat32:\n"
+                "CMP     R1, #4\n"                     // Did we already see the 4th partition?
+                "BEQ     dg_sd_fat32_end\n"            // Yes, break. We didn't find anything, so don't change anything.
+                "ADD     R12, R12, #0x10\n"            // Second partition
+                "ADD     R1, R1, #1\n"                 // Second partition for the loop
+           "dg_sd_fat32_enter:\n"
+                "LDRB    R2, [R12, #0x1BE]\n"          // Partition status
+                "LDRB    R3, [R12, #0x1C2]\n"          // Partition type (FAT32 = 0xB)
+                "CMP     R3, #0xB\n"                   // Is this a FAT32 partition?
+                "CMPNE   R3, #0xC\n"                   // Not 0xB, is it 0xC (FAT32 LBA) then?
+                "BNE     dg_sd_fat32\n"                // No, it isn't.
+                "CMP     R2, #0x00\n"                  // It is, check the validity of the partition type
+                "CMPNE   R2, #0x80\n"
+                "BNE     dg_sd_fat32\n"                // Invalid, go to next partition
+                                                       // This partition is valid, it's the first one, bingo!
+                "MOV     R4, R12\n"                    // Move the new MBR offset for the partition detection.
+                
+           "dg_sd_fat32_end:\n"
+                // End of DataGhost's FAT32 autodetection code
+				// Continue with firmware
+                "LDRB    R1, [R4,#0x1C9]\n"
+                "LDRB    R3, [R4,#0x1C8]\n"
+                "LDRB    R12, [R4,#0x1CC]\n"
+                "MOV     R1, R1,LSL#24\n"
+                "ORR     R1, R1, R3,LSL#16\n"
+                "LDRB    R3, [R4,#0x1C7]\n"
+                "LDRB    R2, [R4,#0x1BE]\n"
+                "LDRB    LR, [R4,#0x1FF]\n"  // replaced, see below
+                "ORR     R1, R1, R3,LSL#8\n"
+                "LDRB    R3, [R4,#0x1C6]\n"
+                "CMP     R2, #0\n"
+                "CMPNE   R2, #0x80\n"
+                "ORR     R1, R1, R3\n"
+                "LDRB    R3, [R4,#0x1CD]\n"
+                "MOV     R3, R3,LSL#24\n"
+                "ORR     R3, R3, R12,LSL#16\n"
+                "LDRB    R12, [R4,#0x1CB]\n"
+                "ORR     R3, R3, R12,LSL#8\n"
+                "LDRB    R12, [R4,#0x1CA]\n"
+                "ORR     R3, R3, R12\n"
+                "LDRB    R12, [R4,#0x1FE]\n"  // replaced, see below
+                //"LDRB    R12, [LR,#0x1FE]\n"            // New! First MBR signature byte (0x55)
+                //"LDRB    LR, [LR,#0x1FF]\n"             //      Last MBR signature byte (0xAA)
+                "MOV     R4, #0\n"
+                "BNE     loc_FFC3C230\n"
+                "CMP     R0, R1\n"
+                "BCC     loc_FFC3C230\n"
+                "ADD     R2, R1, R3\n"
+                "CMP     R2, R0\n"
+                "CMPLS   R12, #0x55\n"
+                "CMPEQ   LR, #0xAA\n"
+                "MOVEQ   R6, R1\n"
+                "MOVEQ   R5, R3\n"
+                "MOVEQ   R4, #1\n"
+"loc_FFC3C230:\n"
+                "MOV     R0, #3\n"
+                "BL      sub_FFC51A80\n"
+                "CMP     R4, #0\n"
+                "BNE     loc_FFC3C268\n"
+                "MOV     R6, #0\n"
+                "MOV     R0, R8\n"
+                "BL      sub_FFCF8D9C\n"
+                "MOV     R5, R0\n"
+                "B       loc_FFC3C268\n"
+"loc_FFC3C254:\n"
+                "MOV     R5, #0x40\n"
+                "B       loc_FFC3C268\n"
+"loc_FFC3C25C:\n"
+                "MOV     R1, #0x374\n"
+                "LDR     R0, =0xFFC3C104\n"
+                "BL      sub_FFC0BDB8\n"
+"loc_FFC3C268:\n"
+                "STR     R6, [R7,#0x44]!\n"
+                "MOV     R0, #1\n"
+                "STR     R5, [R7,#4]\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+        );
+}; //#fe
+
+
Index: /trunk/platform/a470/sub/100e/stubs_min.S
===================================================================
--- /trunk/platform/a470/sub/100e/stubs_min.S	(revision 785)
+++ /trunk/platform/a470/sub/100e/stubs_min.S	(revision 785)
@@ -0,0 +1,20 @@
+#include "stubs_asm.h"
+
+DEF(physw_status, 0x1007C) //Found for A470 (GPIOStatus)
+DEF(physw_run, 0x1BF0) //Found for A470 in task_PhySw, same as A590
+DEF(FlashParamsTable,  0xFFE961CC) // via GetReservedClusters_Fut_9
+DEF(zoom_busy, 0x8050)  //0x803c+14 same as in a590
+DEF(focus_busy, 0x82B0) // 0x82A8+0x08 found in sub_FFD02310
+
+DEF(canon_menu_active,0x9014)		// 0x9010+4
+
+//-
+
+DEF(canon_shoot_menu_active,0x9768)   // 0x9768+1 ??BAD
+
+DEF(recreview_hold, 0x9634) // ?? found in GetAEIntegralServiceMode_6
+
+DEF(movie_status, 0x5200)  // 0x51C8 + 0x38
+DEF(some_flag_for_af_scan, 0xCDEC) 
+DEF(zoom_status, 0xD7C4) 
+DEF(led_table, 0x22AC) //Found using LEDDrv.c
Index: /trunk/platform/a470/sub/100e/makefile.inc
===================================================================
--- /trunk/platform/a470/sub/100e/makefile.inc	(revision 785)
+++ /trunk/platform/a470/sub/100e/makefile.inc	(revision 785)
@@ -0,0 +1,18 @@
+#317A
+PLATFORMID=12666
+
+PLATFORMOS=dryos
+
+MEMBASEADDR=0x1900
+RESTARTSTART=0x49000
+MEMISOSTART=0xA5798
+ROMBASEADDR=0xffc00000
+
+PLFLAGS=-DMEMBASEADDR=$(MEMBASEADDR) -DMEMISOSTART=$(MEMISOSTART) -DMEMISOSIZE=$(MEMISOSIZE)
+PLFLAGS+=-DRESTARTSTART=$(RESTARTSTART)
+
+NEED_ENCODED_DISKBOOT=very_yes
+KEYSYS=d3enc
+ifdef OPT_FI2
+include  $(topdir)platform/fi2.inc
+endif
Index: /trunk/platform/a470/sub/100e/stubs_asm.h
===================================================================
--- /trunk/platform/a470/sub/100e/stubs_asm.h	(revision 785)
+++ /trunk/platform/a470/sub/100e/stubs_asm.h	(revision 785)
@@ -0,0 +1,20 @@
+    .text
+
+#define DEF(n,a) \
+    .globl n; n = a
+
+#define NSTUB(name, addr)\
+    .globl _##name ;\
+    .weak _##name ;\
+    _##name: ;\
+	ldr  pc, = ## addr
+
+#define NHSTUB(name, addr)\
+    .globl _##name ;\
+    _##name: ;\
+	ldr  pc, = ## addr
+
+#define STUB(addr)\
+    .globl sub_ ## addr ;\
+    sub_ ## addr: ;\
+	ldr  pc, =0x ## addr
Index: /trunk/platform/a470/sub/100e/lib.c
===================================================================
--- /trunk/platform/a470/sub/100e/lib.c	(revision 785)
+++ /trunk/platform/a470/sub/100e/lib.c	(revision 785)
@@ -0,0 +1,68 @@
+#include "platform.h"
+
+void *hook_raw_fptr()
+{
+    return (void*)0;
+}
+
+void *hook_raw_ret_addr()
+{
+    return (void*)0;
+}
+
+char *hook_raw_image_addr()
+{
+    return (char*)0x10F06B20; //found at 0xFFD82C10
+}
+
+long hook_raw_size()
+{
+    return 0x8D0A68; //found at 0xFFE2DC64
+}
+
+void *vid_get_viewport_live_fb()
+{
+    return (void*)0; //Apparently deprecated
+}
+
+void *vid_get_bitmap_fb()  //OSD buffer     
+{
+    return (void*)0x10361000; //found at 0xFFCC2F24
+}
+
+void *vid_get_viewport_fb()
+{
+	 return (void*)0x10659D50; // found at 0xFFE2B904
+}
+
+void *vid_get_viewport_fb_d()
+{
+    //return (void*)(*(int*)0x5228);  // same as 100e, eg FFC44B58
+	// http://chdk.setepontos.com/index.php/topic,2361.msg27125.html#msg27125
+	// sub_FFC45328
+	return (void*)(*(int*)(0x5080+0x4C));  //might wanna check this, found above ImagePlayer.c
+}
+
+long vid_get_bitmap_screen_width()
+{
+    return 360;
+}
+
+long vid_get_bitmap_screen_height()
+{
+    return 240;
+}
+
+long vid_get_viewport_height()
+{
+    return 240;
+}
+char *camera_jpeg_count_str()
+{
+    return (char*)0x49A00; // found above a9999
+}
+
+long vid_get_bitmap_buffer_width() { return 360; }
+
+long vid_get_bitmap_buffer_height() { return 240; }
+
Index: /trunk/platform/a470/sub/100e/movie_rec.c
===================================================================
--- /trunk/platform/a470/sub/100e/movie_rec.c	(revision 785)
+++ /trunk/platform/a470/sub/100e/movie_rec.c	(revision 785)
@@ -0,0 +1,1869 @@
+void __attribute__((naked,noinline)) sub_FFC5D784_my(){
+asm volatile(
+                "LDR     R12, =0x201E\n"
+                "STMFD   SP!, {R4,LR}\n"
+                "CMP     R0, R12\n"
+                "BEQ     loc_FFC5D844\n"
+                "BGT     loc_FFC5D7E0\n"
+                "LDR     R12, =0x2004\n"
+                "CMP     R0, R12\n"
+                "BEQ     loc_FFC5D84C\n"
+                "BGT     loc_FFC5D7C8\n"
+                "SUB     R12, R0, #0x1000\n"
+                "SUBS    R12, R12, #0xA9\n"
+                "SUBNE   R12, R0, #0x1000\n"
+                "SUBNES  R12, R12, #0xAD\n"
+                "SUBNE   R12, R0, #0x1000\n"
+                "SUBNES  R12, R12, #0xAF\n"
+                "BNE     loc_FFC5D85C\n"
+                "B       loc_FFC5D844\n"
+"loc_FFC5D7C8:\n"
+                "SUB     R12, R0, #0x2000\n"
+                "SUBS    R12, R12, #5\n"
+                "SUBNE   R12, R0, #0x2000\n"
+                "SUBNES  R12, R12, #0x1D\n"
+                "BNE     loc_FFC5D85C\n"
+                "B       loc_FFC5D844\n"
+"loc_FFC5D7E0:\n"
+                "LDR     R12, =0x5004\n"
+                "CMP     R0, R12\n"
+                "BEQ     loc_FFC5D844\n"
+                "BGT     loc_FFC5D80C\n"
+                "SUB     R12, R0, #0x3000\n"
+                "SUBS    R12, R12, #0xA\n"
+                "BEQ     loc_FFC5D840\n"
+                "SUB     R12, R0, #0x5000\n"
+                "SUBS    R12, R12, #1\n"
+                "BNE     loc_FFC5D85C\n"
+                "B       loc_FFC5D844\n"
+"loc_FFC5D80C:\n"
+                "SUB     R12, R0, #0x5000\n"
+                "SUBS    R12, R12, #6\n"
+                "BEQ     loc_FFC5D844\n"
+                "SUB     R12, R0, #0x5000\n"
+                "SUBS    R12, R12, #7\n"
+                "BNE     loc_FFC5D85C\n"
+                "BL      sub_FFC1A5F4\n"
+                "LDR     R1, =0x5760\n"
+                "LDR     R0, [R1,#0x10]\n"
+                "CMP     R0, #7\n"
+                "LDREQ   R0, [R1,#0x18]\n"
+                "BLEQ    sub_FFC5E0F4\n"
+                "B       loc_FFC5D854\n"
+"loc_FFC5D840:\n"
+                "BL      sub_FFC19B88\n"
+"loc_FFC5D844:\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "B       sub_FFC5D5E4_my\n" //------------->
+"loc_FFC5D84C:\n"
+                "BL      sub_FFC5C674\n"
+                "BL      sub_FFC5D098\n"
+"loc_FFC5D854:\n"
+                "MOV     R0, #0\n"
+                "LDMFD   SP!, {R4,PC}\n"
+"loc_FFC5D85C:\n"
+                "MOV     R0, #1\n"
+                "LDMFD   SP!, {R4,PC}\n"
+ );
+}
+
+void __attribute__((naked,noinline)) sub_FFC5D5E4_my(){
+asm volatile(
+                "STMFD   SP!, {R4-R6,LR}\n"
+                "BL      sub_FFC5E260\n"
+                "CMP     R0, #1\n"
+                "BLEQ    sub_FFC5E348\n"
+                "LDR     R4, =0x5760\n"
+                "MOV     R5, #1\n"
+                "LDR     R0, [R4,#0x24]\n"
+                "CMP     R0, #0\n"
+                "LDRNE   R0, [R4,#0x4C]\n"
+                "CMPNE   R0, #0\n"
+                "BEQ     loc_FFC5D650\n"
+                "BL      sub_FFC5E260\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC5D650\n"
+                "BL      sub_FFC5E348\n"
+                "LDR     R0, [R4,#0x78]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC5D650\n"
+                "LDR     R1, =0xFFC5D764\n"
+                "MOV     R0, #0x20\n"
+                "BL      sub_FFC542D8\n"
+                "BL      sub_FFD66ECC\n"
+                "BL      sub_FFD66E5C\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, #0x51\n"
+                "BL      sub_FFC659B4\n"
+                "STR     R5, [R4,#0x78]\n"
+"loc_FFC5D650:\n"
+                "BL      sub_FFC5E260\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC5D69C\n"
+                "LDR     R0, [R4,#0x44]\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC5D69C\n"
+                "LDR     R0, [R4,#0x74]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC5D69C\n"
+                "LDR     R1, =0xFFC5D778\n"
+                "MOV     R0, #0x20\n"
+                "BL      sub_FFC542D8\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, #0x8C\n"
+                "BL      sub_FFC659B4\n"
+                "BL      sub_FFC63BA0\n"
+                "MOV     R0, #0x21\n"
+                "BL      sub_FFC659F4\n"
+                "STR     R5, [R4,#0x74]\n"
+"loc_FFC5D69C:\n"
+                "LDR     R0, [R4,#0x38]\n"
+                "CMP     R0, #0\n"
+                "LDRNE   R0, [R4,#0x3C]\n"
+                "CMPNE   R0, #0\n"
+                "LDRNE   R0, [R4,#0x44]\n"
+                "CMPNE   R0, #0\n"
+                "LDRNE   R0, [R4,#0x48]\n"
+                "CMPNE   R0, #0\n"
+                "LDRNE   R0, [R4,#0x1C]\n"
+                "LDRNE   R1, [R4,#0x20]\n"
+                "ORRNES  R0, R0, R1\n"
+                "BEQ     loc_FFC5D6D8\n"
+                "BL      sub_FFC5CF38\n"
+                "BL      sub_FFC5D098\n"
+                "B       loc_FFC5D700\n"
+"loc_FFC5D6D8:\n"
+                "LDR     R0, [R4,#0x58]\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC5D708\n"
+                "BL      sub_FFC5CF80\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC5D708\n"
+                "BL      sub_FFC5F924\n"
+                "BL      sub_FFC5F8E0\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC5E130\n"
+"loc_FFC5D700:\n"
+                "MOV     R0, #0\n"
+                "LDMFD   SP!, {R4-R6,PC}\n"
+"loc_FFC5D708:\n"
+                "BL      sub_FFC5CF80\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC5D730\n"
+                "LDR     R0, [R4,#0x7C]\n"
+                "CMP     R0, #0\n"
+                "BLEQ    sub_FFC5E38C_my\n"  //------>
+                "MOV     R0, #0\n"
+                "STR     R0, [R4,#0x70]\n"
+                "STR     R0, [R4,#0x74]\n"
+                "STR     R0, [R4,#0x78]\n"
+"loc_FFC5D730:\n"
+                "MOV     R0, #1\n"
+                "LDMFD   SP!, {R4-R6,PC}\n"
+);
+}
+
+void __attribute__((naked,noinline)) sub_FFC5E38C_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4,LR}\n"
+                "LDR     R1, =0xFFC5E5AC\n"
+                "MOV     R0, #0x20\n"
+                "BL      sub_FFC542D8\n"
+                "BL      sub_FFC19DA4\n"
+                "BL      sub_FFC5E6B0\n"
+                "BL      sub_FFC619A8_my\n"  //------>
+                "MOV     R0, #1\n"
+                "BL      sub_FFC5CA14\n"
+                "BL      sub_FFC5CEBC\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "B       sub_FFC5D12C\n"
+ );
+} 
+
+void __attribute__((naked,noinline)) sub_FFC619A8_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4-R6,LR}\n"
+                "LDR     R1, =0xFFC61BB4\n"
+                "MOV     R0, #0x20\n"
+                "BL      sub_FFC542D8\n"
+                "LDR     R4, =0x59E8\n"
+                "MOV     R0, #6\n"
+                "MOV     R5, #1\n"
+                "STR     R0, [R4,#0x5C]\n"
+                "STR     R5, [R4,#0x10]\n"
+                "BL      sub_FFD2A7D8\n"
+                "BL      sub_FFD30690\n"
+                "BL      sub_FFD2EE78\n"
+                "BL      sub_FFC61DC8_my\n"  //------>
+                "BL      sub_FFD37F94\n"
+                "MOV     R0, #1\n"
+                "STR     R5, [R4,#0x18]\n"
+                "BL      sub_FFC61E60\n"
+                "MOV     R0, #3\n"
+                "STR     R0, [R4,#0x60]\n"
+                "LDR     R1, [R4,#0x64]\n"
+                "LDMFD   SP!, {R4-R6,LR}\n"
+                "MOV     R0, #0\n"
+                "BX      R1\n"
+ );
+} 
+
+void __attribute__((naked,noinline)) sub_FFC61DC8_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4,LR}\n"
+                "LDR     R0, =0x855\n"
+                "BL      sub_FFD27034\n"
+                "BL      sub_FFC19B88\n"
+				"BL      sub_FFC61764\n"
+                "BL      sub_FFC61764_my\n"  //------>
+                "BL      sub_FFD2A0E8\n"
+                "BL      sub_FFD1A730\n"
+                "BL      sub_FFD324BC\n"
+                "BL      sub_FFD328AC\n"
+                "BL      sub_FFD32AC4\n"
+                "BL      sub_FFD32634\n"
+                "BL      sub_FFD30DCC\n"
+                "BL      sub_FFC65A94\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "B       sub_FFC658C4\n"
+ );
+} 
+
+// branches are together
+
+void __attribute__((naked,noinline)) sub_FFC61764_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4,LR}\n"
+                "LDR     R0, =0x5A50\n"
+                "ADR     R1, sub_FFC61534_my\n"  //------>
+                "BL      sub_FFC66248\n"
+                "LDR     R1, =0x59E8\n"
+                "ADR     R0, sub_FFC61658_my\n"  //------>
+                "STR     R0, [R1,#0x64]\n"
+                "LDMFD   SP!, {R4,PC}\n"
+ );
+} 
+
+//branch 1
+
+void __attribute__((naked,noinline)) sub_FFC61534_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R3-R5,LR}\n"
+                "LDR     R4, =0x59E8\n"
+                "LDR     R0, [R4,#0x3C]\n"
+                "CMP     R0, #0\n"
+                "BLEQ    sub_FFD1948C\n"
+                "LDR     R0, [R4,#0x30]\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC61574\n"
+                "LDR     R1, =0xFFC61638\n"
+                "MOV     R0, #0x20\n"
+                "BL      sub_FFC542D8\n"
+                "MOV     R0, #0\n"
+                "STR     R0, [R4,#0x30]\n"
+                "STR     R0, [R4,#0x2C]\n"
+                "BL      sub_FFC61444\n"
+                "LDMFD   SP!, {R3-R5,PC}\n"
+"loc_FFC61574:\n"
+                "BL      sub_FFC15500\n"
+                "LDRH    R0, [R4,#4]\n"
+                "MOV     R1, SP\n"
+                "STRH    R0, [SP,#0x10-0x10]\n"
+                "LDR     R0, [R4,#0x5C]\n"
+                "STRH    R0, [SP,#0x10-0xE]\n"
+                "MOV     R0, #0x40\n"
+                "BL      sub_FFC659B4\n"
+                "LDR     R0, [R4,#0x1C]\n"
+                "CMP     R0, #0\n"
+                "LDREQH  R0, [R4,#4]\n"
+                "BLEQ    sub_FFC5BD90\n"
+                "LDRH    R0, [R4,#4]\n"
+                "MOV     R1, #1\n"
+                "BL      sub_FFC60854_my\n"  //------>
+                "LDR     R0, [R4,#0x60]\n"
+                "BL      sub_FFC61E60\n"
+                "MOV     R0, #3\n"
+                "STR     R0, [R4,#0x60]\n"
+                "LDR     R1, [R4,#0x64]\n"
+                "ADD     SP, SP, #4\n"
+                "LDMFD   SP!, {R4,R5,LR}\n"
+                "MOV     R0, #0\n"
+                "BX      R1\n"
+ );
+} 
+
+//branch 2
+
+void __attribute__((naked,noinline)) sub_FFC61658_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4-R6,LR}\n"
+                "LDR     R0, =0x8009\n"
+                "BL      sub_FFC5BEB8\n"
+                "LDR     R4, =0x826\n"
+                "CMP     R0, #0xB\n"
+                "CMPNE   R0, #0xC\n"
+                "MOV     R0, R4\n"
+                "BNE     loc_FFC61680\n"
+                "BL      sub_FFD26EFC\n"
+                "B       loc_FFC61690\n"
+"loc_FFC61680:\n"
+                "BL      sub_FFD2713C\n"
+                "CMP     R0, #0\n"
+                "MOVNE   R0, R4\n"
+                "BLNE    sub_FFD27034\n"
+"loc_FFC61690:\n"
+                "LDR     R4, =0x59E8\n"
+                "LDRH    R0, [R4,#4]\n"
+                "BL      sub_FFD308C8\n"
+                "BL      sub_FFD2F038\n"
+                "BL      sub_FFD32B54\n"
+                //"BL      nullsub_102\n"
+                "BL      sub_FFD30F58\n"
+                "BL      sub_FFD1C480\n"
+                "MOV     R5, #0\n"
+                "MOV     R0, R5\n"
+                "STR     R5, [R4,#0x24]\n"
+                "BL      sub_FFC155E4\n"
+                "BL      sub_FFD1BB80\n"
+                "STR     R5, [R4,#0x3C]\n"
+                "LDRH    R0, [R4,#4]\n"
+                "MOV     R1, #0\n"
+                "BL      sub_FFC60854_my\n"    //------>
+                "BL      sub_FFC63BA0\n"
+                "LDR     R1, [R4,#0x5C]\n"
+                "MOV     R0, #0x41\n"
+                "BL      sub_FFC659B4\n"
+                "BL      sub_FFD2F028\n"
+                "BL      sub_FFD2A94C\n"
+                "CMP     R0, #0\n"
+                "BLEQ    sub_FFD2F03C\n"
+                "BL      sub_FFD30850\n"
+                "BL      sub_FFD192FC\n"
+                "BL      sub_FFC5A1A0\n"
+                "STR     R0, [R4,#0x58]\n"
+                "LDR     R0, =0x8003\n"
+                "STR     R5, [R4,#0x2C]\n"
+                "BL      sub_FFC5BEB8\n"
+                "STRH    R0, [R4]\n"
+                "LDR     R0, =0x313D\n"
+                "MOV     R1, #0\n"
+                "BL      sub_FFC5AC24\n"
+                "BL      sub_FFC61D64\n"
+                "LDR     R0, [R4,#0x30]\n"
+                "CMP     R0, #1\n"
+                "STREQ   R5, [R4,#0x30]\n"
+                "LDMEQFD SP!, {R4-R6,LR}\n"
+                "BEQ     sub_FFC61444\n"
+                "LDMFD   SP!, {R4-R6,PC}\n"
+ );
+} 
+
+//branches are joining here
+
+void __attribute__((naked,noinline)) sub_FFC60854_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4-R6,LR}\n"
+                "MOV     R5, R1\n"
+                "MOV     R4, R0\n"
+                "MOV     R0, #0x60\n"
+                "LDR     R1, =0xFFC60B24\n"
+                "BL      sub_FFC542D8\n"
+                "LDR     R6, =0x59E8\n"
+                "LDR     R0, [R6,#0x10]\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC60980\n"
+                "LDR     R0, [R6,#0x18]\n"
+                "LDR     R2, =0x820A\n"
+                "LDR     R1, =0xFFFE0000\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC608C8\n"
+                "CMP     R5, #1\n"
+                "LDMEQFD SP!, {R4-R6,PC}\n"
+                "CMP     R5, #0\n"
+                "BNE     loc_FFC608C8\n"
+                "CMP     R4, R2\n"
+                "BEQ     loc_FFC608C0\n"
+                "CMP     R1, R4,LSL#17\n"
+                "TSTNE   R4, #0xC00\n"
+                "BEQ     loc_FFC608BC\n"
+                "BL      sub_FFC61C4C_my\n"  //------>
+                "B       loc_FFC608C0\n"
+"loc_FFC608BC:\n"
+                "BL      sub_FFC61C00\n"
+"loc_FFC608C0:\n"
+                "BL      sub_FFC61DC4\n"
+                "B       loc_FFC60980\n"
+"loc_FFC608C8:\n"
+                "CMP     R4, R2\n"
+                "BEQ     loc_FFC60978\n"
+                "CMP     R1, R4,LSL#17\n"
+                "LDRH    R0, [R6,#2]\n"
+                "TSTNE   R4, #0xC00\n"
+                "BEQ     loc_FFC60928\n"
+                "CMP     R0, R2\n"
+                "BEQ     loc_FFC60978\n"
+                "CMP     R1, R0,LSL#17\n"
+                "TSTNE   R0, #0xC00\n"
+                "BEQ     loc_FFC6090C\n"
+                "LDR     R1, =0xFFC60B44\n"
+                "MOV     R0, #0x60\n"
+                "BL      sub_FFC542D8\n"
+                "CMP     R5, #1\n"
+                "BEQ     loc_FFC60950\n"
+                "B       loc_FFC60920\n"
+"loc_FFC6090C:\n"
+                "LDR     R1, =0xFFC60B54\n"
+                "MOV     R0, #0x60\n"
+                "BL      sub_FFC542D8\n"
+                "CMP     R5, #1\n"
+                "BEQ     loc_FFC6096C\n"
+"loc_FFC60920:\n"
+                "BL      sub_FFC61C4C_my\n"  //------>
+                "B       loc_FFC60978\n"
+"loc_FFC60928:\n"
+                "CMP     R0, R2\n"
+                "BEQ     loc_FFC60978\n"
+                "CMP     R1, R0,LSL#17\n"
+                "TSTNE   R0, #0xC00\n"
+                "BEQ     loc_FFC60958\n"
+                "LDR     R1, =0xFFC60B64\n"
+                "MOV     R0, #0x60\n"
+                "BL      sub_FFC542D8\n"
+                "CMP     R5, #1\n"
+                "BNE     loc_FFC60974\n"
+"loc_FFC60950:\n"
+                "LDMFD   SP!, {R4-R6,LR}\n"
+                "B       sub_FFC61C78\n"
+"loc_FFC60958:\n"
+                "LDR     R1, =0xFFC60B74\n"
+                "MOV     R0, #0x60\n"
+                "BL      sub_FFC542D8\n"
+                "CMP     R5, #1\n"
+                "BNE     loc_FFC60974\n"
+"loc_FFC6096C:\n"
+                "LDMFD   SP!, {R4-R6,LR}\n"
+                "B       sub_FFC61C28\n"
+"loc_FFC60974:\n"
+                "BL      sub_FFC61C00\n"
+"loc_FFC60978:\n"
+                "CMP     R5, #0\n"
+                "LDMNEFD SP!, {R4-R6,PC}\n"
+"loc_FFC60980:\n"
+                "STRH    R4, [R6,#2]\n"
+                "LDMFD   SP!, {R4-R6,PC}\n"
+ );
+}
+
+void __attribute__((naked,noinline)) sub_FFC61C4C_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4,LR}\n"
+                "LDR     R1, =0xFFC61DA4\n"
+                "MOV     R0, #0x20\n"
+                "BL      sub_FFC542D8\n"
+                "LDR     R0, =0x59E8\n"
+                "LDR     R0, [R0,#0x28]\n"
+                "CMP     R0, #0\n"
+                "BLNE    sub_FFC626DC\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "MOV     R0, #0\n"
+                "B       sub_FFC64BF4_my\n"  //----------->
+ );
+} 
+
+void __attribute__((naked,noinline)) sub_FFC64BF4_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4,LR}\n"
+                "LDR     R4, =0x5B9C\n"
+                "MOV     R0, #0\n"
+                "STR     R0, [R4,#0x30]\n"
+                "LDR     R0, [R4,#8]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64C20\n"
+                "LDR     R0, =sub_FFC64768_my\n"  //------>
+                "MOV     R1, #0\n"
+                "BL      sub_FFC5A41C\n"
+                "STR     R0, [R4,#8]\n"
+"loc_FFC64C20:\n"
+                "LDR     R0, [R4,#0xC]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64C3C\n"
+                "LDR     R0, =0xFFC643FC\n"
+                "MOV     R1, #0\n"
+                "BL      sub_FFC618C8\n"
+                "STR     R0, [R4,#0xC]\n"
+"loc_FFC64C3C:\n"
+                "BL      sub_FFC65424\n"
+                "BL      sub_FFC64460\n"
+                "BL      sub_FFD379A8\n"
+                "BL      sub_FFD38794\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "B       sub_FFD30070\n"
+ );
+} 
+
+void __attribute__((naked,noinline)) sub_FFC64768_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R0-R11,LR}\n"
+                "LDR     R5, =0x5B9C\n"
+                "MOV     R4, R1\n"
+                "LDR     R1, [R5,#0x2C]\n"
+                "ADD     R0, R5, #0\n"
+                "LDR     R0, [R0,#0x14]\n"
+                "CMP     R1, #0\n"
+                "SUB     SP, SP, #4\n"
+                "MVN     R9, #0\n"
+                "BEQ     loc_FFC647E4\n"
+                "SUB     R12, R4, #0x3000\n"
+                "SUBS    R12, R12, #7\n"
+                "BEQ     loc_FFC649E8\n"
+                "CMP     R4, #0x800\n"
+                "LDREQ   R1, [SP,#0x38-0x28]\n"
+                "LDREQ   R2, [R5,#0x38]\n"
+                "CMPEQ   R1, R2\n"
+                "BNE     loc_FFC64B88\n"
+                "MOV     R1, #0\n"
+                "STR     R1, [R5,#0x2C]!\n"
+                "CMP     R0, #0\n"
+                "STR     R9, [R5,#0xC]\n"
+                "BNE     loc_FFC64BEC\n"
+                "BL      sub_FFC1A54C\n"
+                "CMP     R0, #1\n"
+                "BEQ     loc_FFC647DC\n"
+                "BL      sub_FFC1A554\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC64BEC\n"
+"loc_FFC647DC:\n"
+                "BL      sub_FFC645B0\n"
+                "B       loc_FFC64BEC\n"
+"loc_FFC647E4:\n"
+                "CMP     R0, #1\n"
+                "SUBEQ   R12, R4, #0x2000\n"
+                "SUBEQS  R12, R12, #0x1C\n"
+                "BNE     loc_FFC64800\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC64EF8\n"
+                "B       loc_FFC64BEC\n"
+"loc_FFC64800:\n"
+                "BL      sub_FFC596C4\n"
+                "LDR     R10, =0x9A5\n"
+                "CMP     R0, #1\n"
+                "SUB     R7, R10, #4\n"
+                "SUB     R8, R10, #2\n"
+                "BNE     loc_FFC64834\n"
+                "CMP     R4, R10\n"
+                "CMPNE   R4, R7\n"
+                "CMPNE   R4, R8\n"
+                "BNE     loc_FFC64834\n"
+                "BL      sub_FFC58868\n"
+                "STR     R4, [R5,#0x3C]\n"
+                "B       loc_FFC64B88\n"
+"loc_FFC64834:\n"
+                "BL      sub_FFD2EE80\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC64854\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFC5A95C\n"
+                "CMP     R0, #1\n"
+                "CMPNE   R4, R10\n"
+                "BEQ     loc_FFC64B88\n"
+"loc_FFC64854:\n"
+                "BL      sub_FFC1A624\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC6486C\n"
+                "CMP     R4, R7\n"
+                "CMPNE   R4, R8\n"
+                "BEQ     loc_FFC64BEC\n"
+"loc_FFC6486C:\n"
+                "BL      sub_FFC61528\n"
+                "LDR     R1, =0x9A2\n"
+                "CMP     R0, #1\n"
+                "ADD     R11, R1, #2\n"
+                "BNE     loc_FFC64894\n"
+                "CMP     R4, R7\n"
+                "CMPNE   R4, R1\n"
+                "CMPNE   R4, R8\n"
+                "CMPNE   R4, R11\n"
+                "BEQ     loc_FFC64BEC\n"
+"loc_FFC64894:\n"
+                "LDR     R12, =0x200A\n"
+                "MOV     R6, #1\n"
+                "CMP     R4, R12\n"
+                "BEQ     loc_FFC649BC\n"
+                "BGT     loc_FFC64918\n"
+                "LDR     R12, =0x907\n"
+                "CMP     R4, R12\n"
+                "MOVEQ   R1, #2\n"
+                "MOVEQ   R0, R10\n"
+                "BEQ     loc_FFC64B28\n"
+                "BGT     loc_FFC648F4\n"
+                "SUB     R12, R4, #0x800\n"
+                "LDR     R7, =0x2003\n"
+                "SUBS    R12, R12, #0x26\n"
+                "BEQ     loc_FFC64A00\n"
+                "SUB     R12, R4, #0x800\n"
+                "SUBS    R12, R12, #0x29\n"
+                "BEQ     loc_FFC64A44\n"
+                "CMP     R4, #0x860\n"
+                "BEQ     loc_FFC64A94\n"
+                "SUB     R12, R4, #0x800\n"
+                "SUBS    R12, R12, #0x61\n"
+                "BNE     loc_FFC64BA0\n"
+                "B       loc_FFC64B88\n"
+"loc_FFC648F4:\n"
+                "CMP     R4, R7\n"
+                "BEQ     loc_FFC64B20\n"
+                "CMP     R4, R1\n"
+                "BEQ     loc_FFC649BC\n"
+                "CMP     R4, R8\n"
+                "BEQ     loc_FFC64B20\n"
+                "CMP     R4, R11\n"
+                "BNE     loc_FFC64BA0\n"
+                "B       loc_FFC649BC\n"
+"loc_FFC64918:\n"
+                "LDR     R12, =0x3149\n"
+                "CMP     R4, R12\n"
+                "MOVEQ   R1, #0\n"
+                "MOVEQ   R0, #0x84\n"
+                "BEQ     loc_FFC64B98\n"
+                "BGT     loc_FFC64974\n"
+                "SUB     R12, R4, #0x2000\n"
+                "SUBS    R12, R12, #0x20\n"
+                "LDREQ   R1, [SP,#0x38-0x28]\n"
+                "MOVEQ   R0, #0x83\n"
+                "BEQ     loc_FFC64B98\n"
+                "SUB     R12, R4, #0x3000\n"
+                "SUBS    R12, R12, #7\n"
+                "BEQ     loc_FFC649D8\n"
+                "SUB     R12, R4, #0x3100\n"
+                "SUBS    R12, R12, #0x35\n"
+                "BEQ     loc_FFC649B0\n"
+                "SUB     R12, R4, #0x3000\n"
+                "SUBS    R12, R12, #0x148\n"
+                "BNE     loc_FFC64BA0\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, #0x86\n"
+                "B       loc_FFC64B98\n"
+"loc_FFC64974:\n"
+                "SUB     R12, R4, #0x3100\n"
+                "SUBS    R12, R12, #0x4A\n"
+                "BEQ     loc_FFC64B90\n"
+                "SUB     R12, R4, #0x4000\n"
+                "SUBS    R12, R12, #3\n"
+                "BEQ     loc_FFC64B4C\n"
+                "SUB     R12, R4, #0x4000\n"
+                "SUBS    R12, R12, #8\n"
+                "BEQ     loc_FFC64B30\n"
+                "SUB     R12, R4, #0x4000\n"
+                "SUBS    R12, R12, #0xF\n"
+                "BNE     loc_FFC64BA0\n"
+                "MOV     R0, #0x82\n"
+                "BL      sub_FFC659F4\n"
+                "B       loc_FFC64BEC\n"
+"loc_FFC649B0:\n"
+                "BL      sub_FFC65458\n"
+                "CMP     R0, #4\n"
+                "BNE     loc_FFC649C8\n"
+"loc_FFC649BC:\n"
+                "LDR     R1, [SP,#0x38-0x28]\n"
+                "MOV     R0, R4\n"
+                "B       loc_FFC64B18\n"
+"loc_FFC649C8:\n"
+                "LDR     R0, [R5,#0x1C]\n"
+                "CMP     R0, #0\n"
+                "BLNE    sub_FFC644F8\n"
+                "B       loc_FFC64BEC\n"
+"loc_FFC649D8:\n"
+                "STR     R6, [R5,#0x1C]\n"
+                "LDR     R0, [R5,#0x18]\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC649F4\n"
+"loc_FFC649E8:\n"
+                "BL      sub_FFC644F8\n"
+"loc_FFC649EC:\n"
+                "ADD     SP, SP, #0x14\n"
+                "LDMFD   SP!, {R4-R11,PC}\n"
+"loc_FFC649F4:\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFC646D8\n"
+                "B       loc_FFC64BEC\n"
+"loc_FFC64A00:\n"
+                "BL      sub_FFC61528\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC64A18\n"
+                "MOV     R0, R4\n"
+                "BL      sub_FFC61A98\n"
+                "B       loc_FFC64BEC\n"
+"loc_FFC64A18:\n"
+                "LDR     R0, [R5,#0x10]\n"
+                "LDR     R1, [R5,#0x14]\n"
+                "ORR     R0, R0, R1\n"
+                "LDR     R1, [R5,#0x1C]\n"
+                "ORRS    R0, R0, R1\n"
+                "BNE     loc_FFC64BEC\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, R7\n"
+                "BL      sub_FFC460D4\n"
+                "BL      sub_FFD1EEC0\n"
+                "B       loc_FFC64BEC\n"
+"loc_FFC64A44:\n"
+                "LDR     R0, [R5,#0x10]\n"
+                "LDR     R1, [R5,#0x14]\n"
+                "ORRS    R0, R0, R1\n"
+                "BNE     loc_FFC64BEC\n"
+                "BL      sub_FFC61AA4\n"
+                "CMP     R0, #0\n"
+                "LDREQ   R0, [R5,#0x1C]\n"
+                "CMPEQ   R0, #0\n"
+                "BNE     loc_FFC64BEC\n"
+                "BL      sub_FFC61528\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64BEC\n"
+                "BL      sub_FFD38844\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64BEC\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, R7\n"
+                "BL      sub_FFC460D4\n"
+                "BL      sub_FFD1A0EC\n"
+                "B       loc_FFC64BEC\n"
+"loc_FFC64A94:\n"
+                "LDR     R0, [R5,#0x44]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64AF0\n"
+                "BL      sub_FFC61F98\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64AB4\n"
+"loc_FFC64AAC:\n"
+                "MOV     R0, R6\n"
+                "B       loc_FFC649EC\n"
+"loc_FFC64AB4:\n"
+                "LDR     R0, [R5,#0x44]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64AF0\n"
+                "BL      sub_FFC65464\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64AAC\n"
+                "LDR     R0, [R5,#0x44]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64AF0\n"
+                "BL      sub_FFC1A54C\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64AAC\n"
+                "BL      sub_FFC1A554\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC64AAC\n"
+"loc_FFC64AF0:\n"
+                "MOV     R1, #1\n"
+                "MOV     R0, R8\n"
+                "STR     R6, [R5,#0x44]\n"
+                "BL      sub_FFC6460C_my\n"  //------>
+                "MOV     R6, R0\n"
+                "BL      sub_FFC65464\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC64AAC\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, R11\n"
+"loc_FFC64B18:\n"
+                "BL      sub_FFC650C4_my\n"  //------>
+                "B       loc_FFC649EC\n"
+"loc_FFC64B20:\n"
+                "MOV     R1, #1\n"
+                "MOV     R0, R4\n"
+"loc_FFC64B28:\n"
+                "BL      sub_FFC6460C_my\n"  //------>
+                "B       loc_FFC649EC\n"
+"loc_FFC64B30:\n"
+                "LDR     R0, [SP,#0x38-0x28]\n"
+                "BL      sub_FFC601F0\n"
+                "CMP     R0, #0\n"
+                "LDREQ   R1, [SP,#0x38-0x28]\n"
+                "MOVEQ   R0, R4\n"
+                "BLEQ    sub_FFC650C4_my\n"  //------>
+                "B       loc_FFC64B88\n"
+"loc_FFC64B4C:\n"
+                "LDR     R0, [R5,#0x3C]\n"
+                "CMN     R0, #1\n"
+                "BEQ     loc_FFC64B88\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC5794C\n"
+                "LDR     R0, [R5,#0x3C]\n"
+                "CMP     R0, R7\n"
+                "BNE     loc_FFC64B78\n"
+                "BL      sub_FFC1A54C\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC64B84\n"
+"loc_FFC64B78:\n"
+                "LDR     R0, [R5,#0x3C]\n"
+                "MOV     R1, #0\n"
+                "BL      sub_FFC5ABD8\n"
+"loc_FFC64B84:\n"
+                "STR     R9, [R5,#0x3C]\n"
+"loc_FFC64B88:\n"
+                "MOV     R0, #1\n"
+                "B       loc_FFC649EC\n"
+"loc_FFC64B90:\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, #0x85\n"
+"loc_FFC64B98:\n"
+                "BL      sub_FFC659B4\n"
+                "B       loc_FFC64BEC\n"
+"loc_FFC64BA0:\n"
+                "LDR     R12, =0x855\n"
+                "CMP     R4, R12\n"
+                "BEQ     loc_FFC64BDC\n"
+                "BGT     loc_FFC64BC8\n"
+                "SUB     R12, R4, #0x800\n"
+                "SUBS    R12, R12, #0x38\n"
+                "SUBNE   R12, R4, #0x800\n"
+                "SUBNES  R12, R12, #0x39\n"
+                "BNE     loc_FFC649BC\n"
+                "B       loc_FFC64BDC\n"
+"loc_FFC64BC8:\n"
+                "SUB     R12, R4, #0x800\n"
+                "SUBS    R12, R12, #0x56\n"
+                "SUBNE   R12, R4, #0x800\n"
+                "SUBNES  R12, R12, #0x5D\n"
+                "BNE     loc_FFC649BC\n"
+"loc_FFC64BDC:\n"
+                "LDR     R0, [R5,#0x10]\n"
+                "LDR     R1, [R5,#0x14]\n"
+                "ORRS    R0, R0, R1\n"
+                "BEQ     loc_FFC649BC\n"
+"loc_FFC64BEC:\n"
+                "MOV     R0, #0\n"
+                "B       loc_FFC649EC\n"
+ );
+} 
+//
+void __attribute__((naked,noinline)) sub_FFC6460C_my(){
+asm volatile(
+                "STMFD   SP!, {R4-R6,LR}\n"
+                "LDR     R6, =0x5B9C\n"
+                "MOV     R4, R0\n"
+                "LDR     R0, [R6,#0x1C]\n"
+                "MOV     R5, R1\n"
+                "CMP     R0, #0\n"
+                "LDRNE   R1, =0xFFC64744\n"
+                "BNE     loc_FFC646BC\n"
+                "BL      sub_FFC65464\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC64648\n"
+"loc_FFC64638:\n"
+                "MOV     R0, R4\n"
+                "LDMFD   SP!, {R4-R6,LR}\n"
+                "MOV     R1, #0\n"
+                "B       sub_FFC650C4_my\n" //------>
+"loc_FFC64648:\n"
+                "CMP     R5, #2\n"
+                "BNE     loc_FFC64660\n"
+                "BL      sub_FFC63BA0\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC646AC\n"
+                "B       loc_FFC64674\n"
+"loc_FFC64660:\n"
+                "CMP     R5, #1\n"
+                "BNE     loc_FFC646AC\n"
+                "BL      sub_FFC63BB8\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC646AC\n"
+"loc_FFC64674:\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC5794C\n"
+                "SUB     R12, R4, #0x900\n"
+                "SUBS    R12, R12, #0xA1\n"
+                "SUBNE   R12, R4, #0x900\n"
+                "SUBNES  R12, R12, #0xA3\n"
+                "SUBNE   R12, R4, #0x900\n"
+                "SUBNES  R12, R12, #0xA5\n"
+                "LDREQ   R0, =0xC507\n"
+                "MOVEQ   R1, #0\n"
+                "BLEQ    sub_FFC460D4\n"
+                "MOV     R0, #0\n"
+                "STR     R0, [R6,#0x44]\n"
+                "B       loc_FFC646C4\n"
+"loc_FFC646AC:\n"
+                "BL      sub_FFC645B0\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC646CC\n"
+                "LDR     R1, =0xFFC64754\n"
+"loc_FFC646BC:\n"
+                "MOV     R0, #0x60\n"
+                "BL      sub_FFC542D8\n"
+"loc_FFC646C4:\n"
+                "MOV     R0, #0\n"
+                "LDMFD   SP!, {R4-R6,PC}\n"
+"loc_FFC646CC:\n"
+                "MOV     R0, R5\n"
+                "BL      sub_FFD2DF68\n"
+                "B       loc_FFC64638\n"
+ );
+}
+
+void __attribute__((naked,noinline)) sub_FFC650C4_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4-R8,LR}\n"
+                "MOV     R7, R1\n"
+                "MOV     R4, R0\n"
+                "BL      sub_FFC654E0\n"
+                "LDR     R5, =0x5BE4\n"
+                "LDR     R3, =0x200A\n"
+                "LDR     R12, [R5]\n"
+                "LDR     R2, =0x4008\n"
+                "LDR     R6, =0x9A3\n"
+                "LDR     R0, =0x3007\n"
+                "LDR     R1, =0x1051\n"
+                "CMP     R12, #9\n"
+                "ADD     LR, R3, #0x15\n"
+                "ADDLS   PC, PC, R12,LSL#2\n"
+                "B       loc_FFC6541C\n"
+"loc_FFC65100:\n"
+                "B       loc_FFC65128\n"
+"loc_FFC65104:\n"
+                "B       loc_FFC65138\n"
+"loc_FFC65108:\n"
+                "B       loc_FFC65148\n"
+"loc_FFC6510C:\n"
+                "B       loc_FFC651BC\n"
+"loc_FFC65110:\n"
+                "B       loc_FFC651FC\n"
+"loc_FFC65114:\n"
+                "B       loc_FFC65284\n"
+"loc_FFC65118:\n"
+                "B       loc_FFC652B4\n"
+"loc_FFC6511C:\n"
+                "B       loc_FFC65364\n"
+"loc_FFC65120:\n"
+                "B       loc_FFC65328\n"
+"loc_FFC65124:\n"
+                "B       loc_FFC6538C\n"
+"loc_FFC65128:\n"
+                "MOV     R1, R7\n"
+                "MOV     R0, R4\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC65040\n"
+"loc_FFC65138:\n"
+                "MOV     R1, R7\n"
+                "MOV     R0, R4\n"
+                "LDMFD   SP!, {R4-R8,LR}\n"
+                "B       sub_FFC65660_my\n"  //------>
+"loc_FFC65148:\n"
+                "CMP     R4, R1\n"
+                "BEQ     loc_FFC651AC\n"
+                "SUB     R12, R4, #0x2000\n"
+                "SUBS    R12, R12, #6\n"
+                "BEQ     loc_FFC65170\n"
+                "CMP     R4, R0\n"
+                "BEQ     loc_FFC651B4\n"
+                "SUB     R12, R4, #0x3100\n"
+                "SUBS    R12, R12, #0x4B\n"
+                "BNE     loc_FFC6541C\n"
+"loc_FFC65170:\n"
+                "BL      sub_FFC6458C\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC654C8\n"
+                "LDR     R0, [R5,#8]\n"
+                "CMP     R0, #0\n"
+                "MOVNE   R1, #0\n"
+                "MOVNE   R0, R6\n"
+                "BNE     loc_FFC651A4\n"
+                "LDR     R0, [R5,#4]\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC653CC\n"
+                "LDR     R0, =0x9A1\n"
+                "MOV     R1, #0\n"
+"loc_FFC651A4:\n"
+                "BL      sub_FFC65040\n"
+                "B       loc_FFC653CC\n"
+"loc_FFC651AC:\n"
+                "BL      sub_FFC655D4\n"
+                "B       loc_FFC653CC\n"
+"loc_FFC651B4:\n"
+                "BL      sub_FFC655EC\n"
+                "B       loc_FFC653CC\n"
+"loc_FFC651BC:\n"
+                "SUB     R12, R4, #0x900\n"
+                "SUBS    R12, R12, #0xA2\n"
+                "BEQ     loc_FFC651EC\n"
+                "CMP     R4, R6\n"
+                "BEQ     loc_FFC651E4\n"
+                "CMP     R4, R1\n"
+                "BEQ     loc_FFC651F4\n"
+                "CMP     R4, R0\n"
+                "BLEQ    sub_FFC655EC\n"
+                "B       loc_FFC6541C\n"
+"loc_FFC651E4:\n"
+                "BL      sub_FFC64FE4_my\n"  //------>
+                "B       loc_FFC6541C\n"
+"loc_FFC651EC:\n"
+                "BL      sub_FFC655B0\n"
+                "B       loc_FFC6541C\n"
+"loc_FFC651F4:\n"
+                "BL      sub_FFC655D4\n"
+                "B       loc_FFC6541C\n"
+"loc_FFC651FC:\n"
+                "CMP     R4, LR\n"
+                "BEQ     loc_FFC65258\n"
+                "BGT     loc_FFC65224\n"
+                "CMP     R4, R6\n"
+                "BEQ     loc_FFC65240\n"
+                "CMP     R4, R1\n"
+                "BEQ     loc_FFC65270\n"
+"loc_FFC65218:\n"
+                "CMP     R4, R3\n"
+                "BNE     loc_FFC6541C\n"
+                "B       loc_FFC65234\n"
+"loc_FFC65224:\n"
+                "CMP     R4, R0\n"
+                "BEQ     loc_FFC65264\n"
+"loc_FFC6522C:\n"
+                "CMP     R4, R2\n"
+                "BNE     loc_FFC6541C\n"
+"loc_FFC65234:\n"
+                "BL      sub_FFC6563C\n"
+                "BL      sub_FFC655B0\n"
+                "B       loc_FFC653CC\n"
+"loc_FFC65240:\n"
+                "BL      sub_FFC16B94\n"
+                "MOV     R0, #5\n"
+                "BL      sub_FFC654C8\n"
+                "MOV     R0, #0\n"
+                "STR     R0, [R5,#0xC]\n"
+                "B       loc_FFC653CC\n"
+"loc_FFC65258:\n"
+                "MOV     R0, #5\n"
+                "BL      sub_FFC654C8\n"
+                "B       loc_FFC652A8\n"
+"loc_FFC65264:\n"
+                "BL      sub_FFC16B94\n"
+                "BL      sub_FFC6563C\n"
+                "B       loc_FFC6535C\n"
+"loc_FFC65270:\n"
+                "BL      sub_FFC16B94\n"
+                "BL      sub_FFC6563C\n"
+                "B       loc_FFC652BC\n"
+"loc_FFC6527C:\n"
+                "BL      sub_FFC654C8\n"
+                "B       loc_FFC653CC\n"
+"loc_FFC65284:\n"
+                "CMP     R4, LR\n"
+                "BEQ     loc_FFC652A8\n"
+                "BGT     loc_FFC6529C\n"
+                "CMP     R4, R1\n"
+                "BNE     loc_FFC65218\n"
+                "B       loc_FFC652BC\n"
+"loc_FFC6529C:\n"
+                "CMP     R4, R0\n"
+                "BNE     loc_FFC6522C\n"
+                "B       loc_FFC6535C\n"
+"loc_FFC652A8:\n"
+                "MOV     R0, R7\n"
+                "BL      sub_FFC65608\n"
+                "B       loc_FFC653CC\n"
+"loc_FFC652B4:\n"
+                "CMP     R4, R1\n"
+                "BNE     loc_FFC6541C\n"
+"loc_FFC652BC:\n"
+                "MOV     R0, #8\n"
+                "B       loc_FFC6527C\n"
+"loc_FFC65328:\n"
+                "CMP     R4, R0\n"
+                "BEQ     loc_FFC6535C\n"
+                "BGT     loc_FFC65348\n"
+                "CMP     R4, R3\n"
+                "BEQ     loc_FFC651AC\n"
+                "CMP     R4, LR\n"
+                "BEQ     loc_FFC652A8\n"
+                "B       loc_FFC6541C\n"
+"loc_FFC65348:\n"
+                "CMP     R4, R2\n"
+                "SUBNE   R12, R4, #0x4000\n"
+                "SUBNES  R12, R12, #0xE\n"
+                "BEQ     loc_FFC651AC\n"
+                "B       loc_FFC6541C\n"
+"loc_FFC6535C:\n"
+                "MOV     R0, #7\n"
+                "B       loc_FFC6527C\n"
+"loc_FFC65364:\n"
+                "CMP     R4, R3\n"
+                "BEQ     loc_FFC6537C\n"
+                "CMP     R4, LR\n"
+                "BEQ     loc_FFC652A8\n"
+                "CMP     R4, R2\n"
+                "BNE     loc_FFC6541C\n"
+"loc_FFC6537C:\n"
+                "BL      sub_FFC655B0\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC646D8\n"
+                "B       loc_FFC653CC\n"
+"loc_FFC6538C:\n"
+                "SUB     R12, R4, #0x800\n"
+                "SUBS    R12, R12, #0x4A\n"
+                "BEQ     loc_FFC653D4\n"
+                "CMP     R4, R1\n"
+                "BEQ     loc_FFC6540C\n"
+                "CMP     R4, R0\n"
+                "BEQ     loc_FFC653FC\n"
+                "SUB     R12, R4, #0x3100\n"
+                "SUBS    R12, R12, #0x2A\n"
+                "BNE     loc_FFC6541C\n"
+                "BL      sub_FFC65568\n"
+                "LDR     R0, [R5,#0x14]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC653CC\n"
+                "BL      sub_FFC65584_my\n"  //----------------> 
+                "BL      sub_FFD2EE8C\n"
+"loc_FFC653CC:\n"
+                "MOV     R0, #0\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+"loc_FFC653D4:\n"
+                "BL      sub_FFC65568\n"
+                "LDR     R0, =0x8007\n"
+                "MOV     R1, #0\n"
+                "BL      sub_FFC5BEAC\n"
+                "BL      sub_FFD2DF1C\n"
+                "BL      sub_FFC655B0\n"
+                "BL      sub_FFD2EE8C\n"
+                "BL      sub_FFC6458C\n"
+                "MOV     R0, #0\n"
+                "B       loc_FFC6527C\n"
+"loc_FFC653FC:\n"
+                "BL      sub_FFC65568\n"
+                "BL      sub_FFD2DF1C\n"
+                "BL      sub_FFD2EE8C\n"
+                "B       loc_FFC651B4\n"
+"loc_FFC6540C:\n"
+                "BL      sub_FFC65568\n"
+                "BL      sub_FFD2DF1C\n"
+                "BL      sub_FFD2EE8C\n"
+                "B       loc_FFC651AC\n"
+"loc_FFC6541C:\n"
+                "MOV     R0, #1\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+				".ltorg\n"   
+ );
+} 
+
+void __attribute__((naked,noinline)) sub_FFC65660_my(){ 
+ asm volatile(
+                "LDR     R3, =0x5BE4\n"
+                "LDR     R12, =0x2006\n"
+                "STMFD   SP!, {R4,LR}\n"
+                "LDR     R1, [R3,#0xC]\n"
+                "LDR     R2, [R3,#0x14]\n"
+                "CMP     R0, R12\n"
+                "BEQ     loc_FFC656D4\n"
+                "BGT     loc_FFC656A0\n"
+                "SUB     R12, R0, #0x900\n"
+                "SUBS    R12, R12, #0xA2\n"
+                "BEQ     loc_FFC656F8\n"
+                "SUB     R12, R0, #0x1000\n"
+                "SUBS    R12, R12, #0x51\n"
+                "BNE     loc_FFC6571C\n"
+                "BL      sub_FFC655D4\n"
+                "B       loc_FFC65714\n"
+"loc_FFC656A0:\n"
+                "SUB     R12, R0, #0x3000\n"
+                "SUBS    R12, R12, #7\n"
+                "BEQ     loc_FFC65710\n"
+                "SUB     R12, R0, #0x3100\n"
+                "SUBS    R12, R12, #0x4B\n"
+                "BNE     loc_FFC6571C\n"
+                "CMP     R2, #0\n"
+                "BNE     loc_FFC65714\n"
+                "LDR     R0, [R3,#8]\n"
+                "ORRS    R0, R0, R1\n"
+                "BEQ     loc_FFC656E0\n"
+                "BL      sub_FFC64FE4_my\n"  //------>
+                "B       loc_FFC65714\n"
+"loc_FFC656D4:\n"
+                "CMP     R2, #0\n"
+                "BLEQ    sub_FFC63BD8\n"
+                "B       loc_FFC65714\n"
+"loc_FFC656E0:\n"
+                "LDR     R0, [R3,#4]\n"
+                "CMP     R0, #0\n"
+                "MOVNE   R0, #3\n"
+                "BNE     loc_FFC65708\n"
+                "BL      sub_FFC655B0\n"
+                "B       loc_FFC65714\n"
+"loc_FFC656F8:\n"
+                "CMP     R1, #0\n"
+                "BNE     loc_FFC65714\n"
+                "BL      sub_FFC1674C\n"
+                "MOV     R0, #2\n"
+"loc_FFC65708:\n"
+                "BL      sub_FFC654C8\n"
+                "B       loc_FFC65714\n"
+"loc_FFC65710:\n"
+                "BL      sub_FFC655EC\n"
+"loc_FFC65714:\n"
+                "MOV     R0, #0\n"
+                "LDMFD   SP!, {R4,PC}\n"
+"loc_FFC6571C:\n"
+                "MOV     R0, #1\n"
+                "LDMFD   SP!, {R4,PC}\n"
+ );
+} 
+
+void __attribute__((naked,noinline)) sub_FFC64FE4_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4,LR}\n"
+                "LDR     R1, =0xFFC652C4\n"
+                "MOV     R0, #0x60\n"
+                "BL      sub_FFC542D8\n"
+                "LDR     R4, =0x5BE4\n"
+                "LDR     R0, [R4,#0x10]\n"
+                "CMP     R0, #0\n"
+                "LDMEQFD SP!, {R4,LR}\n"
+                "BEQ     sub_FFC65584_my\n"  //------------->
+                "LDR     R1, =0xFFC652E0\n"
+                "MOV     R0, #0x60\n"
+                "BL      sub_FFC542D8\n"
+                "BL      sub_FFD2EEB8\n"
+                "LDR     R0, [R4,#0x18]\n"
+                "CMP     R0, #1\n"
+                "MOVNE   R0, #1\n"
+                "STRNE   R0, [R4,#0x18]\n"
+                "BLNE    sub_FFC5B568\n"
+                "MOV     R0, #9\n"
+                "BL      sub_FFC654C8\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "B       sub_FFD2DDD8\n"
+ );
+} 
+
+void __attribute__((naked,noinline)) sub_FFC65584_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4,LR}\n"
+                "LDR     R1, =0xFFC6573C\n"
+                "MOV     R0, #0x60\n"
+                "BL      sub_FFC542D8\n"
+                "LDR     R1, =0x5BE4\n"
+                "MOV     R0, #0\n"
+                "STR     R0, [R1,#0xC]\n"
+                "MOV     R0, #4\n"
+                "BL      sub_FFC654C8\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "B       sub_FFC64C94_my\n" //------------->
+ );
+} 
+
+//
+
+void __attribute__((naked,noinline)) sub_FFC64C94_my(){ 
+ asm volatile(
+                "LDR     R0, =0x5B9C\n"
+                "STMFD   SP!, {R3,LR}\n"
+                "LDR     R1, [R0,#0x40]\n"
+                "CMP     R1, #1\n"
+                "MOVNE   R1, #1\n"
+                "STRNE   R1, [R0,#0x40]\n"
+                "BLNE    sub_FFC5B568\n"
+                "MOV     R1, #0\n"
+                "MOV     R0, #0x80\n"
+                "BL      sub_FFC659B4\n"
+                "MOV     R2, #2\n"
+                "MOV     R1, SP\n"
+                "MOV     R0, #0x6B\n"
+                "BL      sub_FFC56F08\n"
+                "MOV     R2, #2\n"
+                "MOV     R1, SP\n"
+                "MOV     R0, #0xA3\n"
+                "BL      sub_FFC56E08\n"
+                "BL      sub_FFC46194\n"
+                "BL      sub_FFC63E9C\n"
+                "BL      sub_FFC16B64_my\n"  //------>
+                "BL      sub_FFC64544\n"
+                "LDMFD   SP!, {R12,PC}\n"
+ );
+} 
+
+void __attribute__((naked,noinline)) sub_FFC16B64_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4,LR}\n"
+                "MOV     R4, R0\n"
+                "MOV     R0, #0x20\n"
+                "LDR     R1, =0xFFC16C84\n"
+                "BL      sub_FFC542D8\n"
+                "BL      sub_FFC16FB8\n"
+                "CMP     R0, #0\n"
+                "LDMNEFD SP!, {R4,PC}\n"
+                "BL      sub_FFC477D0\n"
+                "MOV     R0, R4\n"
+                "LDMFD   SP!, {R4,LR}\n"
+                "B       sub_FFC498C8_my\n"  //------>
+ );
+} 
+
+void __attribute__((naked,noinline)) sub_FFC498C8_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4-R8,LR}\n"
+                "MOV     R8, R0\n"
+                "MOV     R0, #0x41\n"
+                "SUB     SP, SP, #0x38\n"
+                "MOV     R5, #0\n"
+                "STR     R0, [SP,#0x50-0x1C]\n"
+                "BL      sub_FFC49898\n"
+                "CMP     R0, #0\n"
+                "LDRNE   R1, =0x163\n"
+                "BNE     loc_FFC49A74\n"
+                "LDR     R4, =0x530C\n"
+                "MOV     R1, #0x5E\n"
+                "LDR     R0, [R4,#8]\n"
+                "BL      sub_FFC173EC\n"
+                "BL      sub_FFC57098\n"
+                "STR     R0, [R4,#4]\n"
+                "MOV     R0, #0\n"
+                "BL      sub_FFC50EDC\n"
+                "STR     R0, [SP,#0x50-0x28]\n"
+                "ADD     R0, SP, #0x50-0x28\n"
+                "MOV     R1, SP\n"
+                "BL      sub_FFC51028\n"
+                "MOV     R0, SP\n"
+                "BL      sub_FFC50F10\n"
+                "STR     R0, [SP,#0x50-0x24]\n"
+                "LDR     R0, [R4,#4]\n"
+                "MOV     R3, #4\n"
+                "ADD     R2, SP, #0x50-0x24\n"
+                "MOV     R1, #0x34\n"
+                "BL      sub_FFC573AC\n"
+                "LDR     R7, [SP,#0x50-0x24]\n"
+                "BL      sub_FFC49DB8\n"
+                "MOV     R6, #0\n"
+                "ADD     R1, SP, #0x50-0x28\n"
+                "ADD     R0, SP, #0x50-0x24\n"
+                "STR     R6, [SP,#0x50-0x24]\n"
+                "STR     R6, [SP,#0x50-0x28]\n"
+                "BL      sub_FFC1F6F8\n"
+                "LDR     R0, [R4,#4]\n"
+                "MOV     R3, #2\n"
+                "ADD     R2, SP, #0x50-0x24\n"
+                "MOV     R1, #0x2F\n"
+                "BL      sub_FFC573AC\n"
+                "LDR     R0, [R4,#4]\n"
+                "MOV     R3, #2\n"
+                "ADD     R2, SP, #0x50-0x28\n"
+                "MOV     R1, #0x2D\n"
+                "BL      sub_FFC573AC\n"
+                "ADD     R1, SP, #0x50-0x28\n"
+                "ADD     R0, SP, #0x50-0x24\n"
+                "BL      sub_FFC23058\n"
+                "LDR     R0, [R4,#4]\n"
+                "MOV     R3, #2\n"
+                "ADD     R2, SP, #0x50-0x24\n"
+                "MOV     R1, #0x30\n"
+                "BL      sub_FFC573AC\n"
+                "ADD     R1, SP, #0x50-0x28\n"
+                "ADD     R0, SP, #0x50-0x24\n"
+                "BL      sub_FFC1FED0\n"
+                "LDR     R0, [R4,#4]\n"
+                "MOV     R3, #2\n"
+                "ADD     R2, SP, #0x50-0x28\n"
+                "MOV     R1, #0x2E\n"
+                "BL      sub_FFC573AC\n"
+                "LDR     R0, [R4,#4]\n"
+                "MOV     R3, #2\n"
+                "ADD     R2, SP, #0x50-0x24\n"
+                "MOV     R1, #0xB8\n"
+                "BL      sub_FFC57458\n"
+                "TST     R0, #1\n"
+                "LDRNE   R1, =0x142\n"
+                "LDRNE   R0, =0xFFC49CEC\n"
+                "BLNE    sub_FFC0BDB8\n"
+                "LDRH    R0, [SP,#0x50-0x24]\n"
+                "MOV     R3, #4\n"
+                "ADD     R2, SP, #0x50-0x28\n"
+                "CMP     R0, #0\n"
+                "MOVNE   R0, #1\n"
+                "STR     R0, [SP,#0x50-0x28]\n"
+                "LDR     R0, [R4,#4]\n"
+                "MOV     R1, #0x92\n"
+                "BL      sub_FFC573AC\n"
+                "MOV     R2, #1\n"
+                "ADD     R1, SP, #0x50-0x1C\n"
+                "MOV     R0, #0xFA\n"
+                "BL      sub_FFC56F08\n"
+                "TST     R0, #1\n"
+                "LDRNE   R1, =0x17A\n"
+                "LDRNE   R0, =0xFFC49CEC\n"
+                "BLNE    sub_FFC0BDB8\n"
+                "LDRB    R0, [SP,#0x50-0x1C]\n"
+                "MOV     R3, R8\n"
+                "MOV     R2, #0x14\n"
+                "AND     R1, R0, #0xFF\n"
+                "ADD     R0, SP, #0x50-0x20\n"
+                "STR     R7, [SP,#0x50-0x50]\n"
+                "BL      sub_FFCE9634\n"
+                "TST     R0, #1\n"
+                "LDRNE   R1, =0x17E\n"
+                "BNE     loc_FFC49A74\n"
+                "LDR     R0, =0x1966C\n"
+                "LDR     R1, [SP,#0x50-0x20]\n"
+                "MOV     R2, #0x10\n"
+                "BL      sub_FFCDC4D8\n"
+                "TST     R0, #1\n"
+                "BEQ     loc_FFC49A84\n"
+                "LDR     R1, =0x186\n"
+"loc_FFC49A74:\n"
+                "LDR     R0, =0xFFC49CEC\n"
+                "BL      sub_FFC0BDB8\n"
+"loc_FFC49A7C:\n"
+                "ADD     SP, SP, #0x38\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+"loc_FFC49A84:\n"
+                "LDR     R0, [R4,#4]\n"
+                "MOV     R3, #4\n"
+                "ADD     R2, SP, #0x50-0x20\n"
+                "MOV     R1, #0x2B\n"
+                "BL      sub_FFC573AC\n"
+                "BL      sub_FFC65B98\n"
+                "LDRSB   R1, [SP,#0x50-0x1C]\n"
+                "CMP     R0, R1\n"
+                "MOVEQ   R7, #0\n"
+                "BEQ     loc_FFC49AD8\n"
+                "LDR     R5, =0x1966C\n"
+                "MOV     R0, R5\n"
+                "BL      sub_FFC65D14\n"
+                "MOV     R8, R0\n"
+                "BL      sub_FFC94698\n"
+                "CMP     R8, R0\n"
+                "MOV     R7, R0\n"
+                "LDRLS   R1, =0x193\n"
+                "LDRLS   R0, =0xFFC49CEC\n"
+                "BLLS    sub_FFC0BDB8\n"
+                "SUB     R7, R8, R7\n"
+"loc_FFC49AD8:\n"
+                "BL      sub_FFC454E0_my\n"  //------>
+                "LDR     R0, =0x19690\n"
+                "LDRH    R3, [R0,#0x46]\n"
+                "LDRH    R2, [R0,#0x44]\n"
+                "LDR     R1, [R0,#0x40]\n"
+                "LDR     R0, [R0,#0x3C]\n"
+                "BL      sub_FFC44560\n"
+                "MOV     R3, #0\n"
+                "LDR     R2, =0xFFC49860\n"
+                "MOV     R1, #0\n"
+                "LDR     R0, =0xFFC49874\n"
+                "ADD     R8, SP, #0x50-0x44\n"
+                "STMIA   R8, {R0-R3}\n"
+                "LDR     R2, =0xFFC49884\n"
+                "LDR     R1, =0xFFC49870\n"
+                "STMEA   SP, {R1-R3}\n"
+                "LDR     R1, [R4,#4]\n"
+                "MOV     R3, R6\n"
+                "MOV     R2, R7\n"
+                "MOV     R0, R5\n"
+                "BL      sub_FFC448BC\n"
+                "LDR     R0, [R4,#8]\n"
+                "MOV     R1, #0x20\n"
+                "BL      sub_FFC173B8\n"
+                "B       loc_FFC49A7C\n"
+ );
+} 
+
+
+void __attribute__((naked,noinline)) sub_FFC454E0_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R3-R9,LR}\n"
+                "LDR     R5, =0x51A0\n"
+                "MOV     R6, #0\n"
+                "STR     R6, [R5,#0x20]\n"
+                "LDR     R0, [R5,#4]\n"
+                "LDR     R8, =0x2710\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC45598\n"
+                "MOV     R0, #1\n"
+                "STR     R0, [R5,#4]\n"
+                "MOV     R0, #0\n"
+                "MOV     R1, #0\n"
+                "BL      sub_FFC0BC34\n"
+                "STR     R0, [R5,#0x10]\n"
+                "MOV     R0, #0\n"
+                "MOV     R1, #0\n"
+                "BL      sub_FFC0BC34\n"
+                "STR     R0, [R5,#0x14]\n"
+                "MOV     R0, #0\n"
+                "MOV     R1, #0xA\n"
+                "BL      sub_FFC0BBEC\n"
+                "STR     R0, [R5,#0x18]\n"
+                "MOV     R0, #0\n"
+                "MOV     R1, #0xA\n"
+                "BL      sub_FFC0BBEC\n"
+                "LDR     R7, =0x19280\n"
+                "MOV     R4, #9\n"
+                "ADD     R9, R4, #0x2D4\n"
+                "STR     R0, [R5,#0x1C]\n"
+"loc_FFC45554:\n"
+                "RSB     R0, R4, R4,LSL#3\n"
+                "STR     R6, [R7,R0,LSL#2]\n"
+                "ADD     R1, R7, R0,LSL#2\n"
+                "STR     R9, [SP,#0x20-0x20]\n"
+                "LDR     R0, [R5,#0x1C]\n"
+                "LDR     R3, =0xFFC4485C\n"
+                "MOV     R2, R8\n"
+                "BL      sub_FFC0BCF8\n"
+                "SUBS    R4, R4, #1\n"
+                "BPL     loc_FFC45554\n"
+                "MOV     R3, #0\n"
+                "STR     R3, [SP]\n"
+                "LDR     R3, =MovieRecord_Task_my\n"  //------>
+                "MOV     R2, #0x1000\n"
+                "MOV     R1, #0x14\n"
+                "LDR     R0, =0xFFC456E8\n"
+                "BL      sub_FFC0BBB8\n"
+"loc_FFC45598:\n"
+                "BL      sub_FFD07C28\n"
+                "BL      sub_FFC455FC\n"
+                "MOV     R1, R0\n"
+                "MOV     R0, #0xB\n"
+                "ADD     R3, R0, #0x2DC\n"
+                "STR     R0, [R1]\n"
+                "STR     R3, [SP,#0x20-0x20]\n"
+                "LDR     R3, =0xFFC4485C\n"
+                "MOV     R2, R8\n"
+                "LDR     R0, [R5,#0x18]\n"
+                "BL      sub_FFC0BCF8\n"
+                "LDMFD   SP!, {R3-R9,PC}\n"
+ );
+} 
+
+void __attribute__((naked,noinline)) MovieRecord_Task_my(){ //0xFFC453D8
+ asm volatile(
+                "STMFD   SP!, {R2-R8,LR}\n"
+                "LDR     R8, =0x32B\n"
+                "LDR     R7, =0x2710\n"
+                "LDR     R4, =0x51A0\n"
+                "MOV     R6, #0\n"
+                "MOV     R5, #1\n"
+"loc_FFC453F0:\n"
+                "LDR     R0, [R4,#0x18]\n"
+                "MOV     R2, #0\n"
+                "ADD     R1, SP, #0x20-0x1C\n"
+                "BL      sub_FFC1763C\n"
+                "LDR     R0, [R4,#0x20]\n"
+                "CMP     R0, #0\n"
+                "BNE     loc_FFC454C0\n"
+                "LDR     R0, [SP,#0x20-0x1C]\n"
+                "LDR     R1, [R0]\n"
+                "SUB     R1, R1, #2\n"
+                "CMP     R1, #9\n"
+                "ADDLS   PC, PC, R1,LSL#2\n"
+                "B       loc_FFC454C0\n"
+"loc_FFC45424:\n"
+                "B       loc_FFC45474\n"
+"loc_FFC45428:\n"
+                "B       loc_FFC45494\n"
+"loc_FFC4542C:\n"
+                "B       loc_FFC454A4\n"
+"loc_FFC45430:\n"
+                "B       loc_FFC454AC\n"
+"loc_FFC45434:\n"
+                "B       loc_FFC4547C\n"
+"loc_FFC45438:\n"
+                "B       loc_FFC454B4\n"
+"loc_FFC4543C:\n"
+                "B       loc_FFC45484\n"
+"loc_FFC45440:\n"
+                "B       loc_FFC454C0\n"
+"loc_FFC45444:\n"
+                "B       loc_FFC454BC\n"
+"loc_FFC45448:\n"
+                "B       loc_FFC4544C\n"
+"loc_FFC4544C:\n"
+                "LDR     R0, =0xFFC450D4\n"
+                "STR     R6, [R4,#0x34]\n"
+                "STR     R0, [R4,#0xA0]\n"
+                "LDR     R0, =0xFFC44B4C\n"
+                "LDR     R2, =0xFFC44A68\n"
+                "LDR     R1, =0x193A8\n"
+                "STR     R6, [R4,#0x24]\n"
+                "BL      sub_FFCA1258\n"
+                "STR     R5, [R4,#0x38]\n"
+                "B       loc_FFC454C0\n"
+"loc_FFC45474:\n"
+				"BL      unlock_optical_zoom\n" //  +
+                "BL      sub_FFC451CC\n"
+                "B       loc_FFC454C0\n"
+"loc_FFC4547C:\n"
+                "BL      sub_FFC44ED4_my\n"  //------------------->
+                "B       loc_FFC454C0\n"
+"loc_FFC45484:\n"
+                "LDR     R1, [R0,#0x10]\n"
+                "LDR     R0, [R0,#4]\n"
+                "BL      sub_FFD08834\n"
+                "B       loc_FFC454C0\n"
+"loc_FFC45494:\n"
+                "LDR     R0, [R4,#0x38]\n"
+                "CMP     R0, #5\n"
+                "STRNE   R5, [R4,#0x28]\n"
+                "B       loc_FFC454C0\n"
+"loc_FFC454A4:\n"
+                "BL      sub_FFC44CDC\n"
+                "B       loc_FFC454C0\n"
+"loc_FFC454AC:\n"
+                "BL      sub_FFC44B98\n"
+                "B       loc_FFC454C0\n"
+"loc_FFC454B4:\n"
+                "BL      sub_FFC449F4\n"
+                "B       loc_FFC454C0\n"
+"loc_FFC454BC:\n"
+                "BL      sub_FFC45628\n"
+"loc_FFC454C0:\n"
+                "LDR     R1, [SP,#0x20-0x1C]\n"
+                "LDR     R3, =0xFFC4485C\n"
+                "STR     R6, [R1]\n"
+                "STR     R8, [SP,#0x20-0x20]\n"
+                "LDR     R0, [R4,#0x1C]\n"
+                "MOV     R2, R7\n"
+                "BL      sub_FFC0BCF8\n"
+                "B       loc_FFC453F0\n"
+ );
+} 
+
+void __attribute__((naked,noinline)) sub_FFC44ED4_my(){ 
+ asm volatile(                                   	
+                "STMFD   SP!, {R4-R8,LR}\n"
+                "SUB     SP, SP, #0x40\n"
+                "MOV     R6, #0\n"
+                "LDR     R5, =0x51A0\n"
+                "MOV     R4, R0\n"
+                "STR     R6, [SP,#0x58-0x28]\n"
+                "STR     R6, [SP,#0x58-0x30]\n"
+                "LDR     R0, [R5,#0x38]\n"
+                "MOV     R8, #4\n"
+                "CMP     R0, #3\n"
+                "STREQ   R8, [R5,#0x38]\n"
+                "LDR     R0, [R5,#0xA0]\n"
+                //"BLX     R0\n"
+				".long   0xE12FFF30\n"
+                "LDR     R0, [R5,#0x38]\n"
+                "CMP     R0, #4\n"
+                "BNE     loc_FFC44FAC\n"
+                "ADD     R3, SP, #0x58-0x30\n"
+                "ADD     R2, SP, #0x58-0x30+4\n"
+                "ADD     R1, SP, #0x58-0x28\n"
+                "ADD     R0, SP, #0x58-0x24\n"
+                "BL      sub_FFD089C8\n"
+                "CMP     R0, #0\n"
+                "MOV     R7, #1\n"
+                "BNE     loc_FFC44F50\n"
+                "LDR     R1, [R5,#0x28]\n"
+                "CMP     R1, #1\n"
+                "BNE     loc_FFC44FB4\n"
+                "LDR     R1, [R5,#0x50]\n"
+                "LDR     R2, [R5,#0x3C]\n"
+                "CMP     R1, R2\n"
+                "BCC     loc_FFC44FB4\n"
+"loc_FFC44F50:\n"
+                "CMP     R0, #0x80000001\n"
+                "STREQ   R8, [R5,#0x54]\n"
+                "BEQ     loc_FFC44F88\n"
+                "CMP     R0, #0x80000003\n"
+                "STREQ   R7, [R5,#0x54]\n"
+                "BEQ     loc_FFC44F88\n"
+                "CMP     R0, #0x80000005\n"
+                "MOVEQ   R0, #2\n"
+                "BEQ     loc_FFC44F84\n"
+                "CMP     R0, #0x80000007\n"
+                "STRNE   R6, [R5,#0x54]\n"
+                "BNE     loc_FFC44F88\n"
+                "MOV     R0, #3\n"
+"loc_FFC44F84:\n"
+                "STR     R0, [R5,#0x54]\n"
+"loc_FFC44F88:\n"
+                "LDR     R0, =0x193D8\n"
+                "LDR     R0, [R0,#8]\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC44FA0\n"
+                "BL      sub_FFC31B08\n"
+                "B       loc_FFC44FA4\n"
+"loc_FFC44FA0:\n"
+                "BL      sub_FFC449F4\n"
+"loc_FFC44FA4:\n"
+                "MOV     R0, #5\n"
+                "STR     R0, [R5,#0x38]\n"
+"loc_FFC44FAC:\n"
+                "ADD     SP, SP, #0x40\n"
+                "LDMFD   SP!, {R4-R8,PC}\n"
+"loc_FFC44FB4:\n"
+                "LDR     LR, [SP,#0x58-0x28]\n"
+                "CMP     LR, #0\n"
+                "BEQ     loc_FFC4507C\n"
+                "STR     R7, [R5,#0x2C]\n"
+                "LDR     R0, [R5,#0x6C]\n"
+                "LDR     R1, [R4,#0x14]\n"
+                "LDR     R2, [R4,#0x18]\n"
+                "LDR     R12, [R4,#0xC]\n"
+                "ADD     R3, SP, #0x58-0x20\n"
+                "ADD     R8, SP, #0x58-0x44\n"
+                "STMIA   R8, {R0-R3}\n"
+                "LDR     R3, [R5,#0x58]\n"
+                "ADD     R2, SP, #0x58-0x1C\n"
+                "ADD     R8, SP, #0x58-0x50\n"
+                //"LDRD    R0, [SP,#0x58-0x30]\n"
+				".long   0xE1CD02D8\n"
+                "STMIA   R8, {R0,R2,R3}\n"
+                "STR     R1, [SP,#0x58-0x54]\n"
+                "STR     LR, [SP,#0x58-0x58]\n"
+                "LDMIB   R4, {R0,R1}\n"
+                "LDR     R3, [SP,#0x58-0x24]\n"
+                "MOV     R2, R12\n"
+                "BL      sub_FFCC7D84\n"
+                "LDR     R0, [R5,#0x10]\n"
+                "MOV     R1, #0x3E8\n"
+                "BL      sub_FFC0B774\n"
+                "CMP     R0, #9\n"
+                "BNE     loc_FFC45030\n"
+                "BL      sub_FFD08FA4\n"
+                "MOV     R0, #0x90000\n"
+                "STR     R7, [R5,#0x38]\n"
+                "B       loc_FFC45048\n"
+"loc_FFC45030:\n"
+                "LDR     R0, [SP,#0x58-0x20]\n"
+                "CMP     R0, #0\n"
+                "BEQ     loc_FFC45050\n"
+                "BL      sub_FFD08FA4\n"
+                "MOV     R0, #0xA0000\n"
+                "STR     R7, [R5,#0x38]\n"
+"loc_FFC45048:\n"
+                "BL      sub_FFC5B804\n"
+                "B       loc_FFC44FAC\n"
+"loc_FFC45050:\n"
+                "BL      sub_FFCC7E48\n"
+                "LDR     R0, [SP,#0x58-0x24]\n"
+                "LDR     R1, [SP,#0x58-0x1C]\n"
+                "BL      sub_FFD08D4C\n"
+                "LDR     R0, [R5,#0x4C]\n"
+                "LDR     R1, =0x520C\n"
+                "ADD     R0, R0, #1\n"
+                "STR     R0, [R5,#0x4C]\n"
+                "LDR     R0, [SP,#0x58-0x1C]\n"
+                "MOV     R2, #0\n"
+                "BL      sub_FFD06BDC_my\n"
+"loc_FFC4507C:\n"
+                "LDR     R0, [R5,#0x50]\n"
+                "ADD     R0, R0, #1\n"
+                "STR     R0, [R5,#0x50]\n"
+                "LDR     R1, [R5,#0x78]\n"
+                "MUL     R0, R1, R0\n"
+                "LDR     R1, [R5,#0x74]\n"
+                "BL      sub_FFE4FB14\n"
+                "MOV     R4, R0\n"
+                "BL      sub_FFD08FDC\n"
+                "LDR     R1, [R5,#0x70]\n"
+                "CMP     R1, R4\n"
+                "BNE     loc_FFC450B8\n"
+                "LDR     R0, [R5,#0x30]\n"
+                "CMP     R0, #1\n"
+                "BNE     loc_FFC450CC\n"
+"loc_FFC450B8:\n"
+                "LDR     R1, [R5,#0x84]\n"
+                "MOV     R0, R4\n"
+                //"BLX     R1\n"
+				".long   0xE12FFF31\n"
+                "STR     R4, [R5,#0x70]\n"
+                "STR     R6, [R5,#0x30]\n"
+"loc_FFC450CC:\n"
+                "STR     R6, [R5,#0x2C]\n"
+                "B       loc_FFC44FAC\n"
+ );
+} 
+
+
+void __attribute__((naked,noinline)) sub_FFD06BDC_my(){ 
+ asm volatile(
+                "STMFD   SP!, {R4-R8,LR}\n"
+                "LDR     R4, =0x83D4\n"
+                "LDR     LR, [R4]\n"
+                "LDR     R2, [R4,#8]\n"
+                "CMP     LR, #0\n"
+                "LDRNE   R3, [R4,#0xC]\n"
+                "MOV     R5, R2\n"
+                "CMPNE   R3, #1\n"
+                "MOVEQ   R2, #0\n"
+                "STREQ   R0, [R4]\n"
+                "STREQ   R2, [R4,#0xC]\n"
+                "BEQ     loc_FFD06CA8\n"
+                "LDR     R3, [R4,#4]\n"
+                //"LDR     R7, =0xFFE6BA00\n"
+				"LDR     R7, =table\n"          // *
+                "ADD     R12, R3, R3,LSL#1\n"
+                "LDR     R3, [R7,R12,LSL#2]\n"
+                "ADD     R6, R7, #0x30\n"
+                "LDR     R8, [R6,R12,LSL#2]\n"
+                "SUB     R3, LR, R3\n"
+                "CMP     R3, #0\n"
+                "SUB     LR, LR, R8\n"
+                "BLE     loc_FFD06C64\n"
+                "ADD     R12, R7, R12,LSL#2\n"
+                "LDR     LR, [R12,#4]\n"
+                "CMP     LR, R3\n"
+                "ADDGE   R2, R2, #1\n"
+                "BGE     loc_FFD06C58\n"
+                "LDR     R12, [R12,#8]\n"
+                "CMP     R12, R3\n"
+                "ADDLT   R2, R2, #3\n"
+                "ADDGE   R2, R2, #2\n"
+"loc_FFD06C58:\n"
+    //          "CMP     R2, #0x17\n"   // -
+    //          "MOVGE   R2, #0x16\n"   // -
+                "CMP     R2, #0x1A\n"   // +
+                "MOVGE   R2, #0x19\n"   // +
+                "B       loc_FFD06C98\n"
+"loc_FFD06C64:\n"
+                "CMP     LR, #0\n"
+                "BGE     loc_FFD06C98\n"
+                "ADD     R3, R6, R12,LSL#2\n"
+                "LDR     R12, [R3,#4]\n"
+                "CMP     R12, LR\n"
+                "SUBLE   R2, R2, #1\n"
+                "BLE     loc_FFD06C90\n"
+                "LDR     R3, [R3,#8]\n"
+                "CMP     R3, LR\n"
+                "SUBGT   R2, R2, #3\n"
+                "SUBLE   R2, R2, #2\n"
+"loc_FFD06C90:\n"
+                "CMP     R2, #0\n"
+                "MOVLT   R2, #0\n"
+"loc_FFD06C98:\n"
+                "CMP     R2, R5\n"
+                "STRNE   R2, [R4,#8]\n"
+                "MOVNE   R2, #1\n"
+                "STRNE   R2, [R4,#0xC]\n"
+"loc_FFD06CA8:\n"
+                //"LDR     R2, =0xFFE6B9A4\n"
+				"LDR     R2, =CompressionRateTable\n"   // *
+                "LDR     R3, [R4,#8]\n"
+                "LDR     R2, [R2,R3,LSL#2]\n"
+				
+				"LDR     R3, =video_mode\n"      // +
+                "LDR     R3, [R3]\n"             // +
+                "LDR     R3, [R3]\n"             // +
+                "CMP     R3, #1\n"               // +
+                "LDREQ   R3, =video_quality\n"   // +     
+                "LDREQ   R3, [R3]\n"             // +     
+                "LDREQ   R2, [R3]\n"             // +  
+				
+                "STR     R2, [R1]\n"
+                "STR     R0, [R4]\n"
+				"BL      mute_on_zoom\n"     // +
+                "LDMFD   SP!, {R4-R8,PC}\n"
+ );
+} 
+
+#include "conf.h"
+
+int *video_quality = &conf.video_quality;
+int *video_mode    = &conf.video_mode;
+
+long def_table[24]={0x2000, 0x38D, 0x788, 0x5800, 0x9C5, 0x14B8, 0x10000, 0x1C6A, 0x3C45, 0x8000, 0xE35, 0x1E23,
+           0x1CCD, -0x2E1, -0x579, 0x4F33, -0x7EB, -0xF0C, 0xE666, -0x170A, -0x2BC6, 0x7333, -0xB85, -0x15E3};
+
+long table[24];
+
+void change_video_tables(int a, int b){
+ int i;
+ for (i=0;i<24;i++) table[i]=(def_table[i]*a)/b; 
+}
+
+long CompressionRateTable[]={0x60, 0x5D, 0x5A, 0x57, 0x54, 0x51, 0x4D, 0x48, 0x42, 0x3B, 0x32, 0x29, 0x22, 0x1D, 0x17, 0x14, 0x10, 0xE, 0xB, 9, 7, 6, 5, 4, 3, 2, 1};
Index: /trunk/platform/a470/sub/100e/stubs_auto.S
===================================================================
--- /trunk/platform/a470/sub/100e/stubs_auto.S	(revision 785)
+++ /trunk/platform/a470/sub/100e/stubs_auto.S	(revision 785)
@@ -0,0 +1,380 @@
+/* THIS FILE IS GENERATED */
+/* DO NOT EDIT THIS FILE! */
+
+#include "stubs_asm.h"
+
+STUB(FFC001a4)
+STUB(FFC0094C)
+STUB(FFC00FA0)
+STUB(FFC014B8)
+STUB(FFC02D58)
+STUB(FFC03564)
+STUB(FFC049C8)
+STUB(FFC04AB4)
+STUB(FFC04E98)
+STUB(FFC05070)
+STUB(FFC051BC)
+STUB(FFC092B4)
+STUB(FFC0972C)
+STUB(FFC0B774)
+STUB(FFC0B8E0)
+STUB(FFC0BB70)
+STUB(FFC0BBB8)
+STUB(FFC0BBEC)
+STUB(FFC0BC10)
+STUB(FFC0BC34)
+STUB(FFC0BCF8)
+STUB(FFC0BDB8)
+STUB(FFC0FDFC)
+STUB(FFC10C68)
+STUB(FFC10CAC)
+STUB(FFC10DAC)
+STUB(FFC11030)
+STUB(FFC11408)
+STUB(FFC118D8)
+STUB(FFC119C0)
+STUB(FFC12B1C)
+STUB(FFC149A0)
+STUB(FFC14A18)
+STUB(FFC14A7C)
+STUB(FFC14BF8)
+STUB(FFC14D5C)
+STUB(FFC1507C)
+STUB(FFC15500)
+STUB(FFC155E4)
+STUB(FFC1674C)
+STUB(FFC16B64)
+STUB(FFC16B94)
+STUB(FFC16F6C)
+STUB(FFC16FB8)
+STUB(FFC17054)
+STUB(FFC173B8)
+STUB(FFC173EC)
+STUB(FFC1763C)
+STUB(FFC17B14)
+STUB(FFC17D08)
+STUB(FFC17D5C)
+STUB(FFC19554)
+STUB(FFC1978C)
+STUB(FFC197CC)
+STUB(FFC19854)
+STUB(FFC19994)
+STUB(FFC199E4)
+STUB(FFC19B48)
+STUB(FFC19B4C)
+STUB(FFC19B64)
+STUB(FFC19B88)
+STUB(FFC19B9C)
+STUB(FFC19C3C)
+STUB(FFC19C64)
+STUB(FFC19D10)
+STUB(FFC19D80)
+STUB(FFC19DA4)
+STUB(FFC19E70)
+STUB(FFC1A4CC)
+STUB(FFC1A54C)
+STUB(FFC1A554)
+STUB(FFC1A5BC)
+STUB(FFC1A5F4)
+STUB(FFC1A624)
+STUB(FFC1A62C)
+STUB(FFC1A644)
+STUB(FFC1A65C)
+STUB(FFC1A690)
+STUB(FFC1A8CC)
+STUB(FFC1F6F8)
+STUB(FFC1FED0)
+STUB(FFC23058)
+STUB(FFC2795C)
+STUB(FFC31B08)
+STUB(FFC32B68)
+STUB(FFC33B48)
+STUB(FFC33BB8)
+STUB(FFC39F34)
+STUB(FFC3BC0C)
+STUB(FFC3C004)
+STUB(FFC3C044)
+STUB(FFC3C110)
+STUB(FFC3C278)
+STUB(FFC3C380)
+STUB(FFC3C3EC)
+STUB(FFC3C544)
+STUB(FFC3CA38)
+STUB(FFC44560)
+STUB(FFC448BC)
+STUB(FFC449F4)
+STUB(FFC44B98)
+STUB(FFC44CDC)
+STUB(FFC44ED4)
+STUB(FFC451CC)
+STUB(FFC454E0)
+STUB(FFC455FC)
+STUB(FFC45628)
+STUB(FFC460D4)
+STUB(FFC46100)
+STUB(FFC46194)
+STUB(FFC46D00)
+STUB(FFC47080)
+STUB(FFC477D0)
+STUB(FFC47814)
+STUB(FFC47B10)
+STUB(FFC48060)
+STUB(FFC48200)
+STUB(FFC48B2C)
+STUB(FFC49898)
+STUB(FFC498C8)
+STUB(FFC49D40)
+STUB(FFC49DB8)
+STUB(FFC4A1F8)
+STUB(FFC4A828)
+STUB(FFC4B714)
+STUB(FFC4B9D4)
+STUB(FFC4BB80)
+STUB(FFC4C8E8)
+STUB(FFC50EDC)
+STUB(FFC50F10)
+STUB(FFC51028)
+STUB(FFC51940)
+STUB(FFC51A80)
+STUB(FFC542D8)
+STUB(FFC56E08)
+STUB(FFC56F08)
+STUB(FFC57098)
+STUB(FFC572A4)
+STUB(FFC573AC)
+STUB(FFC57458)
+STUB(FFC57794)
+STUB(FFC577C0)
+STUB(FFC5794C)
+STUB(FFC58868)
+STUB(FFC596C4)
+STUB(FFC5A1A0)
+STUB(FFC5A41C)
+STUB(FFC5A95C)
+STUB(FFC5ABD8)
+STUB(FFC5AC24)
+STUB(FFC5B294)
+STUB(FFC5B568)
+STUB(FFC5B804)
+STUB(FFC5BD90)
+STUB(FFC5BEAC)
+STUB(FFC5BEB8)
+STUB(FFC5BFB4)
+STUB(FFC5BFD8)
+STUB(FFC5C048)
+STUB(FFC5C674)
+STUB(FFC5C6F4)
+STUB(FFC5C730)
+STUB(FFC5C7D8)
+STUB(FFC5C80C)
+STUB(FFC5C850)
+STUB(FFC5C938)
+STUB(FFC5CA14)
+STUB(FFC5CB08)
+STUB(FFC5CEBC)
+STUB(FFC5CF38)
+STUB(FFC5CF80)
+STUB(FFC5D038)
+STUB(FFC5D098)
+STUB(FFC5D12C)
+STUB(FFC5D2BC)
+STUB(FFC5D48C)
+STUB(FFC5D5E4)
+STUB(FFC5D784)
+STUB(FFC5D864)
+STUB(FFC5D9C0)
+STUB(FFC5DAC4)
+STUB(FFC5DD9C)
+STUB(FFC5DF2C)
+STUB(FFC5DF50)
+STUB(FFC5DF74)
+STUB(FFC5E0F4)
+STUB(FFC5E130)
+STUB(FFC5E260)
+STUB(FFC5E348)
+STUB(FFC5E38C)
+STUB(FFC5E3BC)
+STUB(FFC5E3F4)
+STUB(FFC5E4C0)
+STUB(FFC5E604)
+STUB(FFC5E6B0)
+STUB(FFC5E7F4)
+STUB(FFC5E854)
+STUB(FFC5E8C0)
+STUB(FFC5E924)
+STUB(FFC5EAAC)
+STUB(FFC5EB4C)
+STUB(FFC5EC48)
+STUB(FFC5EC84)
+STUB(FFC5ECC0)
+STUB(FFC5ECF0)
+STUB(FFC5ED54)
+STUB(FFC5EFFC)
+STUB(FFC5F06C)
+STUB(FFC5F6AC)
+STUB(FFC5F78C)
+STUB(FFC5F888)
+STUB(FFC5F8E0)
+STUB(FFC5F924)
+STUB(FFC5FBBC)
+STUB(FFC601B0)
+STUB(FFC601F0)
+STUB(FFC60288)
+STUB(FFC6076C)
+STUB(FFC60808)
+STUB(FFC60854)
+STUB(FFC61444)
+STUB(FFC61528)
+STUB(FFC61764)
+STUB(FFC61810)
+STUB(FFC618C8)
+STUB(FFC619A8)
+STUB(FFC61A98)
+STUB(FFC61AA4)
+STUB(FFC61C00)
+STUB(FFC61C28)
+STUB(FFC61C4C)
+STUB(FFC61C78)
+STUB(FFC61D64)
+STUB(FFC61DC4)
+STUB(FFC61DC8)
+STUB(FFC61E60)
+STUB(FFC61F98)
+STUB(FFC626DC)
+STUB(FFC637A8)
+STUB(FFC63BA0)
+STUB(FFC63BB8)
+STUB(FFC63BD8)
+STUB(FFC63E9C)
+STUB(FFC64460)
+STUB(FFC644F8)
+STUB(FFC64544)
+STUB(FFC6458C)
+STUB(FFC645B0)
+STUB(FFC6460C)
+STUB(FFC646D8)
+STUB(FFC64BF4)
+STUB(FFC64C74)
+STUB(FFC64C94)
+STUB(FFC64EF8)
+STUB(FFC64FE4)
+STUB(FFC65040)
+STUB(FFC650C4)
+STUB(FFC65424)
+STUB(FFC65458)
+STUB(FFC65464)
+STUB(FFC654C8)
+STUB(FFC654E0)
+STUB(FFC65568)
+STUB(FFC65584)
+STUB(FFC655B0)
+STUB(FFC655D4)
+STUB(FFC655EC)
+STUB(FFC65608)
+STUB(FFC6563C)
+STUB(FFC65660)
+STUB(FFC658C4)
+STUB(FFC659B4)
+STUB(FFC659F4)
+STUB(FFC65A94)
+STUB(FFC65B88)
+STUB(FFC65B98)
+STUB(FFC65D14)
+STUB(FFC66248)
+STUB(FFC94698)
+STUB(FFCA1258)
+STUB(FFCC7D84)
+STUB(FFCC7E48)
+STUB(FFCCB1F0)
+STUB(FFCDC234)
+STUB(FFCDC300)
+STUB(FFCDC4D8)
+STUB(FFCE9634)
+STUB(FFCF8D9C)
+STUB(FFD06BDC)
+STUB(FFD07C28)
+STUB(FFD08834)
+STUB(FFD089C8)
+STUB(FFD08D4C)
+STUB(FFD08FA4)
+STUB(FFD08FDC)
+STUB(FFD0B2B0)
+STUB(FFD0B630)
+STUB(FFD0B638)
+STUB(FFD0B640)
+STUB(FFD0B650)
+STUB(FFD0B704)
+STUB(FFD0B764)
+STUB(FFD0B7E4)
+STUB(FFD0B900)
+STUB(FFD0B9C0)
+STUB(FFD0BA28)
+STUB(FFD0BDA8)
+STUB(FFD0C024)
+STUB(FFD0C20C)
+STUB(FFD0C29C)
+STUB(FFD0C350)
+STUB(FFD0C40C)
+STUB(FFD0C450)
+STUB(FFD0C4F4)
+STUB(FFD0C644)
+STUB(FFD0C6D8)
+STUB(FFD0C7A0)
+STUB(FFD0CA20)
+STUB(FFD0CAE8)
+STUB(FFD0CB5C)
+STUB(FFD0CE98)
+STUB(FFD0CEF8)
+STUB(FFD0D484)
+STUB(FFD0D598)
+STUB(FFD0D5E8)
+STUB(FFD0DAD4)
+STUB(FFD0E448)
+STUB(FFD0E464)
+STUB(FFD0E474)
+STUB(FFD0E4A0)
+STUB(FFD192FC)
+STUB(FFD1948C)
+STUB(FFD1A0EC)
+STUB(FFD1A730)
+STUB(FFD1BB80)
+STUB(FFD1C480)
+STUB(FFD1EEC0)
+STUB(FFD26EFC)
+STUB(FFD27034)
+STUB(FFD2713C)
+STUB(FFD2A0E8)
+STUB(FFD2A16C)
+STUB(FFD2A7D8)
+STUB(FFD2A94C)
+STUB(FFD2DDD8)
+STUB(FFD2DF1C)
+STUB(FFD2DF68)
+STUB(FFD2EE78)
+STUB(FFD2EE80)
+STUB(FFD2EE8C)
+STUB(FFD2EEB8)
+STUB(FFD2F028)
+STUB(FFD2F038)
+STUB(FFD2F03C)
+STUB(FFD30070)
+STUB(FFD30690)
+STUB(FFD30850)
+STUB(FFD308C8)
+STUB(FFD30DCC)
+STUB(FFD30F58)
+STUB(FFD324BC)
+STUB(FFD32634)
+STUB(FFD328AC)
+STUB(FFD32AC4)
+STUB(FFD32B54)
+STUB(FFD379A8)
+STUB(FFD37F94)
+STUB(FFD38794)
+STUB(FFD38844)
+STUB(FFD582F4)
+STUB(FFD5A3CC)
+STUB(FFD66E5C)
+STUB(FFD66ECC)
+STUB(FFE4E264)
+STUB(FFE4FB14)
Index: /trunk/platform/a470/sub/100e/Makefile
===================================================================
--- /trunk/platform/a470/sub/100e/Makefile	(revision 785)
+++ /trunk/platform/a470/sub/100e/Makefile	(revision 785)
@@ -0,0 +1,6 @@
+topdir=../../../../
+
+OBJS=boot.o stubs_min.o stubs_auto.o stubs_entry.o lib.o stubs_entry_2.o capt_seq.o movie_rec.o
+STUBS_AUTO_DEPS=boot.c capt_seq.c movie_rec.c
+
+include  $(topdir)platform/makefile_sub.inc
Index: /trunk/Makefile
===================================================================
--- /trunk/Makefile	(revision 784)
+++ /trunk/Makefile	(revision 785)
@@ -215,4 +215,5 @@
 	$(MAKE) -s --no-print-directory PLATFORM=ixus970_sd890  PLATFORMSUB=100b NO_INC_BUILD=1 firzipsub
 	$(MAKE) -s --no-print-directory PLATFORM=ixus970_sd890  PLATFORMSUB=100c NO_INC_BUILD=1 firzipsub
+	$(MAKE) -s --no-print-directory PLATFORM=a470  PLATFORMSUB=100e NO_INC_BUILD=1 firzipsub
 	$(MAKE) -s --no-print-directory PLATFORM=a470  PLATFORMSUB=101b NO_INC_BUILD=1 firzipsub
 	$(MAKE) -s --no-print-directory PLATFORM=a470  PLATFORMSUB=102c NO_INC_BUILD=1 firzipsub
@@ -325,4 +326,5 @@
 	$(MAKE) -s --no-print-directory PLATFORM=ixus970_sd890  PLATFORMSUB=100b NO_INC_BUILD=1 firzipsubcomplete
 	$(MAKE) -s --no-print-directory PLATFORM=ixus970_sd890  PLATFORMSUB=100c NO_INC_BUILD=1 firzipsubcomplete
+	$(MAKE) -s --no-print-directory PLATFORM=a470  PLATFORMSUB=100e NO_INC_BUILD=1 firzipsubcomplete
 	$(MAKE) -s --no-print-directory PLATFORM=a470  PLATFORMSUB=101b NO_INC_BUILD=1 firzipsubcomplete
 	$(MAKE) -s --no-print-directory PLATFORM=a470  PLATFORMSUB=102c NO_INC_BUILD=1 firzipsubcomplete
