Skip to content

System Functions

These are some of the functions I've identified within the system.shpac firmware while reverse engineering it.

Please let me know if any of these are inaccurate.

Function List

Address Function Name
7007798c AES_Decrypt
70077920 AES_Encrypt
700cbc98 atomic
700cbdd4 atomic2gen
700cd57c auxresume
700c799a auxsetstr
70045ea4 BusFault_IRQHandler
700cb7c8 callallpendingfinalizers
7007723c check_fs
7005bc12 CheckIfAudioFile
70077748 CheckIfEncrypted
700d8eec checkliteral
700cad4c checkmode
700d8f48 checksize
700cc62c checkSizes
7010d98c Chipboot
70075c98 chk_share
700775b8 clear_dirty_flag
70075478 clear_share
700761be clst2sect
700cc660 correctgraylist
70015e68 cosf
700c5edc CreateEnum
7007650e create_chain
70079c10 Curl_conn_connect
700aca88 Curl_conn_may_http3
700796a0 Curl_debug
7007972c Curl_failf
7008de50 Curl_http
7008e3c0 Curl_http_auth_act
7008e2c4 Curl_http_connect
7008e224 Curl_http_done
7008e2e4 Curl_http_getsock_do
7008de0c Curl_http_setup_conn
7008abd8 Curl_ipv4_resolve_r
7008dbee Curl_is_in_callback
7008ae74 curl_mvsnprintf
70091b28 Curl_rand
7008dbd2 Curl_set_in_callback
7008a1f8 Curl_shuffle_addr
70099cf2 Curl_ssl_backend
700cd700 db_debug
700cd7c8 db_getuservalue
70111c2c DumpBuffer
70045f1c DebugMonitor_IRQHandler
7005c988 DecodeAudioData
700767b0 dec_share
700c5e34 DecodeLuaFunctionName
700770a8 dir_clear
700772cc dir_find
70076db0 dir_next
70076b38 dir_read
70075d04 dir_register
70077056 dir_remove
70076a08 dir_sdi
70075258 disk_initialize
700752c4 disk_ioctl
70075284 disk_read
70075240 disk_status
700752a4 disk_write
70045f24 DMA1_Stream0_IRQHandler
70045f30 DMA1_Stream1_IRQHandler
70045f3c DMA1_Stream2_IRQHandler
70045f48 DMA1_Stream3_IRQHandler
70045f78 DMA2_Stream0_IRQHandler
70045f84 DMA2_Stream1_IRQHandler
70045f90 DMA2_Stream2_IRQHandler
7005f0a4 DMA2D_IRQHandler
70048c70 DMA_SetConfig
700cc7b8 dothecall
7010f540 dsprintf
700cb024 dumpBlock
700cae24 dumpByte
700cae38 dumpFunction
700cb0a2 dumpInt
700cb03c dumpInteger
700cb04c dumpNumber
700cb05e dumpString
700cb6c6 entergen
700cb6fc enterinc
700cc7c2 entersweep
700d8f28 error
70045f1e EXTI2_IRQHandler
7007677c f_close
70076aa8 f_closedir
700767ec f_lseek
700753b0 f_mount
7007576c f_open
70076966 f_opendir
700cac28 f_parser
700761d4 f_read
70076ad2 f_readdir
70077100 f_rename
70076e7c f_stat
70076624 f_sync
70076ed0 f_truncate
70076f94 f_unlink
70076386 f_write
70075188 FATFS_LinkDriverEx
700751a8 FATFS_UnLinkDriverEx
70077688 ff_convert
70077648 ff_oem2uni
700c6426 fflush
700012e4 fgets
70074b00 FileDriverLinkMount
70074b50 FileDriverUnlinkUnmount
700cc5d4 finishgencycle
700759b0 follow_path
700c64ac fprintf
700cbb6c fullgen
70002b5a fwrite
700cc6c4 GCTM
700cf754 gctm
700cd28c generic_reader
70076106 get_fat
70076c60 get_fileinfo
70077616 get_fptr
70075434 get_ldnumber
7005e74c GetBaseAddress
700751bc GetDrivePrefixPointer
70074b38 GetError
70093b30 getErrorMessage
700c8e98 getF
700cb560 getgclist
700c82f2 getgcparam
700d7b40 getgeneric
700c5960 GetLuaState
700c5958 GetLuaStatePtr
700c7074 GetLuaVersion
700cb0da GetProtoUpvalDesc
700c8ef0 getS
70044584 GetSHAAFile
700ce0f8 GetStderr
70059438 GetSystemPackageFilePath
700c7870 gettable
7005e786 GPIO_ResetPin
70046914 HAL_Delay
70048210 HAL_DMA_Abort
700486f8 HAL_DMA_IRQHandler
70047fd8 HAL_DMA_Start_IT
70046908 HAL_GetTick
70048f94 HAL_GPIO_DeInit
70048df8 HAL_GPIO_Init
70049096 HAL_GPIO_WritePin
7004a844 HAL_MMC_ConfigSpeedBusOperation
70049d50 HAL_MMC_ConfigWideBusOperation
7004a40c HAL_MMC_GetCardCSD
7004abaa HAL_MMC_GetCardState
70049b42 HAL_MMC_Init
70049b88 HAL_MMC_InitCard
70045a40 HAL_MMC_MspInit
70049e10 HAL_MMC_ReadBlocks
70047798 HAL_NVIC_EnableIRQ
7004773c HAL_NVIC_SetPriority
7004771c HAL_NVIC_SetPriorityGrouping
7004cb84 HAL_RCCEx_GetPeriphCLKFreq
7004dcdc HAL_SAI_DisableInterrupt
7004db14 HAL_SAI_DMAStop
7004d824 HAL_SAI_Init
7004581c HAL_SAI_MspInit
7004dba0 HAL_SAI_Transmit_DMA
7005be20 HAL_SAI_TxCpltCallback
7005be26 HAL_SAI_TxHalfCpltCallback
7004dd44 HAL_SPI_Init
70048cba HAL_Unlock
70045e2c HardFault_IRQHandler
70076060 inc_share
700c7204 index2value
700797aa infof
70044aa8 Init_ADC1
70044b80 Init_ADC2
70044c28 Init_ADC3
70044ef8 Init_CRYP
70044fe0 Init_DMA
70045068 Init_DMA2D
7001c530 Init_Flash
700450ec Init_FMC
70045264 Init_GPIO
70045590 Init_I2C1
7004566c Init_MDMA
700456fc Init_RTC
70045798 Init_SAI1
70045934 Init_SDMMC2
70045bb4 Init_SPI1
70045c14 Init_SPI4
70046334 Init_TIM1
70046504 Init_TIM2
70046568 Init_TIM3
700465d0 Init_TIM4
70046628 Init_TIM5
70046894 Init_TIM7_PendSV
70046780 Init_USART2
700c5aa4 InitializeLua
70075f7c ld_clust
700760f0 ld_dword
700cd248 load_aux
7003a650 LoadAchievement
7003b6d4 LoadAlarmConfig
7003b888 LoadBedTimeConfig
700d8b90 loadByte
7003bbc0 LoadDoppler
700d8bc0 loadFunction
7003b9e0 LoadInstalledPosition
700d9048 loadInt
700d8f70 loadInteger
7003d070 LoadMovementRecord
7003b1d0 LoadNetworkConfig
7003b5b4 LoadNetworkServiceConfig
7003abd4 LoadNotifications
700d8f80 loadNumber
700d8fb0 loadStringN
7003bc5c LoadSystemConfig
7003b958 LoadTimeSignalConfig
700d9050 loadUnsigned
70039c7c LoadUserData
7003c0a8 LoadUserRecord
70077234 lock_volume
700c7080 lua_absindex
700c7c64 lua_callk
700c6fd8 lua_checkstack
700c56f0 Lua_CollectGarbage_Default
700c56d6 Lua_CollectGarbage_GCGen
700c8028 lua_concat
700c78b8 lua_createtable
700c7de0 lua_dump
700c7f9e lua_error
700c7e0c lua_gc
700c8088 lua_getallocf
700c77c6 lua_getfield
700c9618 lua_getinfo
700c94ec lua_getstack
700c70a0 lua_gettop
700c72c4 lua_isinteger
700c7d64 lua_load
700c6386 lua_newtable_Create
700c80a2 lua_newuserdatauv
700c7fc4 lua_next
700c7cb0 lua_pcallk
700c76e8 lua_pushboolean
700c767e lua_pushcclosure
700c6316 lua_pushcfunction
700c7650 lua_pushfstring
700c75a0 lua_pushnil
700c7600 lua_pushstring
700c7264 lua_pushvalue
700c7634 lua_pushvfstring
700c789e lua_rawgeti
700ca930 lua_resume
700c713c lua_rotate
700c7a58 lua_setfield
700c7b9c lua_setmetatable
700c70ae lua_settop
700c8178 lua_setupvalue
700c7472 lua_toboolean
700c7fee lua_toclose
700c744c lua_tointegerx
700c748e lua_tolstring
700c7426 lua_tonumberx
700c7524 lua_touserdata
700c727e lua_type
700c72a0 lua_typename
700c7038 lua_xmove
700c55b0 luaB_auxwrap
700ccc50 luaB_load
700cb45c luaC_barrier_
700cb6a0 luaC_changemode
700cb598 luaC_fix
700cbb10 luaC_fullgc
700cb7fe luaC_runtilstate
700cb92c luaC_step
700c51ea LuaCreateEnum
700ca8d4 luaD_call
700ca926 luaD_callnoyield
700ca344 luaD_inctop
700cab44 luaD_pcall
700cab98 luaD_protectedparser
700ca0e0 luaD_throw
700d4b00 luaE_setdebt
700d4f64 luaE_warnerror
700d4ff8 luaE_warning
700cb12e luaF_initupvals
700cb106 luaF_newLclosure
700cb370 luaF_newproto
700c9ac4 luaG_runerror
700c9860 luaG_typeerror
700d72f8 luaH_next
700d72c8 luaH_realasize
700c8a74 luaL_checkstack
700c8aa8 luaL_checktype
700c929c luaL_checkversion_
700c8644 luaL_error
700c9128 luaL_getsubtable
700c8f40 luaL_len
700c8ed4 luaL_loadbufferx
700c8d0c luaL_loadfilex
700c88b4 luaL_newmetatable
700cc940 luaL_openlibs
700c8a0c luaL_optlstring
700cd3a2 luaL_optstring
700c8582 luaL_pushresult
700c9174 luaL_requiref
700c90ac luaL_setfuncs
700c8f74 luaL_tolstring
700c8710 luaL_typeerror
700c87d0 luaL_where
700cf40c luaM_free_
700cf4ac luaM_malloc_
700cf42c luaM_realloc_
700cf3c0 luaM_saferealloc_
700cf3fc luaM_toobig
700cc970 luaopen_base
700cf4f4 luaopen_package
700260e8 LuaRegister_App
7001d854 LuaRegister_Canvas
70021300 LuaRegister_Network
7003d420 LuaRegister_ShiroAchievement
7003d894 LuaRegister_ShiroAlarmConfig
70040408 LuaRegister_ShiroBedTime
70034da4 LuaRegister_ShiroCalendar
700c521c LuaRegister_ShiroCoroutineUtil
700398e4 LuaRegister_ShiroDev
70039c44 LuaRegister_ShiroDevConfig
7002d758 LuaRegister_ShiroLayout
700409b4 LuaRegister_ShiroMovementRecord
700417d8 LuaRegister_ShiroNetworkConfig
70041ec0 LuaRegister_ShiroNetworkServiceConfig
70040e98 LuaRegister_ShiroNotification
700421e8 LuaRegister_ShiroSystemConfig
7002f0ec LuaRegister_ShiroText
700445b4 LuaRegister_ShiroTheme
70043d44 LuaRegister_ShiroTimeSignal
7003edb4 LuaRegister_ShiroUserRecord
70034868 LuaRegister_ShiroUtil
7003040c LuaRegister_ShiroViewport
700d5148 luaS_init
700d5322 luaS_new
700d51b4 luaS_newlstr
700d506c luaS_resize
700d8630 luaT_gettmbyobj
700cad8c luaU_dump
700d8a5c luaU_undump
700d979c luaV_finishset
700d0630 luaY_parser
700dd568 luaZ_init
7001c414 main
70020c8c MainFirmwareUpdate
70057ad0 malloc
70099f0c mbed_connect_common
7009e7e6 mbedtls_aes_init
7009e800 mbedtls_aes_setkey_enc
70099e04 mbedtls_connect
70099e12 mbedtls_connect_nonblocking
700ac76a mbedtls_ctr_drbg_random
700ac56a mbedtls_ctr_drbg_reseed_internal
700ac61c mbedtls_ctr_drbg_seed
70045fb8 MDMA_IRQHandler
70076378 mem_cpy
700772ac mem_cmp
700007d4 memclr
700007ec memcpy
70045e68 MemMgmtFault_IRQHandler
7004aa20 MMC_DDR_Mode
7004ab0c MMC_GetCardState
7004a920 MMC_HighSpeed
7004a788 MMC_PwrClassUpdate
7004abc6 MMC_UpdateRPMBErrorCode
7007549c mount_volume
70076024 move_window
70099b10 multissl_connect_nonblocking
70098d80 multissl_setup
70045e28 NMI_IRQHandler
7008a068 num_addresses
70074e22 OpenDirectory
70045f9c OTG_HS_IRQHandler
7008e67c output_auth_headers
00006c34 PendSV_IRQHandler
700c8bf0 prepbuffsize
700cc020 propagatemark
700c8680 pushglobalfuncname
7007746c put_fat
7010f744 ReadFifo
7010e3b0 ReadFifoSize
700749f4 ReadFile
700c51a4 RegisterLuaFunctions
7002dcc4 RegisterLuaFunctions_10
7002f528 RegisterLuaFunctions_11
7003e8fe RegisterLuaFunctions_12
7003f620 RegisterLuaFunctions_16
70030724 RegisterLuaFunctions_18
7003dd9c RegisterLuaFunctions_20
700c537e RegisterLuaFunctions_3
70039bb6 RegisterLuaFunctions_4
7004273a RegisterLuaFunctions_46
70043fd0 RegisterLuaFunctions_5
70034e80 RegisterLuaFunctions_6
7003d500 RegisterLuaFunctions_7
70041fa0 RegisterLuaFunctions_8
70075fb0 remove_chain
701590d0 Reset_IRQHandler
700c938c resizebox
700caa3a resume
700c7190 reverse
1ff08a5c RSS_exitSecureArea
1ff08ae0 RSS_getVersion
1ff08b20 RSS_resetAndInitializeSecureAreas
7004578c RTC_Alarm_IRQHandler
7004daac SAI_Disable
7004dd28 SAI_DisableDMARequest
7004dc8e SAI_DMAError
7012280e SAI_DMAStop
7004dc72 SAI_DMATxCplt
7004dc6c SAI_DMATxHalfCplt
7004dd16 SAI_EnableInterrupt
7004dd32 SAI_GetLock
7004dd3a SAI_GetState
7004dd0c SAI_HAL_GetTick
7004dae8 SAI_InterruptFlag
7004dccc SAI_SetErrorDMA
7005be4e SAI_StartTransfer
7005be42 SAI_StopTransfer
701227f8 SAI_TransmitData
7003a6f8 SaveAchievement
7003b7c8 SaveAlarmConfig
7003b8dc SaveBedTimeConfig
7003bc04 SaveDoppler
7003ba8c SaveInstalledPosition
7003d178 SaveMovementRecord
7003b378 SaveNetworkConfig
7003b628 SaveNetworkServiceConfig
7003adb8 SaveNotifications
7003bea4 SaveSystemConfig
7003b988 SaveTimeSignalConfig
70039e28 SaveUserData
7003c49c SaveUserRecord
000049fc SCB_CleanDCache_by_Addr
7011cfe0 sd_wifi_init
7010fd80 SDMMC1_IRQHandler
70045fc4 SDMMC2_IRQHandler
700507a0 SDMMC_CmdSendCID
700506fc SDMMC_CmdSelDesel
70050808 SDMMC_CmdSendCSD
700504ca SDMMC_ConfigData
70074f7c SDMMC_disk_initialize
700750ec SDMMC_disk_ioctl
70075010 SDMMC_disk_read
70074f50 SDMMC_disk_status
70075070 SDMMC_disk_write
70050510 SDMMC_GetCmdResp2
700504bc SDMMC_GetPowerState
700504c4 SDMMC_GetResponse
7005047c SDMMC_Init
700504b0 SDMMC_PowerState_ON
7004ac36 SDMMC_ReadFIFO
70077ff8 SetDiskAvailability
700cc820 setpause
7009d954 SHA256_Compress
7009ca80 SHA512_Compress
70019ed0 sinf
700cb824 singlestep
70045fa8 SPI4_IRQHandler
7004e9f8 SPI_AddRecvBuffPtr
7004e920 SPI_DecrementRecvTransferCount
7004ea20 SPI_GetInstance
7004ea60 SPI_GetState
7004e92c SPI_ResetAndGetErrorCode
7004ea08 SPI_SetLock
7004e9ca SPI_SetState
7004e964 SPI_StopAndFetchErrors
7004e904 SPI_TimeoutError
7004e9d6 SPI_TransferDone
7004e982 SPI_Unlock
7004e95a SPI_UnlockAndSetErrorMODF
7009b4cc ssl_init
70075f9a st_clust
7010dbec Start
700c5068 StartLua
7005b488 Startup
7010dcb0 Stop
700d5558 str_dump
7007743c strchr
70003f10 strcmp
700063f4 strcpy
70006b00 strlen
7001cd04 str_len
7007744e sum_sfn
00006a38 SVCall_IRQHandler
700cc57c sweep2old
700cbb86 sweeplist
700cc7da sweepstep
700cb686 sweeptolive
700766c6 sync_fs
7007756c sync_window
00005400 SysTick_IRQHandler
700d50c2 tablerehash
700c8ad6 tag_error
70077620 thunk2_validate
7007760e thunk_dir_next
700775fc thunk_disk_write
70077642 thunk_get_fat
700775c2 thunk_move_window
70077608 thunk_validate
70045f60 TIM5_IRQHandler
70045f6c TIM7_IRQHandler
700cf46c tryagain
70075750 unlock_volume
700caca0 unroll
70045ee0 UsageFault_IRQHandler
70045f54 USART2_IRQHandler
70076328 validate
700cc6aa whitelist
7011ee5c wifi_core_init
7011458c wifi_get_scan_result
70074bb4 WriteFile
700d64f2 writer
70154198 ZSTD_getFrameHeader
70153f80 ZSTD_getFrameHeader_advanced

(More Coming Soon)

Work in progress

This page is currently under development.

Feel free to follow @KernelEquinox to get notified about site and documentation updates as they happen.