├── README.md └── SpoilerAL-winmm.dll ├── .clang-format ├── AddEntryModule ├── AddEntryModule.c └── Attach_AddEntryModule.c ├── AddressNamingAdditionalType ├── AddressNamingAdditionalType.c ├── AddressNamingFEPFreeList.c ├── AddressNamingFEPList.c ├── AddressNamingFEPNumber.c ├── AddressNamingFromUnicode.c ├── AddressNamingFromUtf8.c └── Attach_AddressNamingAdditionalType.c ├── AddressNamingFmt ├── Attach_AddressNamingFmt.c └── TSSGCtrl_AddressNaming_OneRead.c ├── AddressNamingFromFloat ├── AddressNamingFromFloat.c └── Attach_AddressNamingFromFloat.c ├── CommonList ├── Attach_CommonList.c ├── TMainForm_DrawTreeCell_CorrectDrawText.c ├── TMainForm_SubjectAccess_CorrectListItemText.c ├── TMainForm_SubjectAccess_StoreFileNamePrefix.c ├── TSSDoubleList_Read_ToULongDef.c ├── TSSGCtrl_AddressNaming_CommonList.c ├── TSSGCtrl_EnumReadSSR_SwitchCommonList.c └── TSSGCtrl_LoopSSRFile_CommonList.c ├── DwmAPI ├── DwmAPI.c └── DwmGetWindowAttribute.asm ├── EditBinEx ├── EditBinEx.c ├── EditBinEx.dsp ├── EditBinEx.dsw ├── EditBinEx.sln ├── EditBinEx.txt ├── EditBinEx.vcxproj ├── EditBinEx.vcxproj.filters ├── EditBinEx.vcxproj.user ├── Internal.c ├── Internal.h ├── IsBadPtr │ ├── IsBadPtr.asm │ ├── IsBadPtrSource.h │ ├── IsBadReadPtr.c │ └── IsBadWritePtr.c ├── Release │ └── EditBinEx.exe ├── RemoveDebugSection.c ├── RemoveDebugSection.h ├── SetDelayImport.c ├── SetDelayImport.h ├── SetLastWriteTime.c ├── SetLastWriteTime.h ├── SetLinkerVersion.c ├── SetLinkerVersion.h ├── SetOperatingSystemVersion.c ├── SetOperatingSystemVersion.h ├── SetTimeDateStamp.c ├── SetTimeDateStamp.h └── crt │ ├── ParseArgument.h │ ├── ParseArgumentA.c │ ├── ParseArgumentT.h │ ├── ParseArgumentW.c │ ├── chkesp.c │ ├── memset.h │ ├── strnlen.h │ ├── wassert.c │ ├── wcslen.h │ ├── wcsnicmp.c │ ├── wcsnlen.h │ ├── wmemcpy.h │ └── wmemmove.h ├── EnumReadSSG ├── Attach_EnumReadSSG.c ├── Attribute_allcate.h ├── Attribute_define.h ├── Attribute_error_skip.h ├── Attribute_expr.h ├── Attribute_offset.h ├── Attribute_scope.h ├── Attribute_undef.h ├── Attribute_variable.h ├── TSSGCtrl_EnumReadSSG.c └── TSSGCtrl_MakeSubjectType.c ├── ErrorSkip ├── Attach_ErrorSkip.c ├── TSSBundleList_Write_ErrorSkip.c ├── TSSDir_WriteChildren_ErrorSkip.c ├── TSSGActionListner_OnSubjectWriteError_ErrorSkip.c └── TSSGCtrl_Write_ErrorSkip.c ├── FixAdjustByString └── FixAdjustByString.c ├── FixAdjustByValue ├── Attach_FixAdjustByValue.c └── FixAdjustByValue.c ├── FixByteArrayFind ├── Attach_FixByteArrayFind.c └── TSSGCtrl_ByteArrayFind.c ├── FixClearChild ├── Attach_FixClearChild.c └── TSSDir_ClearChild.c ├── FixDoubleList ├── Attach_FixDoubleList.c ├── TSSDoubleList_SwitchStatus.c ├── TSSDoubleToggle_SwitchStatus.c ├── TSSGCtrl_GetSSGDataFile_ClearAtBreak.c └── TSSGCtrl_SetSSGDataFile_IgnoreEmptyData.c ├── FixEraseElement └── TSSGAttributeSelector_EraseElement.c ├── FixFindName ├── Attach_FixFindName.c └── TFindNameForm_FindStartBtnClick_FixGetSelectSubject.c ├── FixGetDistractionString ├── Attach_FixGetDistractionString.c └── TSSGScriptStruct_EscapeDistraction.c ├── FixGetModuleFromName ├── Attach_FixGetModuleFromName.c └── FixGetModuleFromName.c ├── FixGetSSGDataFile ├── Attach_FixGetSSGDataFile.c └── FixGetSSGDataFile.c ├── FixListFEP ├── Attach_FixListFEP.c ├── TSSGCtrl_OneRead_with_CheckIO_FEP.c ├── TSSGCtrl_OneWrite_with_CheckIO_FEP.c └── TSSGSubject_CheckFEPParam.c ├── FixLoadFromFile ├── Attach_LoadFromFile.c ├── CheckSSGVersion.c ├── TSSGCtrl_GetSSGScriptVec_AdjustLogFooter.c ├── TStringFiler_LoadFromFile.c └── TTitleSelectForm_FindSSG_AdjustLogFooter.c ├── FixLoopByteArray ├── Attach_FixLoopByteArray.c ├── Caller_FixLoopByteArray.c ├── Caller_ParsingWithRel.c ├── Caller_StrToProcessAccessElementVecWithoutRel.c └── FixLoopByteArray.c ├── FixMainForm ├── Attach_FixMainForm.c ├── DGrid │ ├── TMainForm_CheckTreeSize.c │ ├── TMainForm_DGridMouseMove_DrawTree.c │ ├── TMainForm_DGridProc.c │ ├── TMainForm_DGridSelectCell.c │ ├── TMainForm_DrawTree.c │ ├── TMainForm_DrawTreeCell_DrawFocusRect.c │ ├── TMainForm_DrawTreeCell_DrawHover.c │ ├── TMainForm_DrawTreeCell_FixDefaultColWidth.c │ ├── TMainForm_DrawTreeCell_FixLabelDrawX.c │ ├── TMainForm_FormMouseWheel.c │ ├── TMainForm_FormResize_CheckTreeSize.c │ ├── TMainForm_HotKeyEditKeyDown.c │ ├── TMainForm_M_CustomizeClick_ChainPrevRedrawCalcImage.c │ ├── TMainForm_M_CustomizeClick_RedrawCalcImage.c │ ├── TMainForm_M_TitleSelectClick_OpenSSG.c │ ├── TMainForm_OnDGridLButtonDown.c │ ├── TMainForm_OnDGridLButtonUp.c │ └── TSSGSubject_Write_WithDrawTree.c ├── MainForm │ ├── TMainForm_CalcButtonPushFunc.c │ ├── TMainForm_ChangeSubjectPanel_FixToggleStringEnterVisible.c │ ├── TMainForm_DrawTreeCell_ModifyNowValue.c │ ├── TMainForm_DrawTreeCell_ModifySplit.c │ ├── TMainForm_LoadSetting_ListLBox_Font_SetName.c │ ├── TMainForm_NewVal_OnPaste.c │ ├── TMainForm_OnShowWindow.c │ ├── TMainForm_SetLockVisible_ModifyLockName.c │ └── TMainForm_SubjectAccess_FixDirSameChildren.c ├── Menu │ ├── AppendDebugWithoutMouseOverModeMenu.c │ ├── AppendToolMenu.c │ ├── InitializeMenuId.c │ ├── ModifyVersionString.c │ ├── TMainForm_LoadSetting_SetUserMode.c │ ├── TMainForm_OnCommand.c │ └── UpdateUserModeMenu.c ├── TFindNameForm_ctor.c ├── TGuideForm_ctor.c ├── TMainForm_WindowProc.c ├── TMainForm_ctor.c ├── TMainForm_dtor.c └── TSearchForm_ctor.c ├── FixMaskBytes └── FixMaskBytes.c ├── FixOnParsingProcess ├── TSSGActionListner_OnParsingDoubleProcess.c └── TSSGActionListner_OnParsingProcess.c ├── FixRemoveSpace ├── Attach_FixRemoveSpace.c ├── TSSGCtrl_ByteArrayRemoveSpace.c ├── TSSGCtrl_TrimString.c └── TSSGCtrl_TrimStringByRef.c ├── FixRepeat ├── Attach_FixRepeat.c ├── TSSGCtrl_EnumReadSSR_SwitchTmpS_0.c ├── TSSGCtrl_LoopSSRFile_FixWordRepeat.c ├── TSSGCtrl_LoopSSRFile_Format.c ├── TSSGCtrl_ReadSSRFile_CheckSignedParam.c ├── TSSGCtrl_ReadSSRFile_CompareLoopCounter.c └── TSSGCtrl_ReadSSRFile_DestReserve.c ├── FixSingleInstance ├── Attach_FixSingleInstance.c └── IsSingleInstance.c ├── FixSplitElement ├── Attach_FixSplitElement.c └── SplitElement.c ├── FixTitleSelectForm ├── Attach_FixTitleSelectForm.c ├── LCMapStringJISX0213.c └── TTitleSelectForm_FormCreate.c ├── FixToggleByteArray ├── Attach_FixToggleByteArray.c └── FixToggleByteArray.c ├── FixTraceAndCopy ├── Attach_FixTraceAndCopy.c ├── FixTraceAndCopySetting.c └── FixTraceAndCopyWrite.c ├── ForceFunnel ├── Attach_ForceFunnel.c ├── TSSBitList_Write_CheckFunnel.c ├── TSSBundleFloatCalc_Write_CheckFunnel.c ├── TSSDoubleList_WriteOne_CheckFunnel.c ├── TSSDoubleList_Write_CheckFunnel.c ├── TSSDoubleToggle_Write_CheckFunnel.c ├── TSSFloatCalc_Write_CheckFunnel.c └── TSSString_Write_CheckFunnel.c ├── FormatNameString ├── Attach_FormatNameString.c └── FormatNameString.c ├── HintWindow ├── Attach_HintWindow.c ├── HintWindow.c ├── HintWindow.h └── commctrl.h ├── IsBadPtr ├── IsBadCodePtr.c ├── IsBadCodePtrEx.c ├── IsBadPtr.h ├── IsBadPtrSource.h ├── IsBadReadPtr.c ├── IsBadReadPtrEx.c ├── IsBadStringPtrA.c ├── IsBadStringPtrExA.c ├── IsBadStringPtrExW.c ├── IsBadStringPtrW.c ├── IsBadWritePtr.c └── IsBadWritePtrEx.c ├── Kernel32 ├── GetOSMajorVersion.c ├── GetProcessId.asm └── GetProcessIdCompatible.c ├── MinMaxParam ├── Attach_MinMaxParam.c ├── TSSCalc_Setting_CheckSignedSize.c ├── TSSCalc_Setting_MinMax.c └── TSSFloatCalc_Setting_MinMax.c ├── MsImg32 ├── AlphaBlend.asm └── AlphaBlendCompatible.c ├── NocachedMemoryList ├── Attach_NocachedMemoryList.c ├── TSSGCtrl_GetSSGDataFile_CheckNocacheParam.c ├── TSSGCtrl_GetSSGDataFile_FixSetSSGDataFile.c ├── TSSGCtrl_GetSSGDataFile_Parsing.c ├── TSSGCtrl_GetSSGDataFile_TrimString.c └── TSSGCtrl_GetSSGDataFile_UnicodeString.c ├── OnSSGCtrlCleared ├── Attach_OnSSGCtrlCleared.c └── OnSSGCtrlCleared.c ├── OptimizeAllocator ├── OptimizeAllocator.c └── OptimizeAllocator.h ├── OptimizeCRT ├── OptimizeCRT.c ├── _lstrcpyA.c ├── _lstrcpynA.c ├── _lstrlenA.c ├── bcb6_malloc.c ├── bcb6_snprintf.c ├── bcb6_strtod.c ├── bcb6_strtol.c └── bcb6_strtoul.c ├── OptimizeGuide ├── OptimizeGuide.c └── TGuideForm_Guide.c ├── OptimizeStringDivision ├── OptimizeStringDivision.c ├── TSSGCtrl_StrToProcessAccessElementVec_AppendNoEscapedChar.c ├── TStringDivision_Editing.c ├── TStringDivision_Find.c ├── TStringDivision_FindBack.c ├── TStringDivision_FindByVector.c ├── TStringDivision_Half.c ├── TStringDivision_IsLeadByteAtLowerUpper.c ├── TStringDivision_List.c ├── TStringDivision_Remove.c ├── TStringDivision_RemoveByMap.c ├── TStringDivision_ToString.c ├── TStringDivision_ToStringDouble.c ├── TStringDivision_Trim.c └── TStringDivision_WCList.c ├── Parsing ├── Attach_Parsing.c ├── Caller_Parsing.c ├── Caller_ParsingDouble.c ├── Caller_ParsingWithVal.c ├── CompareProcessMemory.h ├── CompareProcessMemoryA.c ├── CompareProcessMemoryT.h ├── CompareProcessMemoryW.c ├── DebugPrint.c ├── FillProcessMemory.c ├── FillProcessMemory.h ├── FindProcessMemory.h ├── FindProcessMemoryA.c ├── FindProcessMemoryT.h ├── FindProcessMemoryW.c ├── FindReverseProcessMemory.h ├── FindReverseProcessMemoryA.c ├── FindReverseProcessMemoryT.h ├── FindReverseProcessMemoryW.c ├── GetExportFunction.c ├── GetImportFunction.c ├── GetSectionAddress.c ├── GuidePrint.c ├── HashBytes.h ├── MoveProcessMemory.c ├── MoveProcessMemory.h ├── Parsing.c ├── Parsing61.c ├── Parsing61.h ├── ParsingDouble61.c ├── ReplaceDefine.c ├── TSSGCtrl_AddressNaming_ByteArrayReplaceDefine.c ├── TSSGCtrl_AddressNaming_OpenProcess.c ├── TSSGCtrl_AddressNaming_ReplaceDefineDynamic.c ├── TSSGCtrl_EnumReadSSG_ReplaceDefine.c ├── TSSGCtrl_Funneling_IsEnabled.c ├── TSSGCtrl_Funneling_ReplaceDefineDynamic.c ├── TSSGCtrl_Funneling_Write.c ├── TSSGCtrl_GetAddress_SaveAddress.c ├── TSSGCtrl_GetSSGDataFile_OpenProcess.c ├── TSSGCtrl_IsEnabled_GetAttribute.c ├── TSSGCtrl_IsRemoteProcess.c ├── TSSGCtrl_LoopSSRFile_ReplaceDefine.c ├── TSSGCtrl_OpenProcess.c ├── TSSGCtrl_ReadSSRFile_ReplaceDefine.c ├── TSSGCtrl_StrToProcessAccessElementVec_ByteArrayReplaceDefine.c ├── Unescape.c ├── Unescape.h ├── Wait.c ├── fnv1a.h ├── fnv1a32.c ├── fnv1a32combine.c ├── fnv1a64.c ├── fnv1a64combine.c └── ntstatus.h ├── Plugin ├── Plugin.c └── Plugin.h ├── ProcessMonitor ├── Attach_ProcessMonitor.c ├── FindWindowExceptInvalids.c ├── FindWindowExceptInvalids.h ├── GetFileTitlePointer.h ├── GetFileTitlePointerA.c ├── GetFileTitlePointerT.h ├── GetFileTitlePointerW.c ├── LoadHeapList.c ├── LoadHeapList_Heap32List.c ├── LoadHeapList_HeapWalk.c ├── LoadHeapList_Undocumented.c ├── ProcessInfoValidation.c ├── ProcessInfoValidation.h ├── ProcessMonitor.c ├── ProcessMonitor.h ├── TProcessCtrl_Attach.c ├── TProcessCtrl_FindProcess.c ├── TSearchForm_AddressLBoxDblClick_SubjectAccess.c ├── TSearchForm_AdjustValToString_GetStart.c ├── TSearchForm_DrawCanvas.c └── TSearchReportListner_OnReport_InvokeDrawProgress.c ├── RepeatIndex ├── Attach_RepeatIndex.c ├── TSSGCtrl_EnumReadSSG_SetSubjectProperty.c ├── TSSGCtrl_EnumReadSSG_repeat_ReadSSRFile.c ├── TSSGCtrl_EnumReadSSG_replace_EnumReadSSG.c ├── TSSGCtrl_ReadADJFile_EnumReadSSG.c ├── TSSGCtrl_ReadSSG_EnumReadSSG.c ├── TSSGCtrl_ReadSSRFile_ReserveLoopIndex.c └── TSSGCtrl_ReadSSRFile_StoreLoopIndex.c ├── ShowErrorMessage ├── Attach_ShowErrorMessage.c ├── ErrorMessage.c └── ErrorMessage.h ├── SideBySideComCtl32 └── SideBySideComCtl32.c ├── SnapWindow ├── SnapWindow.c └── SnapWindow.h ├── StringSubject ├── Attach_StringSubject.c ├── TSSString_Read_TranscodeString.c ├── TSSString_Read_terminate_Data.c ├── TSSString_Setting_CheckCodePage.c └── TSSString_string_reserve_MapToCodePage.c ├── SubjectProperty ├── Attach_SubjectProperty.c ├── SSGSubjectProperty.c ├── SSGSubjectProperty.h └── TSSGSubject_ctor.c ├── SubjectStringTable ├── Attach_SubjectStringTable.c ├── SubjectStringOperator.c ├── SubjectStringOperator.h ├── SubjectStringTable.c ├── SubjectStringTable.h ├── TSSGCtrl_Open.c ├── TSSGCtrl_ReadSSG_ctor.c └── TSSubject_string_ctor.c ├── ToolTip ├── ToolTip.c ├── ToolTip.h └── commctrl.h ├── TranscodeMultiByte ├── TranscodeMultiByte.c └── TranscodeMultiByte.h ├── Verbose ├── verbose.c └── verbose.h ├── WaitCursor ├── WaitCursor.c └── WaitCursor.h ├── crc32 ├── clean.bat ├── crc32.c ├── crc32.dsp ├── crc32.dsw ├── crc32.h ├── crc32.sln ├── crc32.vcxproj ├── crc32.vcxproj.filters └── include │ └── endianness.h ├── crt ├── alias.asm ├── asmlib │ ├── cachesize.c │ ├── cputype.c │ ├── instrset.c │ ├── memcmp.asm │ ├── memcpy.asm │ ├── memmove.asm │ ├── memset.asm │ ├── store256bitisfaster.c │ ├── strcat.c │ ├── strcmp.c │ ├── strcpy.c │ ├── strcspn.c │ ├── stricmp.c │ ├── strlen.c │ ├── strlwrupr.c │ ├── strpbrk.c │ ├── strspn.c │ ├── strstr.c │ ├── unalignedisfaster.c │ ├── wmemcmp.asm │ └── wmemset.asm ├── atof.c ├── atoi64.c ├── atoitbl.c ├── atoitbl.h ├── bsearch.c ├── clock.c ├── difftime.c ├── digitstbl.h ├── digitstbla.c ├── digitstblt.h ├── digitstblw.c ├── errno.c ├── fbit.h ├── fbit │ ├── fband.c │ ├── fbnot32.c │ ├── fbor.c │ └── fbxor.c ├── getenv.c ├── gmtime.c ├── gmtime_asm.h ├── gmtime_c.h ├── i64toa.c ├── i64tot.h ├── i64tow.c ├── include │ ├── mm.inc │ └── vcruntime.inc ├── itoa.asm ├── itow.asm ├── localtime.c ├── longdouble │ ├── longdouble.h │ └── x64 │ │ ├── f2xm1.asm │ │ ├── fabs.asm │ │ ├── fadd.asm │ │ ├── fchs.asm │ │ ├── fclex.asm │ │ ├── fcom.asm │ │ ├── fcom_i2.asm │ │ ├── fcom_i4.asm │ │ ├── fcom_i8.asm │ │ ├── fcom_r8.asm │ │ ├── fcom_u8.asm │ │ ├── fcos.asm │ │ ├── fdec.asm │ │ ├── fdiv.asm │ │ ├── finc.asm │ │ ├── fld1.asm │ │ ├── fld_i2.asm │ │ ├── fld_i4.asm │ │ ├── fld_i8.asm │ │ ├── fld_r8.asm │ │ ├── fld_u8.asm │ │ ├── fldcw.asm │ │ ├── fldl2e.asm │ │ ├── fldl2t.asm │ │ ├── fldlg2.asm │ │ ├── fldln2.asm │ │ ├── fldpi.asm │ │ ├── fldz.asm │ │ ├── fmod.asm │ │ ├── fmul.asm │ │ ├── fpatan.asm │ │ ├── fptan.asm │ │ ├── frndint.asm │ │ ├── fscale.asm │ │ ├── fsin.asm │ │ ├── fsqrt.asm │ │ ├── fst_i2.asm │ │ ├── fst_i4.asm │ │ ├── fst_i8.asm │ │ ├── fst_r8.asm │ │ ├── fst_u8.asm │ │ ├── fstcw.asm │ │ ├── fsub.asm │ │ ├── ftst.asm │ │ ├── fxam.asm │ │ ├── fxtract.asm │ │ ├── fyl2x.asm │ │ ├── fyl2xp1.asm │ │ ├── ldexp.asm │ │ ├── proc1.inc │ │ ├── proc2.inc │ │ ├── proc3.inc │ │ └── proc4.inc ├── ltoa.c ├── ltot.h ├── ltow.c ├── math │ ├── acos.c │ ├── acosh.c │ ├── asin.c │ ├── asinh.c │ ├── atan.c │ ├── atan2.c │ ├── atanh.c │ ├── cbrt.c │ ├── ceil.c │ ├── chgsign.c │ ├── controlfp.c │ ├── copysign.c │ ├── cos.c │ ├── cosh.c │ ├── erf.c │ ├── exp.c │ ├── exp10.c │ ├── exp2.c │ ├── expm1.c │ ├── fabs.c │ ├── fdim.c │ ├── finite.c │ ├── floor.c │ ├── fma.c │ ├── fmax.c │ ├── fmin.c │ ├── fmod.c │ ├── fpclassify.c │ ├── fpconst.c │ ├── fpconst.h │ ├── fpreset.c │ ├── frexp.c │ ├── frexp10.c │ ├── ftol.asm │ ├── ftol3.c │ ├── hypot.c │ ├── ilogb.c │ ├── isinf.c │ ├── isnan.c │ ├── j0.c │ ├── j1.c │ ├── jn.c │ ├── ldexp.c │ ├── ldexp10.c │ ├── lgamma.c │ ├── llrint.c │ ├── llround.c │ ├── log.c │ ├── log10.c │ ├── log1p.c │ ├── log2.c │ ├── logb.c │ ├── lrint.c │ ├── lround.c │ ├── modf.c │ ├── nearbyint.c │ ├── nextafter.c │ ├── pow.c │ ├── remainder.c │ ├── remquo.c │ ├── rint.c │ ├── round.c │ ├── scalb.c │ ├── signbit.c │ ├── significand.c │ ├── sin.c │ ├── sinh.c │ ├── sqrt.c │ ├── statusfp.c │ ├── tan.c │ ├── tanh.c │ ├── tgamma.c │ └── trunc.c ├── mbschr.c ├── mbscspn.c ├── mbsdec.c ├── mbsichr.c ├── mbsicmp.c ├── mbsinc.c ├── mbsistr.c ├── mbslen.c ├── mbslwr.c ├── mbsnbcat.c ├── mbsnbcmp.c ├── mbsnbcnt.c ├── mbsnbcpy.c ├── mbsnbicmp.c ├── mbsnbset.c ├── mbsncat.c ├── mbsnccnt.c ├── mbsncmp.c ├── mbsncpy.c ├── mbsnextc.c ├── mbsnicmp.c ├── mbsninc.c ├── mbsnlen.c ├── mbsnset.c ├── mbspbrk.c ├── mbsrchr.c ├── mbsrev.c ├── mbsrichr.c ├── mbsristr.c ├── mbsrstr.c ├── mbsset.c ├── mbsspn.c ├── mbsspnp.c ├── mbsstr.c ├── mbstok.c ├── mbsupr.c ├── memccpy.c ├── memchr.c ├── memichr.c ├── memicmp.c ├── memmem.c ├── mempcpy.c ├── memrchr.c ├── memrichr.c ├── memrmem.c ├── msvc │ ├── chkstk.asm │ ├── isa_available_init.c │ ├── lldiv.c │ ├── lldvrm.c │ ├── llmul.c │ ├── llrem.c │ ├── llshl.c │ ├── llshr.c │ ├── memcmp.asm │ ├── memcpy.asm │ ├── memset.asm │ ├── ulldiv.c │ ├── ulldvrm.c │ ├── ullrem.c │ └── ullshr.c ├── putenv.c ├── qsort.c ├── random.c ├── random.h ├── snprintf.c ├── sntprintf.h ├── snwprintf.c ├── stpcpy.c ├── stpncpy.c ├── strcat.c ├── strchr.c ├── strcmp.c ├── strcpy.c ├── strcspn.c ├── strdec.c ├── strichr.c ├── stricmp.c ├── strinc.c ├── stristr.c ├── strlcat.c ├── strlcpy.c ├── strlen.c ├── strlwrupr.c ├── strncat.c ├── strncmp.c ├── strncpy.c ├── strnicmp.c ├── strnlen.c ├── strnset.c ├── strrchr.c ├── strrev.c ├── strrichr.c ├── strristr.c ├── strrstr.c ├── strset.c ├── strspn.c ├── strstr.c ├── strtod.c ├── strtoi64.c ├── strtok.c ├── tcpcpy.h ├── tcpncpy.h ├── tcscat.h ├── tcscpy.h ├── tcsistr.h ├── tcslcat.h ├── tcslcpy.h ├── tcsncat.h ├── tcsncpy.h ├── tcsnset.h ├── tcsrev.h ├── tcsristr.h ├── tcsrstr.h ├── tcsset.h ├── tcsstr.h ├── tcstod.h ├── tcstoi64.h ├── tcstoi64crt.h ├── tcstok.h ├── tgetenv.h ├── time.c ├── tmemmem.h ├── tmempcpy.h ├── tputenv.h ├── ttof.h ├── ttoi64.h ├── ucrt │ ├── big_integer.c │ ├── big_integer.h │ ├── corecrt_internal.h │ ├── corecrt_internal_fltintrn.c │ ├── corecrt_internal_fltintrn.h │ ├── corecrt_internal_securecrt.h │ ├── corecrt_internal_strtox.c │ ├── corecrt_internal_strtox.h │ ├── corecrt_stdio_config.h │ ├── fcvt.c │ ├── gcvt.c │ ├── strtod.c │ ├── tcstod.h │ └── wcstod.c ├── ui64toa.c ├── ui64tot.h ├── ui64tow.c ├── uitot │ ├── uitoa.c │ ├── uitot.h │ ├── uitot_source.h │ └── uitow.c ├── ultoa.c ├── ultot.h ├── ultow.c ├── utf16map.c ├── vsnprintf.c ├── vsntprintf.h ├── vsnwprintf.c ├── wcpcpy.c ├── wcpncpy.c ├── wcscat.c ├── wcschr.c ├── wcscmp.c ├── wcscpy.c ├── wcscspn.h ├── wcsdec.c ├── wcsichr.c ├── wcsicmp.c ├── wcsinc.c ├── wcsistr.c ├── wcslcat.c ├── wcslcpy.c ├── wcslen.c ├── wcslwrupr.c ├── wcsncat.c ├── wcsncmp.c ├── wcsncpy.c ├── wcsnicmp.c ├── wcsnlen.c ├── wcsnset.c ├── wcsrchr.c ├── wcsrev.c ├── wcsrichr.c ├── wcsristr.c ├── wcsrstr.c ├── wcsset.c ├── wcsspn.h ├── wcsstr.c ├── wcstod.c ├── wcstoi64.c ├── wcstok.c ├── wgetenv.c ├── wmemccpy.c ├── wmemchr.c ├── wmemcpy.c ├── wmemichr.c ├── wmemicmp.c ├── wmemmem.c ├── wmemmove.c ├── wmempcpy.c ├── wmemrchr.c ├── wmemrichr.c ├── wmemrmem.c ├── wputenv.c ├── wtof.c ├── wtoi64.c └── ymmconst.c ├── datetime.h ├── datetime_h.bat ├── export.h ├── export32.asm ├── export32_asm.bat ├── export64_asm.bat ├── extern ├── TApplication.c ├── TApplication.h ├── TBitmap.c ├── TBitmap.h ├── TBrush.c ├── TBrush.h ├── TCalcImage.c ├── TCalcImage.h ├── TCalcValBox.h ├── TCanvas.c ├── TCanvas.h ├── TCheckBox.c ├── TCheckBox.h ├── TComboBox.c ├── TComboBox.h ├── TControl.c ├── TControl.h ├── TDrawGrid.c ├── TDrawGrid.h ├── TEdit.c ├── TEdit.h ├── TFindNameForm.h ├── TFont.c ├── TFont.h ├── TGuideForm.h ├── THeapListData.h ├── TListBox.c ├── TListBox.h ├── TMainForm.c ├── TMainForm.h ├── TMainMenu.c ├── TMainMenu.h ├── TMenuItem.c ├── TMenuItem.h ├── TProcessAccessElementBase.h ├── TProcessAccessElementData.h ├── TProcessCtrl.c ├── TProcessCtrl.h ├── TProcessSearchReportListnerBase.h ├── TSSArg.h ├── TSSCalc.c ├── TSSCalc.h ├── TSSDir.c ├── TSSDir.h ├── TSSDoubleList.h ├── TSSDoubleToggle.h ├── TSSFloatCalc.h ├── TSSGActionListner.c ├── TSSGActionListner.h ├── TSSGAttributeElement.c ├── TSSGAttributeElement.h ├── TSSGAttributeSelector.c ├── TSSGAttributeSelector.h ├── TSSGCtrl.c ├── TSSGCtrl.h ├── TSSGScriptStruct.c ├── TSSGScriptStruct.h ├── TSSGSubject.c ├── TSSGSubject.h ├── TSSSplit.h ├── TSSString.c ├── TSSString.h ├── TSSToggle.c ├── TSSToggle.h ├── TShiftState.h ├── TStringDivision.c ├── TStringDivision.h ├── TTitleSelectForm.c ├── TTitleSelectForm.h ├── TWinControl.c ├── TWinControl.h ├── bcb6_errno.c ├── bcb6_errno.h ├── bcb6_fastcall_bridge.c ├── bcb6_fastcall_bridge.h ├── bcb6_malloc.h ├── bcb6_operator.c ├── bcb6_operator.h ├── bcb6_std.h ├── bcb6_std_allocator.c ├── bcb6_std_allocator.h ├── bcb6_std_deque.c ├── bcb6_std_deque.h ├── bcb6_std_list.c ├── bcb6_std_list.h ├── bcb6_std_map.c ├── bcb6_std_map.h ├── bcb6_std_set.h ├── bcb6_std_stack.c ├── bcb6_std_stack.h ├── bcb6_std_string.c ├── bcb6_std_string.h ├── bcb6_std_vector.c ├── bcb6_std_vector.h ├── bcb6_std_vector_byte.c ├── bcb6_std_vector_dword.c ├── bcb6_std_vector_string.c ├── bcb6_std_vector_string.h ├── bcb6_std_vector_template.h ├── functions.c └── xx.h ├── include ├── ApplicationMessage.h ├── ApplicationMessage.inc ├── BuildDate.h ├── endianness.h ├── noinline_wchar.h ├── page.h └── tlhelp32fix.h ├── intrinsic.c ├── intrinsic.h ├── regex ├── c99 │ ├── stdbool.h │ └── stdint.h ├── crt │ ├── isctype.c │ ├── iswctype.c │ ├── wctype.c │ └── x86 │ │ ├── alloca16.c │ │ ├── chkstk.asm │ │ └── vcruntime.inc ├── glibc_COPYING ├── glibc_COPYING.LIB ├── glibc_LICENSES ├── glibc_README ├── glibc_version.h ├── include │ ├── alloca.h │ ├── intprops.h │ ├── langinfo.h │ ├── libc-config.h │ ├── sys │ │ └── param.h │ └── verify.h ├── posix │ ├── regcomp.c │ ├── regcomp.c.diff │ ├── regex.c │ ├── regex.h │ ├── regex.h.diff │ ├── regex_internal.c │ ├── regex_internal.h │ ├── regexec.c │ └── regexec.c.diff ├── regex.bpf ├── regex.bpr ├── regex.dsp ├── regex.dsw ├── regex.h ├── regex.sln ├── regex.vcxproj ├── regex.vcxproj.filters ├── regex.vcxproj.user ├── regex_msvc.c └── regex_msvc.h ├── resource.h ├── version.h ├── winmm.c ├── winmm.def ├── winmm.natvis ├── winmm.rc ├── winmm.sln ├── winmm.vcxproj ├── winmm.vcxproj.filters ├── winmm.vcxproj.user └── winmm_def.bat /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/README.md -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/AddEntryModule/AddEntryModule.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/AddEntryModule/AddEntryModule.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/AddEntryModule/Attach_AddEntryModule.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TProcessCtrl.h" 3 | 4 | EXTERN_C void __cdecl AddEntryModule(); 5 | 6 | #define CALL_REL32 (BYTE)0xE8 7 | #define JMP_REL32 (BYTE)0xE9 8 | #define NOP (BYTE)0x90 9 | 10 | EXTERN_C void __cdecl Attach_AddEntryModule() 11 | { 12 | // TProcessCtrl::LoadModuleList 13 | #if 1 14 | *(LPBYTE )0x004A4E4C = JMP_REL32; 15 | *(LPDWORD)0x004A4E4D = (DWORD)TProcessCtrl_LoadModuleList - (0x004A4E4D + sizeof(DWORD)); 16 | #else 17 | *(LPBYTE )0x004A50D7 = CALL_REL32; 18 | *(LPDWORD)0x004A50D8 = (DWORD)AddEntryModule - (0x004A50D8 + sizeof(DWORD)); 19 | *(LPBYTE )0x004A50DC = NOP; 20 | #endif 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/AddressNamingFmt/Attach_AddressNamingFmt.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | EXTERN_C BOOLEAN __fastcall TSSGCtrl_AddressNaming_OneRead(LPVOID tmpV_0, DWORD); 4 | 5 | #define NOP (BYTE)0x90 6 | #define CALL_REL32 (BYTE)0xE8 7 | #define JMP_REL32 (BYTE)0xE9 8 | #define PUSH_DWORD_PTR_EBP (WORD)0xB5FF 9 | 10 | EXTERN_C void __cdecl Attach_AddressNamingFmt() 11 | { 12 | // TSSGCtrl::AddressNaming 13 | *(LPDWORD)0x00504CA8 = 0x00841F0F; 14 | *(LPDWORD)0x00504CAC = 0;// nop 15 | *(LPBYTE )0x00504CB0 = JMP_REL32; 16 | 17 | *(LPWORD )0x0050512F = PUSH_DWORD_PTR_EBP; 18 | *(LPWORD )0x00505135 = PUSH_DWORD_PTR_EBP; 19 | *(LPDWORD)0x00505137 = 0xFFFFFF44;// -0xBC 20 | *(LPBYTE )0x0050513B = 0x8B;// mov ecx, 21 | *(LPBYTE )0x0050513C = 0x0E;// dword ptr [esi] 22 | *(LPDWORD)0x0050513E = (DWORD)TSSGCtrl_AddressNaming_OneRead - (0x0050513E + sizeof(DWORD)); 23 | } 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/AddressNamingFromFloat/AddressNamingFromFloat.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "bcb6_std_vector_string.h" 3 | 4 | const char* __fastcall AddressNamingFromFloat( 5 | vector_string const *const tmpV, 6 | double *const _Dst, 7 | double *const Val, 8 | double const *const tmpC, 9 | unsigned long const DataSize) 10 | { 11 | switch (DataSize) 12 | { 13 | case 4: 14 | *_Dst = *(const float *)tmpC; 15 | break; 16 | case 8: 17 | *_Dst = *tmpC; 18 | break; 19 | default: 20 | return NULL; 21 | } 22 | return string_c_str(&vector_at(tmpV, 5)); 23 | } 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/CommonList/TMainForm_SubjectAccess_CorrectListItemText.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TStringDivision.h" 3 | 4 | __declspec(naked) void __cdecl TMainForm_SubjectAccess_CorrectListItemText() 5 | { 6 | __asm 7 | { 8 | mov cl, byte ptr [esp + 4] 9 | push 005E0D50H 10 | cmp cl, '+' 11 | je L1 12 | rep ret 13 | 14 | align 16 15 | L1: 16 | mov cl, byte ptr [edx] 17 | inc edx 18 | test cl, cl 19 | jz L2 20 | cmp cl, '=' 21 | jne L1 22 | mov ecx, edx 23 | call TrimLeftSpace 24 | mov edx, eax 25 | lea eax, [ebp - 176] 26 | ret 27 | 28 | align 16 29 | L2: 30 | dec edx 31 | ret 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/CommonList/TMainForm_SubjectAccess_StoreFileNamePrefix.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSGCtrl.h" 3 | 4 | __declspec(naked) void __cdecl TMainForm_SubjectAccess_StoreFileNamePrefix() 5 | { 6 | __asm 7 | { 8 | mov eax, dword ptr [esp + 12] 9 | mov edx, dword ptr [esp + 16] 10 | mov cl, byte ptr [eax] 11 | cmp cl, '+' 12 | je L2 13 | cmp cl, '*' 14 | jne L1 15 | cmp dword ptr [esp], 005020EFH 16 | je L2 17 | L1: 18 | mov byte ptr [esp + 64], cl 19 | jmp dword ptr [TSSGCtrl_GetSSGDataFile] 20 | 21 | align 16 22 | L2: 23 | push esi 24 | push edi 25 | mov edi, eax 26 | lea esi, [eax + 1] 27 | mov byte ptr [esp + 8 + 64], cl 28 | mov ecx, edx 29 | dec edx 30 | sub ecx, eax 31 | rep movsb 32 | mov dword ptr [esp + 8 + 16], edx 33 | pop edi 34 | pop esi 35 | jmp dword ptr [TSSGCtrl_GetSSGDataFile] 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/CommonList/TSSDoubleList_Read_ToULongDef.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSGCtrl.h" 3 | 4 | __declspec(naked) void __cdecl TSSDoubleList_Read_ToULongDef() 5 | { 6 | static const DWORD JumpTable[] = { 7 | 0x004C5209, 8 | 0x004C5512, 9 | 0x004C7A1E, 10 | }; 11 | 12 | __asm 13 | { 14 | #define Default (esp + 8) 15 | 16 | lea edx, [Default] 17 | movzx ecx, cl 18 | push ecx 19 | push 0 20 | push edx 21 | push eax 22 | call strtoul 23 | pop edx 24 | add esp, 8 25 | pop ecx 26 | cmp edx, dword ptr [Default] 27 | sbb edx, edx 28 | jz L1 29 | rep ret 30 | 31 | align 16 32 | L1: 33 | add esp, 12 34 | mov eax, reINDEX_ERROR 35 | jmp dword ptr [offset JumpTable + ecx] 36 | ud2 37 | 38 | #undef Default 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/CommonList/TSSGCtrl_AddressNaming_CommonList.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "bcb6_std_string.h" 3 | 4 | __declspec(naked) void __cdecl TSSGCtrl_AddressNaming_CommonList() 5 | { 6 | __asm 7 | { 8 | #define Src (esp + 4) 9 | #define Default (esp + 8) 10 | 11 | mov ecx, [Src] 12 | lea eax, [Default] 13 | push 0 14 | push eax 15 | push [ecx]bcb6_std_string._M_start 16 | call strtoul 17 | pop edx 18 | add esp, 8 19 | cmp edx, [Default] 20 | sbb edx, edx 21 | ret 8 22 | 23 | #undef Default 24 | #undef Src 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/CommonList/TSSGCtrl_EnumReadSSR_SwitchCommonList.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if 0 4 | __declspec(naked) void __cdecl TSSGCtrl_EnumReadSSR_SwitchCommonList() 5 | { 6 | static const DWORD X005009AF = 0x005009AF; 7 | static const DWORD X00500C13 = 0x00500C13; 8 | 9 | __asm 10 | { 11 | cmp al, '+' - 'R' 12 | je L1 13 | cmp al, '*' - 'R' 14 | je L1 15 | jmp dword ptr [X00500C13] 16 | ud2 17 | 18 | align 16 19 | L1: 20 | push -1 21 | push 0 22 | jmp dword ptr [X005009AF] 23 | ud2 24 | } 25 | } 26 | #endif 27 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/DwmAPI/DwmAPI.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | extern DWORD __stdcall GetOSMajorVersion(); 5 | 6 | BOOL __stdcall GetWindowRectangle(IN HWND hWnd, OUT LPRECT lpRect) 7 | { 8 | return GetOSMajorVersion() >= 6 ? 9 | DwmGetWindowAttribute(hWnd, DWMWA_EXTENDED_FRAME_BOUNDS, lpRect, sizeof(RECT)) == S_OK : 10 | GetWindowRect(hWnd, lpRect); 11 | } 12 | 13 | BOOL __stdcall GetWindowMargin(IN HWND hWnd, OUT LPRECT lpRect) 14 | { 15 | RECT rc; 16 | 17 | if (GetOSMajorVersion() >= 6 && 18 | DwmGetWindowAttribute(hWnd, DWMWA_EXTENDED_FRAME_BOUNDS, &rc, sizeof(RECT)) == S_OK && 19 | GetWindowRect(hWnd, lpRect)) 20 | { 21 | lpRect->left -= rc.left ; 22 | lpRect->top -= rc.top ; 23 | lpRect->right -= rc.right ; 24 | lpRect->bottom -= rc.bottom; 25 | return TRUE; 26 | } 27 | return FALSE; 28 | } 29 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/EditBinEx.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/EditBinEx/EditBinEx.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/EditBinEx.dsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/EditBinEx/EditBinEx.dsp -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/EditBinEx.dsw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/EditBinEx/EditBinEx.dsw -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/EditBinEx.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/EditBinEx/EditBinEx.txt -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/EditBinEx.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/Internal.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | BOOL ValidateCheckSum(LPVOID BaseAddress, DWORD FileSize, PIMAGE_NT_HEADERS NtHeaders); 8 | void UpdateCheckSum(LPVOID BaseAddress, DWORD FileSize, PIMAGE_NT_HEADERS NtHeaders); 9 | BOOL GetFileOffsetFromRVA(PIMAGE_NT_HEADERS NtHeaders, DWORD RVA, PDWORD FileOffset); 10 | BOOL GetDecimalNumber(LPCWSTR lpString, LPDWORD lpdwNumber); 11 | BOOL GetDwordNumber(LPCWSTR lpString, LPDWORD lpdwNumber); 12 | 13 | #ifdef __cplusplus 14 | } 15 | #endif 16 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/IsBadPtr/IsBadPtr.asm: -------------------------------------------------------------------------------- 1 | .386 2 | .model flat, c 3 | 4 | extrn IsBadReadPtrCompatible@8:proc 5 | extrn IsBadWritePtrCompatible@8:proc 6 | 7 | public _imp__IsBadReadPtr@8 8 | public _imp__IsBadWritePtr@8 9 | 10 | alias = 11 | alias = 12 | 13 | .const 14 | 15 | _imp__IsBadReadPtr@8 dword IsBadReadPtrCompatible@8 16 | _imp__IsBadWritePtr@8 dword IsBadWritePtrCompatible@8 17 | 18 | end 19 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/IsBadPtr/IsBadPtrSource.h: -------------------------------------------------------------------------------- 1 | #ifdef IsBadPtr 2 | #include 3 | 4 | #ifdef __BORLANDC__ 5 | #pragma warn -8058 6 | #endif 7 | 8 | BOOL __stdcall IsBadPtr( 9 | IN LPVOID lp, 10 | IN UINT_PTR ucb) 11 | { 12 | if (ucb) 13 | { 14 | LPVOID end; 15 | 16 | end = (LPBYTE)lp + ucb; 17 | do 18 | { 19 | MEMORY_BASIC_INFORMATION mbi; 20 | 21 | if (!VirtualQuery(lp, &mbi, sizeof(mbi))) 22 | return TRUE; 23 | if (!IsValidProtect(mbi.Protect)) 24 | return TRUE; 25 | lp = (LPBYTE)mbi.BaseAddress + mbi.RegionSize; 26 | } while (lp < end); 27 | } 28 | return FALSE; 29 | } 30 | #endif 31 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/IsBadPtr/IsBadReadPtr.c: -------------------------------------------------------------------------------- 1 | #define IsBadPtr IsBadReadPtrCompatible 2 | 3 | #define IsReadableProtect(Protect) ( \ 4 | ((Protect) & ( \ 5 | PAGE_READONLY | \ 6 | PAGE_READWRITE | \ 7 | PAGE_WRITECOPY | \ 8 | PAGE_EXECUTE_READ | \ 9 | PAGE_EXECUTE_READWRITE | \ 10 | PAGE_EXECUTE_WRITECOPY)) && \ 11 | !((Protect) & ( \ 12 | PAGE_NOACCESS | \ 13 | PAGE_GUARD))) 14 | 15 | #define IsValidProtect IsReadableProtect 16 | 17 | #include "IsBadPtrSource.h" 18 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/IsBadPtr/IsBadWritePtr.c: -------------------------------------------------------------------------------- 1 | #define IsBadPtr IsBadWritePtrCompatible 2 | 3 | #define IsWritableProtect(Protect) ( \ 4 | ((Protect) & ( \ 5 | PAGE_READWRITE | \ 6 | PAGE_WRITECOPY | \ 7 | PAGE_EXECUTE_READWRITE | \ 8 | PAGE_EXECUTE_WRITECOPY)) && \ 9 | !((Protect) & ( \ 10 | PAGE_NOACCESS | \ 11 | PAGE_GUARD))) 12 | 13 | #define IsValidProtect IsWritableProtect 14 | 15 | #include "IsBadPtrSource.h" 16 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/Release/EditBinEx.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/EditBinEx/Release/EditBinEx.exe -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/RemoveDebugSection.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | DWORD RemoveDebugSection(PVOID BaseAddress, DWORD FileSize, PIMAGE_NT_HEADERS NtHeaders, BOOL PE32Plus, BOOL HasCheckSum); 8 | 9 | #ifdef __cplusplus 10 | } 11 | #endif 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/SetDelayImport.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | DWORD SetDelayImport(PVOID BaseAddress, DWORD FileSize, PIMAGE_NT_HEADERS NtHeaders, BOOL PE32Plus, BOOL HasCheckSum, LPWSTR lpParameter); 8 | 9 | #ifdef __cplusplus 10 | } 11 | #endif 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/SetLastWriteTime.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | DWORD SetLastWriteTime(HANDLE hFile, LPFILETIME lpLastWriteTime, LPWSTR lpParameter); 8 | 9 | #ifdef __cplusplus 10 | } 11 | #endif 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/SetLinkerVersion.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | DWORD SetLinkerVersion(PVOID BaseAddress, DWORD FileSize, PIMAGE_NT_HEADERS NtHeaders, BOOL HasCheckSum, LPWSTR lpParameter); 8 | 9 | #ifdef __cplusplus 10 | } 11 | #endif 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/SetOperatingSystemVersion.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | UINT SetOperatingSystemVersion(PVOID BaseAddress, DWORD FileSize, PIMAGE_NT_HEADERS NtHeaders, BOOL HasCheckSum, LPWSTR lpParameter); 8 | 9 | #ifdef __cplusplus 10 | } 11 | #endif 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/SetTimeDateStamp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | DWORD SetTimeDateStamp(PVOID BaseAddress, DWORD FileSize, PIMAGE_NT_HEADERS NtHeaders, BOOL PE32Plus, BOOL HasCheckSum, LPWSTR lpParameter); 8 | 9 | #ifdef __cplusplus 10 | } 11 | #endif 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/crt/ParseArgument.h: -------------------------------------------------------------------------------- 1 | #ifndef _PARSEARGUMENT_H_ 2 | #define _PARSEARGUMENT_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | char ** __stdcall ParseArgumentA(HANDLE hHeap, const char *lpParameters, int *argc); 15 | wchar_t ** __stdcall ParseArgumentW(HANDLE hHeap, const wchar_t *lpParameters, int *argc); 16 | 17 | #ifdef _UNICODE 18 | #define ParseArgument ParseArgumentW 19 | #else 20 | #define ParseArgument ParseArgumentA 21 | #endif 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | 27 | #endif // _PARSEARGUMENT_H_ 28 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/crt/ParseArgumentA.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | 5 | #define SHRINK_BUFFER 1 6 | #include "ParseArgumentT.h" 7 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/crt/ParseArgumentW.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | 9 | #define SHRINK_BUFFER 1 10 | #include "ParseArgumentT.h" 11 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/crt/chkesp.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) void __cdecl _chkesp() 2 | { 3 | __asm 4 | { 5 | jz L1 6 | int 3 7 | L1: 8 | rep ret 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/crt/memset.h: -------------------------------------------------------------------------------- 1 | #ifndef memset 2 | #if _MSC_VER > 1200 3 | #include 4 | #pragma intrinsic(__stosb) 5 | #elif !defined(__stosb) 6 | #define __stosb(Dest, Data, Count) \ 7 | do \ 8 | { \ 9 | unsigned char *_Dest = Dest; \ 10 | unsigned char _Data = Data; \ 11 | size_t _Count = Count; \ 12 | \ 13 | __asm mov ecx, dword ptr [_Count] \ 14 | __asm mov al, byte ptr [_Data] \ 15 | __asm mov edi, dword ptr [_Dest] \ 16 | __asm rep stosb \ 17 | } while (0) 18 | #endif 19 | #define memset(dest, c, count) __stosb((void *)(dest), (unsigned char)(int)(c), (size_t)(count)) 20 | #endif 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/crt/strnlen.h: -------------------------------------------------------------------------------- 1 | #ifndef strnlen 2 | #define strnlen inline_strnlen 3 | #if _MSC_VER >= 600 4 | __forceinline 5 | #else 6 | static __inline 7 | #endif 8 | char *inline_strnlen(const char *string, size_t maxlen) 9 | { 10 | __asm 11 | { 12 | mov eax, dword ptr [maxlen] 13 | test eax, eax 14 | jz L1 15 | mov edi, dword ptr [string] 16 | mov edx, eax 17 | mov ecx, eax 18 | xor eax, eax 19 | repne scasb 20 | setne al 21 | xor ecx, -1 22 | add eax, edx 23 | add eax, ecx 24 | L1: 25 | } 26 | } 27 | #endif 28 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/crt/wcslen.h: -------------------------------------------------------------------------------- 1 | #if _MSC_VER > 1200 2 | #include 3 | #pragma intrinsic(wcslen) 4 | #elif !defined(wcslen) 5 | #define wcslen inline_wcslen 6 | #if _MSC_VER >= 600 7 | __forceinline 8 | #else 9 | static __inline 10 | #endif 11 | size_t inline_wcslen(const wchar_t *string) 12 | { 13 | __asm 14 | { 15 | mov edi, dword ptr [string] 16 | or ecx, -1 17 | xor eax, eax 18 | repne scasw 19 | dec eax 20 | inc ecx 21 | xor eax, ecx 22 | } 23 | } 24 | #endif 25 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/crt/wcsnicmp.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define iswlower(c) ((unsigned)((c) - 'a') < 'z' - 'a' + 1) 4 | #define iswupper(c) ((unsigned)((c) - 'A') < 'Z' - 'A' + 1) 5 | 6 | int __cdecl _wcsnicmp(const wchar_t *string1, const wchar_t *string2, size_t count) 7 | { 8 | unsigned int ret, c; 9 | 10 | string1 += count; 11 | string2 += count; 12 | count ^= -1; 13 | ret = 0; 14 | if (++count) 15 | do 16 | while (ret = (unsigned int)string1[count] - (c = string2[count])) 17 | if (!c || !++count) 18 | goto DONE; 19 | while (ret != 'a' - 'A' ? ret == 'A' - 'a' && iswlower(c) : iswupper(c)); 20 | DONE: 21 | return ret; 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/crt/wcsnlen.h: -------------------------------------------------------------------------------- 1 | #ifndef wcsnlen 2 | #define wcsnlen inline_wcsnlen 3 | #if _MSC_VER >= 600 4 | __forceinline 5 | #else 6 | static __inline 7 | #endif 8 | wchar_t *inline_wcsnlen(const wchar_t *string, size_t maxlen) 9 | { 10 | __asm 11 | { 12 | mov eax, dword ptr [maxlen] 13 | test eax, eax 14 | jz L1 15 | mov edi, dword ptr [string] 16 | mov edx, eax 17 | mov ecx, eax 18 | xor eax, eax 19 | repne scasw 20 | setne al 21 | xor ecx, -1 22 | add eax, edx 23 | add eax, ecx 24 | L1: 25 | } 26 | } 27 | #endif 28 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EditBinEx/crt/wmemcpy.h: -------------------------------------------------------------------------------- 1 | #ifndef wmemcpy 2 | #if _MSC_VER > 1200 3 | #include 4 | #pragma intrinsic(__movsw) 5 | #elif !defined(__movsw) 6 | #define __movsw(Destination, Source, Count) \ 7 | do \ 8 | { \ 9 | unsigned short * _Destination = Destination; \ 10 | const unsigned short *_Source = Source; \ 11 | size_t _Count = Count; \ 12 | \ 13 | __asm mov ecx, dword ptr [_Count] \ 14 | __asm mov esi, dword ptr [_Source] \ 15 | __asm mov edi, dword ptr [_Destination] \ 16 | __asm rep movsw \ 17 | } while (0) 18 | #endif 19 | #define wmemcpy __movsw 20 | #endif 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EnumReadSSG/Attribute_error_skip.h: -------------------------------------------------------------------------------- 1 | #include 2 | #define USING_NAMESPACE_BCB6_STD 3 | #include "bcb6_std_string.h" 4 | #include "TSSGCtrl.h" 5 | #include "TSSGSubject.h" 6 | #include "TSSGAttributeElement.h" 7 | 8 | __inline void Attribute_error_skip_open(TSSGCtrl *this) 9 | { 10 | TOnErrorAttribute *lpNewErrorSkip; 11 | 12 | lpNewErrorSkip = new_TChildRWAttribute(); 13 | if (lpNewErrorSkip == NULL) 14 | return; 15 | lpNewErrorSkip->type = atON_ERROR; 16 | TSSGAttributeSelector_PushElement(&this->attributeSelector, lpNewErrorSkip); 17 | } 18 | 19 | __inline void Attribute_error_skip_close(TSSGCtrl *this) 20 | { 21 | TSSGAttributeSelector_PopElementByType(&this->attributeSelector, atON_ERROR); 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/EnumReadSSG/TSSGCtrl_EnumReadSSG.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/EnumReadSSG/TSSGCtrl_EnumReadSSG.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ErrorSkip/TSSBundleList_Write_ErrorSkip.c: -------------------------------------------------------------------------------- 1 | #include "TSSGCtrl.h" 2 | #include "TSSGAttributeElement.h" 3 | 4 | #if 0 5 | __declspec(naked) void __cdecl TSSBundleList_Write_ErrorSkip() 6 | { 7 | __asm 8 | { 9 | #define ReturnAddress 004BF89EH 10 | #define SSGC (ebp + 12) 11 | #define this esi 12 | 13 | mov dword ptr [esp], offset L1 14 | jmp dword ptr [TSSGCtrl_OneWrite] 15 | 16 | L1: 17 | push ReturnAddress 18 | test al, al 19 | jnz L2 20 | mov ecx, dword ptr [SSGC] 21 | push atON_ERROR 22 | push this 23 | push ecx 24 | call dword ptr [TSSGCtrl_GetAttribute] 25 | add esp, 12 26 | test eax, eax 27 | setnz al 28 | L2: 29 | rep ret 30 | 31 | #undef ReturnAddress 32 | #undef SSGC 33 | #undef this 34 | } 35 | } 36 | #endif 37 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ErrorSkip/TSSGActionListner_OnSubjectWriteError_ErrorSkip.c: -------------------------------------------------------------------------------- 1 | #include "TSSGCtrl.h" 2 | #include "TSSGAttributeElement.h" 3 | 4 | extern const DWORD F0057AEDC; 5 | 6 | #if 0 7 | __declspec(naked) void __cdecl TSSGActionListner_OnSubjectWriteError_ErrorSkip() 8 | { 9 | __asm 10 | { 11 | #define _NULL 0 12 | #define SSGS (ebp + 12) 13 | 14 | push eax 15 | mov ecx, dword ptr [SSGS] 16 | push atON_ERROR 17 | push ecx 18 | push _NULL 19 | call dword ptr [TSSGCtrl_GetAttribute] 20 | test eax, eax 21 | jnz L1 22 | add esp, 12 23 | pop eax 24 | jmp dword ptr [F0057AEDC] 25 | 26 | L1: 27 | add esp, 12 + 4 28 | ret 29 | 30 | #undef _NULL 31 | #undef SSGS 32 | } 33 | } 34 | #endif 35 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixAdjustByString/FixAdjustByString.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | EXTERN_C void __cdecl FixAdjustByString() 4 | { 5 | // TSSString::ToByteCode 6 | *(LPBYTE)(0x0052B830 + 1) = 0xB6; 7 | } 8 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixAdjustByValue/Attach_FixAdjustByValue.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | EXTERN_C void __cdecl FixAdjustByValue(); 4 | 5 | EXTERN_C void __cdecl Attach_FixAdjustByValue() 6 | { 7 | // TSSList::ToByteCode 8 | *(LPDWORD)(0x0052A513 + 1) = (DWORD)FixAdjustByValue - (0x0052A513 + 1 + sizeof(DWORD)); 9 | } 10 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixAdjustByValue/FixAdjustByValue.c: -------------------------------------------------------------------------------- 1 | #include "TStringDivision.h" 2 | 3 | __declspec(naked) void __cdecl FixAdjustByValue() 4 | { 5 | __asm 6 | { 7 | mov cl, byte ptr [ebx + 78H] 8 | sub cl, 4 9 | jae L1 10 | neg cl 11 | shl cl, 3 12 | shl eax, cl 13 | L1: 14 | bswap eax 15 | mov dword ptr [esp + 8], eax 16 | jmp TStringDivision_ToString 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixClearChild/TSSDir_ClearChild.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "TSSDir.h" 3 | #include "TMainForm.h" 4 | 5 | void __cdecl TSSDir_ClearChild(TSSDir *this) 6 | { 7 | for (TSSGSubject **it = vector_begin(&this->childVec); it < vector_end(&this->childVec); it++) 8 | { 9 | if ((*it)->isLocked) 10 | TSSGCtrl_SetLock(&MainForm->ssgCtrl, FALSE, *it, NULL); 11 | delete_TSSGSubject(*it); 12 | } 13 | vector_dtor(&this->childVec); 14 | vector_ctor(&this->childVec); 15 | } 16 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixDoubleList/TSSGCtrl_GetSSGDataFile_ClearAtBreak.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "bcb6_std_vector_string.h" 3 | 4 | __declspec(naked) void __cdecl TSSGCtrl_GetSSGDataFile_ClearAtBreak() 5 | { 6 | __asm 7 | { 8 | #define tmpV (ebp - 30H) 9 | 10 | push 004EF423H 11 | lea ecx, [tmpV] 12 | jmp vector_string_clear 13 | 14 | #undef tmpV 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixDoubleList/TSSGCtrl_SetSSGDataFile_IgnoreEmptyData.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | __declspec(naked) void __cdecl TSSGCtrl_SetSSGDataFile_IgnoreEmptyData() 4 | { 5 | static const DWORD X004F0A51 = 0x004F0A51; 6 | 7 | __asm 8 | { 9 | mov eax, dword ptr [esp + 8] 10 | mov ecx, dword ptr [eax + 4] 11 | mov eax, dword ptr [eax ] 12 | cmp eax, ecx 13 | je L1 14 | push ebp 15 | mov ebp, esp 16 | sub esp, 1152 17 | jmp dword ptr [X004F0A51] 18 | 19 | L1: 20 | rep ret 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixFindName/TFindNameForm_FindStartBtnClick_FixGetSelectSubject.c: -------------------------------------------------------------------------------- 1 | #include "TMainForm.h" 2 | #undef MainForm 3 | 4 | TSSGSubject * __fastcall TFindNameForm_FindStartBtnClick_FixGetSelectSubject(const TMainForm *const MainForm) 5 | { 6 | return MainForm->selectSubject ? MainForm->selectSubject : &MainForm->ssgCtrl.rootSubject->super; 7 | } 8 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixGetDistractionString/Attach_FixGetDistractionString.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | EXTERN_C void __cdecl TSSGScriptStruct_EscapeDistraction(); 4 | 5 | EXTERN_C void __cdecl Attach_FixGetDistractionString() 6 | { 7 | // TSSGScriptStruct::GetDistractionString 8 | *(LPDWORD)(0x0051FED1 + 1) = (DWORD)TSSGScriptStruct_EscapeDistraction - (0x0051FED1 + 1 + sizeof(DWORD)); 9 | *(LPDWORD)(0x0051FF78 + 1) = (DWORD)TSSGScriptStruct_EscapeDistraction - (0x0051FF78 + 1 + sizeof(DWORD)); 10 | } 11 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixGetModuleFromName/Attach_FixGetModuleFromName.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "intrinsic.h" 3 | 4 | EXTERN_C void *__fastcall FixGetModuleFromName(void *); 5 | 6 | EXTERN_C void __cdecl Attach_FixGetModuleFromName() 7 | { 8 | // TProcessCtrl::GetModuleFromName 9 | *(LPBYTE )(0x004A6305 + 0) = 0x83;// sub 10 | *(LPBYTE )(0x004A6305 + 1) = 0x6B;// dword ptr [ebx + ...] 11 | *(LPBYTE )(0x004A6305 + 3) = 2; 12 | *(LPBYTE )(0x004A6309 + 0) = 0x8B ;// mov ecx, 13 | *(LPWORD )(0x004A6309 + 1) = BSWAP16(0x4D08);// this 14 | *(LPBYTE )(0x004A630C + 0) = 0xE8;// call 15 | *(LPDWORD)(0x004A630C + 1) = (DWORD)FixGetModuleFromName - (0x004A630C + 1 + sizeof(DWORD)); 16 | *(LPBYTE )(0x004A6311 + 1) = 0xB0;// ecx => eax 17 | } 18 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixGetModuleFromName/FixGetModuleFromName.c: -------------------------------------------------------------------------------- 1 | #include "TProcessCtrl.h" 2 | #include "TMainForm.h" 3 | 4 | TProcessCtrl *__fastcall FixGetModuleFromName(TProcessCtrl *const this) 5 | { 6 | LPSTR lpBuffer; 7 | HANDLE const hProcess = TProcessCtrl_Open(this, PROCESS_QUERY_INFORMATION | PROCESS_VM_READ); 8 | if (hProcess) 9 | CloseHandle(hProcess); 10 | else if (TMainForm_GetUserMode(MainForm) >= 3 && 11 | TSSGCtrl_GetSSGActionListner(&MainForm->ssgCtrl) && 12 | FormatMessageA( 13 | FORMAT_MESSAGE_MAX_WIDTH_MASK | 14 | FORMAT_MESSAGE_ALLOCATE_BUFFER | 15 | FORMAT_MESSAGE_IGNORE_INSERTS | 16 | FORMAT_MESSAGE_FROM_SYSTEM, 17 | NULL, 18 | GetLastError(), 19 | 0, 20 | (LPSTR)&lpBuffer, 21 | sizeof(double), 22 | NULL)) 23 | { 24 | TMainForm_Guide(lpBuffer, 0); 25 | LocalFree(lpBuffer); 26 | } 27 | return this; 28 | } 29 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixGetSSGDataFile/FixGetSSGDataFile.c: -------------------------------------------------------------------------------- 1 | #include "intrinsic.h" 2 | #define USING_NAMESPACE_BCB6_STD 3 | #include "bcb6_std_string.h" 4 | 5 | string * __stdcall FixGetSSGDataFile(string *const FileName) 6 | { 7 | char *begin, *end; 8 | size_t length; 9 | 10 | // it do not checking multibyte, 11 | // because space is not the lead and trail byte of codepage 932. 12 | 13 | begin = string_begin(FileName); 14 | while (__intrinsic_isspace_without_return(*begin)) 15 | begin++; 16 | end = string_end(FileName) - 1; 17 | while (end > begin && __intrinsic_isspace_without_return(*end)) 18 | end--; 19 | if (++end == string_end(FileName) && begin == string_begin(FileName)) 20 | return FileName; 21 | length = end - begin; 22 | if (begin != string_begin(FileName)) 23 | memcpy(string_begin(FileName), begin, length); 24 | *(string_end(FileName) = string_begin(FileName) + length) = '\0'; 25 | return FileName; 26 | } 27 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixListFEP/TSSGCtrl_OneRead_with_CheckIO_FEP.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSGCtrl.h" 3 | #include "TSSGSubject.h" 4 | 5 | BOOLEAN __cdecl TSSGCtrl_OneRead_with_CheckIO_FEP(TSSGCtrl *this, TSSGSubject *SSGS, HANDLE ProcessHandle, LPCVOID Address, LPDWORD Data, DWORD Size) 6 | { 7 | if (TSSGCtrl_OneRead(this, SSGS, ProcessHandle, (DWORD)Address, Data, Size)) 8 | { 9 | if (SSGS->withFEP) 10 | *Data = TSSGCtrl_CheckIO_FEP(this, SSGS, *Data, FALSE); 11 | return TRUE; 12 | } 13 | return FALSE; 14 | } 15 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixListFEP/TSSGCtrl_OneWrite_with_CheckIO_FEP.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSGCtrl.h" 3 | #include "TSSGSubject.h" 4 | 5 | BOOLEAN __cdecl TSSGCtrl_OneWrite_with_CheckIO_FEP(TSSGCtrl *this, TSSGSubject *SSGS, HANDLE ProcessHandle, LPCVOID Address, LPDWORD Data, DWORD Size) 6 | { 7 | extern BOOL FixTheProcedure; 8 | unsigned long Val = *Data; 9 | if (SSGS->withFEP) { 10 | Val = TSSGCtrl_CheckIO_FEP(this, SSGS, Val, TRUE); 11 | if (!FixTheProcedure) 12 | *Data = Val; 13 | } 14 | return TSSGCtrl_OneWrite(this, SSGS, ProcessHandle, (DWORD)Address, &Val, Size); 15 | } 16 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixLoadFromFile/TSSGCtrl_GetSSGScriptVec_AdjustLogFooter.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "bcb6_std_vector_string.h" 3 | 4 | static void __fastcall AdjustLogFooter(vector_string *NewLogVec); 5 | 6 | __declspec(naked) void __cdecl TSSGCtrl_GetSSGScriptVec_AdjustLogFooter() 7 | { 8 | __asm 9 | { 10 | #define NewLogVec (ebp - 60H) 11 | 12 | lea ecx, [NewLogVec] 13 | call AdjustLogFooter 14 | pop ecx 15 | mov eax, dword ptr [ebp + 10H] 16 | push eax 17 | mov eax, dword ptr [eax] 18 | jmp ecx 19 | 20 | #undef NewLogVec 21 | } 22 | } 23 | 24 | static void __fastcall AdjustLogFooter(vector_string *NewLogVec) 25 | { 26 | vector_byte_resize(NewLogVec, vector_byte_size(NewLogVec) + sizeof(string)); 27 | string_ctor(vector_end(NewLogVec) - 1); 28 | } 29 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixLoadFromFile/TStringFiler_LoadFromFile.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/FixLoadFromFile/TStringFiler_LoadFromFile.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixLoopByteArray/Caller_StrToProcessAccessElementVecWithoutRel.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSGCtrl.h" 3 | 4 | extern const BOOL EnableParserFix; 5 | 6 | __declspec(naked) void __cdecl Caller_StrToProcessAccessElementVecWithoutRel() 7 | { 8 | __asm 9 | { 10 | cmp EnableParserFix, FALSE 11 | je L1 12 | mov ecx, [esp ] 13 | mov edx, [esp + 4] 14 | movups xmm0, [esp + 8] 15 | movups xmm1, [esp + 8 + 0x10] 16 | push edx 17 | push offset L2// ReturnAddress 18 | movups xmmword ptr [esp + 8 ], xmm0 19 | movups xmmword ptr [esp + 8 + 0x10], xmm1 20 | mov dword ptr [esp + 8 + 0x20], 0 21 | mov dword ptr [esp + 8 + 0x24], ecx 22 | L1: 23 | jmp TSSGCtrl_StrToProcessAccessElementVec 24 | ud2 25 | 26 | align 16 27 | L2:// discard extra stack 28 | add esp, 8 29 | jmp dword ptr [esp + 0x20] 30 | ud2 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_CheckTreeSize.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_CheckTreeSize.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_DGridMouseMove_DrawTree.c: -------------------------------------------------------------------------------- 1 | #include "TMainForm.h" 2 | 3 | __declspec(naked) void __cdecl TMainForm_DGridMouseMove_DrawTree() 4 | { 5 | __asm 6 | { 7 | #define _NULL 0 8 | #define this ebx 9 | 10 | cmp [this]TMainForm.userMode, 4 11 | sbb eax, eax 12 | inc eax 13 | #if DRAWTREE_CONVENTION 14 | push eax 15 | push 0 16 | #else 17 | ror eax, 1 18 | push eax 19 | #endif 20 | push 0 21 | push _NULL 22 | push this 23 | call TMainForm_DrawTree 24 | #if !DRAWTREE_CONVENTION 25 | add esp, 16 26 | #endif 27 | ret 28 | 29 | #undef _NULL 30 | #undef this 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_DGridSelectCell.c: -------------------------------------------------------------------------------- 1 | #include 2 | #define USING_NAMESPACE_BCB6_STD 3 | #include "bcb6_std_vector.h" 4 | #include "TEdit.h" 5 | #include "TMainForm.h" 6 | #include "TSSGSubject.h" 7 | 8 | void __fastcall _TMainForm_DGridSelectCell(TMainForm *this, LPVOID Sender, int ACol, BOOLEAN *CanSelect, int ARow) 9 | { 10 | *CanSelect = FALSE; 11 | if ((unsigned int)ARow <= vector_size(&this->treeSubjectVec)) 12 | TEdit_SetFocus(this->HotKeyEdit); 13 | } 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_DrawTreeCell_FixLabelDrawX.c: -------------------------------------------------------------------------------- 1 | 2 | __declspec(naked) void __cdecl TMainForm_DrawTreeCell_FixLabelDrawX() 3 | { 4 | __asm 5 | { 6 | mov edx, 00444E79H// break 7 | mov eax, 00444E67H 8 | cmp byte ptr [edi + 60H], 3 9 | cmovne edx, eax 10 | cmovne eax, dword ptr [ebx + 518H] 11 | jmp edx 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_FormResize_CheckTreeSize.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | extern const DWORD _TControl_SetWidth; 4 | 5 | __declspec(naked) void __cdecl TMainForm_FormResize_CheckTreeSize() 6 | { 7 | __asm 8 | { 9 | #define NextCallAddress 00446E88H 10 | #define AllWidthCheck (esp + 8) 11 | #define MainForm ebx 12 | #define DGrid (ebx + 3A4H) 13 | #define Splitter (ebx + 2FCH) 14 | #define offsetof_Splitter_Left 40H 15 | 16 | mov dword ptr [AllWidthCheck], 1 17 | mov edx, dword ptr [Splitter] 18 | mov eax, dword ptr [DGrid] 19 | mov edx, dword ptr [edx + offsetof_Splitter_Left] 20 | push NextCallAddress 21 | jmp dword ptr [_TControl_SetWidth] 22 | 23 | #undef NextCallAddress 24 | #undef AllWidthCheck 25 | #undef MainForm 26 | #undef DGrid 27 | #undef Splitter 28 | #undef offsetof_Splitter_Left 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_HotKeyEditKeyDown.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_HotKeyEditKeyDown.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_M_CustomizeClick_ChainPrevRedrawCalcImage.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | extern const DWORD _STL_string_M_assign_dispatch; 4 | 5 | __declspec(naked) void __cdecl TMainForm_M_CustomizeClick_ChainPrevRedrawCalcImage() 6 | { 7 | __asm 8 | { 9 | mov eax, dword ptr [ebp - 1F4H] 10 | push eax 11 | push 0044B312H 12 | jmp dword ptr [_STL_string_M_assign_dispatch] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_M_TitleSelectClick_OpenSSG.c: -------------------------------------------------------------------------------- 1 | #include "TMainForm.h" 2 | 3 | extern const DWORD F004FCE80; 4 | 5 | /* 6 | void __cdecl TMainForm_M_TitleSelectClick_OpenSSG(TSSGCtrl &ssgCtrl, TSSGScriptStruct &selectScript, int &nowSelectSubjectIndex) 7 | { 8 | ChangeSubjectPanel(ssgCtrl::atDIR); 9 | nowSelectSubjectIndex = -2; 10 | ssgCtrl.OpenSSG(&selectScript); 11 | } 12 | */ 13 | __declspec(naked) void __cdecl TMainForm_M_TitleSelectClick_OpenSSG() 14 | { 15 | __asm 16 | { 17 | push atDIR 18 | push ebx 19 | call TMainForm_ChangeSubjectPanel 20 | add esp, 8 21 | mov [ebx]TMainForm.nowSelectSubjectIndex, -2 22 | jmp dword ptr [F004FCE80] 23 | ud2 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/DGrid/TMainForm_OnDGridLButtonDown.c: -------------------------------------------------------------------------------- 1 | #include "TMainForm.h" 2 | 3 | extern const DWORD F00559DB8; 4 | 5 | int TMainForm_DGridLButtonDownRow = -1; 6 | 7 | __declspec(naked) void __stdcall TMainForm_OnDGridLButtonDown(TMainForm *this, LPARAM lParam) 8 | { 9 | /* 10 | this->DGrid->MouseToCell(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), ACol, TMainForm_DGridLButtonDownRow); 11 | */ 12 | 13 | __asm 14 | { 15 | #define this (esp + 4) 16 | #define lParam (esp + 8) 17 | 18 | mov edx, dword ptr [lParam] 19 | mov eax, dword ptr [this] 20 | mov ecx, edx 21 | mov eax, dword ptr [eax + 932] 22 | shl edx, 16 23 | push ecx 24 | sar edx, 16 25 | push esp 26 | sar ecx, 16 27 | push offset TMainForm_DGridLButtonDownRow 28 | call dword ptr [F00559DB8] 29 | pop eax 30 | ret 8 31 | 32 | #undef this 33 | #undef lParam 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/MainForm/TMainForm_ChangeSubjectPanel_FixToggleStringEnterVisible.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | extern const DWORD F00580BBC; 4 | 5 | __declspec(naked) void __cdecl TMainForm_ChangeSubjectPanel_FixToggleStringEnterVisible() 6 | { 7 | __asm 8 | { 9 | call dword ptr [F00580BBC] 10 | xor edx, edx 11 | mov eax, dword ptr [ebx + 3E0H] 12 | jmp dword ptr [F00580BBC] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/MainForm/TMainForm_OnShowWindow.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TMainForm.h" 3 | #include "TWinControl.h" 4 | 5 | void __stdcall TMainForm_OnShowWindow(HWND hWnd, BOOL bShow, UINT nStatus) 6 | { 7 | TMainForm *lpForm; 8 | int nCmdShow; 9 | 10 | lpForm = MainForm; 11 | nCmdShow = bShow ? SW_SHOWNA : SW_HIDE; 12 | if (lpForm->findNameForm) 13 | ShowWindow(TWinControl_GetHandle(lpForm->findNameForm), nCmdShow); 14 | if (lpForm->searchForm && ((TWinControl *)lpForm->searchForm)->FVisible) 15 | ShowWindow(TWinControl_GetHandle(lpForm->searchForm), nCmdShow); 16 | if (lpForm->guideForm) 17 | ShowWindow(TWinControl_GetHandle(lpForm->guideForm), nCmdShow); 18 | } 19 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/MainForm/TMainForm_SubjectAccess_FixDirSameChildren.c: -------------------------------------------------------------------------------- 1 | #include "TMainForm.h" 2 | #include "TSSDir.h" 3 | 4 | __declspec(naked) void __cdecl TMainForm_SubjectAccess_FixDirSameChildren() 5 | { 6 | __asm 7 | { 8 | #define this ebx 9 | #define SelectS edi 10 | #define ArgType eax 11 | #define ssgCtrl_atDIR 8 12 | 13 | cmp ArgType, ssgCtrl_atDIR 14 | jne L1 15 | push SelectS 16 | call dword ptr [TSSDir_IsSameChildren] 17 | test al, al 18 | lea eax, [this + TMainForm.ssgCtrl] 19 | pop ecx 20 | jz L1 21 | push SelectS 22 | push eax 23 | call dword ptr [TSSGCtrl_IsChildRWProhibit] 24 | add esp, 8 25 | test al, al 26 | jz L2 27 | L1: 28 | jmp dword ptr [TMainForm_ChangeSubjectPanel] 29 | 30 | L2: 31 | rep ret 32 | 33 | #undef this 34 | #undef SelectS 35 | #undef ArgType 36 | #undef ssgCtrl_atDIR 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/Menu/AppendDebugWithoutMouseOverModeMenu.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/FixMainForm/Menu/AppendDebugWithoutMouseOverModeMenu.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/Menu/AppendToolMenu.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/FixMainForm/Menu/AppendToolMenu.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/Menu/ModifyVersionString.c: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include "TMainForm.h" 4 | #undef MainForm 5 | #include "TMenuItem.h" 6 | #include "version.h" 7 | 8 | const char lpVersion[] = "version : " VERSION_STRING; 9 | 10 | void __stdcall ModifyVersionString(TMainForm *MainForm) 11 | { 12 | TMenuItem_SetCaption(MainForm->M_Version, lpVersion); 13 | } 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/Menu/TMainForm_LoadSetting_SetUserMode.c: -------------------------------------------------------------------------------- 1 | void __cdecl UpdateUserModeMenu(); 2 | 3 | __declspec(naked) void __cdecl TMainForm_LoadSetting_SetUserMode() 4 | { 5 | __asm 6 | { 7 | dec dword ptr [ebx + 1CH] 8 | dec dword ptr [ebx + 1CH] 9 | dec dword ptr [ebx + 1CH] 10 | push 00437E31H 11 | jmp UpdateUserModeMenu 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/Menu/UpdateUserModeMenu.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TMainForm.h" 3 | #include "TMenuItem.h" 4 | 5 | extern WORD wNowValueDrawId; 6 | extern void __cdecl ClearGuideBuffer(); 7 | 8 | EXTERN_C void __cdecl UpdateUserModeMenu() 9 | { 10 | HMENU hMenu; 11 | MENUITEMINFOA mii; 12 | 13 | hMenu = TMenuItem_GetHandle(MainForm->M_UserMode); 14 | mii.cbSize = sizeof(mii); 15 | mii.fMask = MIIM_STATE; 16 | for (UINT item = 0; item <= 5; item++) 17 | { 18 | mii.fState = item != MainForm->userMode ? MFS_UNCHECKED : MFS_CHECKED; 19 | SetMenuItemInfoA(hMenu, item, TRUE, &mii); 20 | } 21 | mii.fState = MainForm->isNowValueDraw ? MFS_CHECKED : MFS_UNCHECKED; 22 | SetMenuItemInfoA(TMenuItem_GetHandle(MainForm->M_View), wNowValueDrawId, FALSE, &mii); 23 | ClearGuideBuffer();// shrink guiding buffer 24 | } 25 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/TFindNameForm_ctor.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TWinControl.h" 3 | #include "SnapWindow.h" 4 | 5 | static void __fastcall ctor(LPVOID this); 6 | 7 | __declspec(naked) void __cdecl TFindNameForm_ctor() 8 | { 9 | __asm 10 | { 11 | #define this (ebp - 4H) 12 | 13 | mov ecx, dword ptr [this] 14 | jmp ctor 15 | 16 | #undef this 17 | } 18 | } 19 | 20 | static void __fastcall ctor(LPVOID this) 21 | { 22 | HWND hWnd; 23 | 24 | hWnd = TWinControl_GetHandle(this); 25 | SetWindowLongA(hWnd, GWL_STYLE, GetWindowLongA(hWnd, GWL_STYLE) & ~WS_MINIMIZEBOX); 26 | 27 | #if SNAPWINDOW 28 | AttachSnapWindow(hWnd); 29 | #endif 30 | } 31 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/TGuideForm_ctor.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/FixMainForm/TGuideForm_ctor.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixMainForm/TSearchForm_ctor.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TWinControl.h" 3 | #include "SnapWindow.h" 4 | 5 | #pragma warning(disable:4733) 6 | 7 | static void __fastcall ctor(LPVOID this); 8 | 9 | __declspec(naked) void __cdecl TSearchForm_ctor() 10 | { 11 | __asm 12 | { 13 | #define this (ebp - 4H) 14 | 15 | mov ecx, dword ptr [this] 16 | call ctor 17 | mov eax, dword ptr [ebp - 40H] 18 | mov dword ptr fs:[0], eax 19 | ret 20 | 21 | #undef this 22 | } 23 | } 24 | 25 | static void __fastcall ctor(LPVOID this) 26 | { 27 | HWND hWnd; 28 | 29 | hWnd = TWinControl_GetHandle(this); 30 | SetWindowLongA(hWnd, GWL_STYLE, GetWindowLongA(hWnd, GWL_STYLE) & ~WS_MINIMIZEBOX); 31 | 32 | #if SNAPWINDOW 33 | AttachSnapWindow(hWnd); 34 | #endif 35 | } 36 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixOnParsingProcess/TSSGActionListner_OnParsingDoubleProcess.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/FixOnParsingProcess/TSSGActionListner_OnParsingDoubleProcess.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixOnParsingProcess/TSSGActionListner_OnParsingProcess.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/FixOnParsingProcess/TSSGActionListner_OnParsingProcess.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixRemoveSpace/TSSGCtrl_TrimString.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "bcb6_std_string.h" 3 | #include "TStringDivision.h" 4 | 5 | EXTERN_C string * __cdecl TSSGCtrl_TrimString(string *Result, TStringDivision *StringDivision, string *Src, string Token, char *Dest, unsigned long Option) 6 | { 7 | char *first, *last; 8 | 9 | string_dtor(&Token); 10 | first = string_begin(Src); 11 | last = TrimBlank(&first, string_end(Src)); 12 | return string_ctor_assign_cstr_with_length(Result, first, last - first); 13 | } 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixRemoveSpace/TSSGCtrl_TrimStringByRef.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "bcb6_std_string.h" 3 | 4 | __declspec(naked) void __cdecl TSSGCtrl_TrimStringByRef() 5 | { 6 | static const DWORD X004FFDA2 = 0x004FFDA2; 7 | 8 | __asm 9 | { 10 | lea ecx, [ebp - 18H] 11 | call string_trim_blank 12 | dec dword ptr [ebx + 1CH] 13 | dec dword ptr [ebx + 1CH] 14 | jmp dword ptr [X004FFDA2] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixRepeat/TSSGCtrl_ReadSSRFile_CheckSignedParam.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "intrinsic.h" 4 | #define USING_NAMESPACE_BCB6_STD 5 | #include "TSSGSubject.h" 6 | 7 | DWORD_DWORD __fastcall TSSGCtrl_ReadSSRFile_CheckSignedParam( 8 | vector_string const *const tmpV, 9 | TSSGSubject const *const SSGS, 10 | string *const __x, 11 | char const *const __s, 12 | void const *const __a) 13 | { 14 | string const *const psz4 = &vector_at(tmpV, 4); 15 | string_clear(__x);// "_" => "" 16 | return (DWORD_DWORD) 17 | { 18 | vector_size(tmpV), psz4 >= vector_end(tmpV) 19 | || string_size(psz4) != 6 20 | || *(LPDWORD)string_begin(psz4) != BSWAP32('sign') 21 | || *(LPWORD)&string_at(psz4, 4) != BSWAP16('ed') 22 | };// TRUE means unsigned because optimizing for JECXZ 23 | } 24 | 25 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixRepeat/TSSGCtrl_ReadSSRFile_CompareLoopCounter.c: -------------------------------------------------------------------------------- 1 | 2 | __declspec(naked) void __fastcall TSSGCtrl_ReadSSRFile_CompareLoopCounter(int unsign) 3 | { 4 | __asm 5 | {// loop if ecx is 0 6 | #define Step (ebp - 0xF8) 7 | #define End (ebp - 0xF4) 8 | #define i esi 9 | 10 | jecxz SIGNED 11 | 12 | cmp i , dword ptr [End] 13 | setae cl 14 | movzx ecx, cl 15 | ret 16 | 17 | align 16 18 | SIGNED: 19 | mov eax, i 20 | mov edx, dword ptr [End] 21 | cmp dword ptr [Step], 0 22 | cmovs eax, edx 23 | cmovs edx, i 24 | cmp eax, edx 25 | setge cl 26 | movzx ecx, cl 27 | ret 28 | 29 | #undef i 30 | #undef End 31 | #undef Step 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixRepeat/TSSGCtrl_ReadSSRFile_DestReserve.c: -------------------------------------------------------------------------------- 1 | 2 | __declspec(naked) long __fastcall TSSGCtrl_ReadSSRFile_DestReserve(int unsign) 3 | { 4 | __asm 5 | { 6 | #define Step (ebp - 0xF8) 7 | 8 | jecxz SIGNED 9 | xor edx, edx 10 | div dword ptr [Step] 11 | ret 12 | 13 | align 16 14 | SIGNED: 15 | cdq 16 | idiv dword ptr [Step] 17 | ret 18 | 19 | #undef Step 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixSingleInstance/Attach_FixSingleInstance.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "intrinsic.h" 3 | 4 | EXTERN_C BOOL __cdecl IsSingleInstance(); 5 | 6 | #define NOP (BYTE)0x90 7 | #define CALL_REL32 (BYTE)0xE8 8 | 9 | EXTERN_C void __cdecl Attach_FixSingleInstance() 10 | { 11 | // WinMain 12 | /* 13 | call IsSingleInstance ; 0040173D _ E8, ???????? 14 | test eax, eax ; 00401742 _ 85. C0 15 | jnz 0040177AH ; 00401744 _ 75, 34 16 | jmp 00401758H ; 00401746 _ EB, 10 17 | nop ; 00401748 _ 90 18 | */ 19 | *(LPBYTE )0x0040173D = CALL_REL32; 20 | *(LPDWORD)0x0040173E = (DWORD)IsSingleInstance - (0x0040173E + sizeof(DWORD)); 21 | *(LPWORD )0x00401742 = BSWAP16(0x85C0); 22 | *(LPDWORD)0x00401744 = BSWAP32(0x7534EB10); 23 | *(LPBYTE )0x00401748 = NOP; 24 | } 25 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixSingleInstance/IsSingleInstance.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | BOOL __cdecl IsSingleInstance() 4 | { 5 | #define lpMutexName (LPCSTR)0x006020C4 6 | 7 | SECURITY_DESCRIPTOR sd; 8 | 9 | if (InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION)) 10 | { 11 | if (SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE)) 12 | { 13 | SECURITY_ATTRIBUTES sa; 14 | HANDLE hMutex; 15 | 16 | sa.nLength = sizeof(sa); 17 | sa.lpSecurityDescriptor = &sd; 18 | sa.bInheritHandle = TRUE; 19 | if (hMutex = CreateMutexA(&sa, FALSE, lpMutexName)) 20 | { 21 | if (GetLastError() != ERROR_ALREADY_EXISTS) 22 | return TRUE; 23 | CloseHandle(hMutex); 24 | } 25 | } 26 | } 27 | return FALSE; 28 | 29 | #undef lpMutexName 30 | } 31 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixTitleSelectForm/LCMapStringJISX0213.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/FixTitleSelectForm/LCMapStringJISX0213.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixTitleSelectForm/TTitleSelectForm_FormCreate.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #define USING_NAMESPACE_BCB6_STD 4 | #include "TTitleSelectForm.h" 5 | #include "TFont.h" 6 | 7 | __declspec(naked) void __cdecl TTitleSelectForm_FormCreate() 8 | { 9 | static TTitleSelectForm * __fastcall FormCreate(TTitleSelectForm *this); 10 | 11 | #define _TTitleSelectForm_FormCreate 0x004714E8 12 | 13 | __asm 14 | { 15 | push _TTitleSelectForm_FormCreate 16 | mov ecx, eax 17 | jmp FormCreate 18 | } 19 | 20 | #undef _TTitleSelectForm_FormCreate 21 | } 22 | 23 | static TTitleSelectForm * __fastcall FormCreate(TTitleSelectForm *this) 24 | { 25 | TFont_Assign(this->FindLBox->FCanvas->FFont, this->FindLBox->FFont); 26 | TFont_Assign(this->KeyDGrid->FCanvas->FFont, this->KeyDGrid->FFont); 27 | TFont_Assign(this->TitleDGrid->FCanvas->FFont, this->TitleDGrid->FFont); 28 | return this; 29 | } 30 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixToggleByteArray/Attach_FixToggleByteArray.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TStringDivision.h" 3 | 4 | EXTERN_C void __cdecl FixToggleByteArray(); 5 | 6 | EXTERN_C void __cdecl Attach_FixToggleByteArray() 7 | { 8 | // TSSGCtrl::LoopCodeToByteCode 9 | #if 1 10 | *(LPBYTE )(0x0050F317 + 1) = dtESCAPE | dtBYTEARRAY; 11 | #else 12 | *(LPDWORD)(0x0050F35A + 1) = (DWORD)FixToggleByteArray - (0x0050F35A + 1 + sizeof(DWORD)); 13 | #endif 14 | 15 | // TSSGCtrl::MakeDataCode 16 | #if 1 17 | *(LPBYTE )(0x0050F62F + 1) = dtESCAPE | dtBYTEARRAY; 18 | #else 19 | *(LPDWORD)(0x0050F675 + 1) = (DWORD)FixToggleByteArray - (0x0050F675 + 1 + sizeof(DWORD)); 20 | #endif 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/FixTraceAndCopy/FixTraceAndCopyWrite.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | extern BOOL EnableParserFix; 4 | 5 | __declspec(naked) void __cdecl FixTraceAndCopyWrite() 6 | { 7 | __asm 8 | { 9 | mov eax, dword ptr [EnableParserFix] 10 | mov ecx, dword ptr [ebx] 11 | test eax, eax 12 | jz L1 13 | rep ret 14 | L1: 15 | jmp dword ptr [ecx + 4] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ForceFunnel/TSSBitList_Write_CheckFunnel.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSGCtrl.h" 3 | 4 | __declspec(naked) unsigned long __cdecl TSSBitList_Write_CheckFunnel() 5 | { 6 | __asm 7 | { 8 | #define SSGC (ebp + 0x0C) 9 | #define SSGS ebx 10 | #define Val (ebp - 0x90) 11 | 12 | mov ecx, dword ptr [Val] 13 | mov eax, dword ptr [SSGC] 14 | push ecx 15 | push SSGS 16 | push eax 17 | call TSSGCtrl_CheckFunnel 18 | add esp, 12 19 | mov eax, reNO_ERROR 20 | ret 21 | 22 | #undef Val 23 | #undef SSGS 24 | #undef SSGC 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ForceFunnel/TSSBundleFloatCalc_Write_CheckFunnel.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSArg.h" 3 | #include "TSSGCtrl.h" 4 | 5 | __declspec(naked) struct 6 | { 7 | bool CheckFunnel; 8 | HANDLE SHandle; 9 | } __cdecl TSSBundleFloatCalc_Write_CheckFunnel(ResErr result) 10 | { 11 | extern BOOL FixTheProcedure; 12 | __asm 13 | { 14 | #define Arg (ebp + 0x10) 15 | #define SSGC edi 16 | #define SSGS esi 17 | #define SHandle (ebp - 0x04) 18 | #define Val (ebp - 0x84) 19 | 20 | lea eax, [Val] 21 | mov ecx, [Arg] 22 | lea edx, [ecx]TSSArgDouble.value 23 | cmp FixTheProcedure, FALSE 24 | cmovne eax, edx 25 | push eax 26 | push SSGS 27 | push SSGC 28 | call TSSGCtrl_CheckFunnel 29 | add esp, 12 30 | mov edx, dword ptr [SHandle] 31 | ret 32 | 33 | #undef Val 34 | #undef SHandle 35 | #undef SSGS 36 | #undef SSGC 37 | #undef Arg 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ForceFunnel/TSSDoubleList_WriteOne_CheckFunnel.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSGCtrl.h" 3 | 4 | __declspec(naked) unsigned long __cdecl TSSDoubleList_WriteOne_CheckFunnel() 5 | { 6 | __asm 7 | { 8 | #define SSGC (ebp + 0x0C) 9 | #define SSGS (ebp + 0x08) 10 | #define Index (ebp - 0x0160) 11 | 12 | mov edx, dword ptr [SSGS] 13 | mov ecx, dword ptr [SSGC] 14 | push dword ptr [Index] 15 | push edx 16 | push ecx 17 | call TSSGCtrl_CheckFunnel 18 | add esp, 12 19 | mov eax, reNO_ERROR 20 | ret 21 | 22 | #undef Index 23 | #undef SSGS 24 | #undef SSGC 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ForceFunnel/TSSDoubleList_Write_CheckFunnel.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSGCtrl.h" 3 | 4 | __declspec(naked) struct 5 | { 6 | bool CheckFunnel; 7 | HANDLE SHandle; 8 | } __cdecl TSSDoubleList_Write_CheckFunnel(ResErr result) 9 | { 10 | __asm 11 | { 12 | #define SSGC (ebp + 0x0C) 13 | #define SSGS (ebp + 0x08) 14 | #define SHandle (ebp - 0x04) 15 | #define Index (ebp - 0x0160) 16 | 17 | mov edx, dword ptr [SSGS] 18 | mov ecx, dword ptr [SSGC] 19 | push dword ptr [Index] 20 | push edx 21 | push ecx 22 | call TSSGCtrl_CheckFunnel 23 | add esp, 12 24 | mov edx, dword ptr [SHandle] 25 | ret 26 | 27 | #undef Index 28 | #undef SHandle 29 | #undef SSGS 30 | #undef SSGC 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ForceFunnel/TSSDoubleToggle_Write_CheckFunnel.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSArg.h" 3 | #include "TSSGCtrl.h" 4 | 5 | __declspec(naked) struct 6 | { 7 | bool CheckFunnel; 8 | DWORD reNO_ERROR; 9 | } __cdecl TSSDoubleToggle_Write_CheckFunnel() 10 | { 11 | __asm 12 | { 13 | #define SSGC (ebp + 0x0C) 14 | #define SSGS (ebp + 0x08) 15 | #define Vec (ebp - 0x3C) 16 | 17 | mov edx, dword ptr [SSGS] 18 | mov ecx, dword ptr [SSGC] 19 | push [Vec]bcb6_std_bvector._M_start._M_p 20 | push edx 21 | push ecx 22 | call TSSGCtrl_CheckFunnel 23 | add esp, 12 24 | mov edx, reNO_ERROR 25 | ret 26 | 27 | #undef Vec 28 | #undef SSGS 29 | #undef SSGC 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ForceFunnel/TSSFloatCalc_Write_CheckFunnel.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSArg.h" 3 | #include "TSSGCtrl.h" 4 | 5 | __declspec(naked) struct 6 | { 7 | bool CheckFunnel; 8 | HANDLE SHandle; 9 | } __cdecl TSSFloatCalc_Write_CheckFunnel(ResErr result) 10 | { 11 | extern BOOL FixTheProcedure; 12 | __asm 13 | { 14 | #define Arg (ebp + 0x10) 15 | #define SSGC esi 16 | #define SSGS ebx 17 | #define SHandle (ebp - 0x04) 18 | #define Num (ebp - 0x38) 19 | 20 | lea eax, [Num] 21 | mov ecx, [Arg] 22 | lea edx, [ecx]TSSArgDouble.value 23 | cmp FixTheProcedure, FALSE 24 | cmovne eax, edx 25 | push eax 26 | push SSGS 27 | push SSGC 28 | call TSSGCtrl_CheckFunnel 29 | add esp, 12 30 | mov edx, dword ptr [SHandle] 31 | ret 32 | 33 | #undef Num 34 | #undef SHandle 35 | #undef SSGS 36 | #undef SSGC 37 | #undef Arg 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/HintWindow/Attach_HintWindow.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "intrinsic.h" 3 | 4 | EXTERN_C void __fastcall TApplication_ActivateHint(LPVOID *this, LPPOINT CursorPos); 5 | 6 | EXTERN_C void __cdecl Attach_HintWindow() 7 | { 8 | // TApplication::ActivateHint 9 | /* 10 | mov ecx, eax ; 005721C4 _ 8B. C8 11 | jmp TApplication_ActivateHint ; 005721C6 _ E9, ???????? 12 | nop ; 005721CB _ 90 13 | nop ; 005721CC _ 90 14 | */ 15 | *(LPWORD )0x005721C4 = BSWAP16(0x8BC8); 16 | *(LPBYTE )0x005721C6 = 0xE9; 17 | *(LPDWORD)0x005721C7 = (DWORD)TApplication_ActivateHint - (0x005721C7 + sizeof(DWORD)); 18 | *(LPWORD )0x005721CB = BSWAP16(0x9090); 19 | } 20 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/HintWindow/commctrl.h: -------------------------------------------------------------------------------- 1 | #ifndef _USER_COMMCTRL_H_ 2 | #define _USER_COMMCTRL_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #ifdef _WIN32_WINNT 9 | #define _PREV_WIN32_WINNT _WIN32_WINNT 10 | #undef _WIN32_WINNT 11 | #endif 12 | 13 | #ifdef _WIN32_IE 14 | #define _PREV_WIN32_IE _WIN32_IE 15 | #undef _WIN32_IE 16 | #endif 17 | 18 | #define _WIN32_WINNT _WIN32_WINNT_WIN2K 19 | #define _WIN32_IE _WIN32_IE_IE501 20 | #include 21 | 22 | #ifdef _PREV_WIN32_IE 23 | #undef _WIN32_IE 24 | #define _WIN32_IE _PREV_WIN32_IE 25 | #undef _PREV_WIN32_IE 26 | #endif 27 | 28 | #ifdef _PREV_WIN32_WINNT 29 | #undef _WIN32_WINNT 30 | #define _WIN32_WINNT _PREV_WIN32_WINNT 31 | #undef _PREV_WIN32_WINNT 32 | #endif 33 | 34 | #endif // _USER_COMMCTRL_H_ 35 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/IsBadPtr/IsBadCodePtr.c: -------------------------------------------------------------------------------- 1 | #define IsBadCodePtrEx IsBadCodePtrCompatible 2 | #define VirtualQueryEx(hProcess, lpAddress, lpBuffer, dwLength) VirtualQuery(lpAddress, lpBuffer, dwLength) 3 | #include "IsBadCodePtrEx.c" 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/IsBadPtr/IsBadCodePtrEx.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifdef __BORLANDC__ 4 | #pragma warn -8058 5 | #endif 6 | 7 | #define IsReadableProtect(Protect) ( \ 8 | ((Protect) & ( \ 9 | PAGE_READONLY | \ 10 | PAGE_READWRITE | \ 11 | PAGE_WRITECOPY | \ 12 | PAGE_EXECUTE_READ | \ 13 | PAGE_EXECUTE_READWRITE | \ 14 | PAGE_EXECUTE_WRITECOPY)) && \ 15 | !((Protect) & ( \ 16 | PAGE_NOACCESS | \ 17 | PAGE_GUARD))) 18 | 19 | BOOL __stdcall IsBadCodePtrEx( 20 | #ifndef VirtualQueryEx 21 | IN HANDLE hProcess, 22 | #endif 23 | IN FARPROC lpfn) 24 | { 25 | MEMORY_BASIC_INFORMATION mbi; 26 | 27 | return 28 | !VirtualQueryEx(hProcess, lpfn, &mbi, sizeof(mbi)) || 29 | !IsReadableProtect(mbi.Protect); 30 | } 31 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/IsBadPtr/IsBadPtrSource.h: -------------------------------------------------------------------------------- 1 | #ifdef IsBadPtr 2 | #include 3 | 4 | #ifdef __BORLANDC__ 5 | #pragma warn -8058 6 | #endif 7 | 8 | BOOL __stdcall IsBadPtr( 9 | #ifndef VirtualQueryEx 10 | IN HANDLE hProcess, 11 | #endif 12 | IN LPVOID lp, 13 | IN UINT_PTR ucb) 14 | { 15 | if (ucb) 16 | { 17 | LPVOID end; 18 | 19 | end = (LPBYTE)lp + ucb; 20 | do 21 | { 22 | MEMORY_BASIC_INFORMATION mbi; 23 | 24 | if (!VirtualQueryEx(hProcess, lp, &mbi, sizeof(mbi))) 25 | return TRUE; 26 | if (!IsValidProtect(mbi.Protect)) 27 | return TRUE; 28 | lp = (LPBYTE)mbi.BaseAddress + mbi.RegionSize; 29 | } while (lp < end); 30 | } 31 | return FALSE; 32 | } 33 | #endif 34 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/IsBadPtr/IsBadReadPtr.c: -------------------------------------------------------------------------------- 1 | #define IsBadReadPtrEx IsBadReadPtrCompatible 2 | #define VirtualQueryEx(hProcess, lpAddress, lpBuffer, dwLength) VirtualQuery(lpAddress, lpBuffer, dwLength) 3 | #include "IsBadReadPtrEx.c" 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/IsBadPtr/IsBadReadPtrEx.c: -------------------------------------------------------------------------------- 1 | #define IsBadPtr IsBadReadPtrEx 2 | 3 | #define IsReadableProtect(Protect) ( \ 4 | ((Protect) & ( \ 5 | PAGE_READONLY | \ 6 | PAGE_READWRITE | \ 7 | PAGE_WRITECOPY | \ 8 | PAGE_EXECUTE_READ | \ 9 | PAGE_EXECUTE_READWRITE | \ 10 | PAGE_EXECUTE_WRITECOPY)) && \ 11 | !((Protect) & ( \ 12 | PAGE_NOACCESS | \ 13 | PAGE_GUARD))) 14 | 15 | #define IsValidProtect IsReadableProtect 16 | 17 | #include "IsBadPtrSource.h" 18 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/IsBadPtr/IsBadWritePtr.c: -------------------------------------------------------------------------------- 1 | #define IsBadWritePtrEx IsBadWritePtrCompatible 2 | #define VirtualQueryEx(hProcess, lpAddress, lpBuffer, dwLength) VirtualQuery(lpAddress, lpBuffer, dwLength) 3 | #include "IsBadWritePtrEx.c" 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/IsBadPtr/IsBadWritePtrEx.c: -------------------------------------------------------------------------------- 1 | #define IsBadPtr IsBadWritePtrEx 2 | 3 | #define IsWritableProtect(Protect) ( \ 4 | ((Protect) & ( \ 5 | PAGE_READWRITE | \ 6 | PAGE_WRITECOPY | \ 7 | PAGE_EXECUTE_READWRITE | \ 8 | PAGE_EXECUTE_WRITECOPY)) && \ 9 | !((Protect) & ( \ 10 | PAGE_NOACCESS | \ 11 | PAGE_GUARD))) 12 | 13 | #define IsValidProtect IsWritableProtect 14 | 15 | #include "IsBadPtrSource.h" 16 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Kernel32/GetOSMajorVersion.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | static DWORD dwOSMajorVersion = 0; 4 | 5 | DWORD __stdcall GetOSMajorVersion() 6 | { 7 | OSVERSIONINFOW OSVersionInfo; 8 | 9 | if (dwOSMajorVersion) 10 | return dwOSMajorVersion; 11 | OSVersionInfo.dwOSVersionInfoSize = sizeof(OSVersionInfo); 12 | #pragma warning(suppress: 4996) 13 | if (!GetVersionExW(&OSVersionInfo)) 14 | return 0; 15 | return dwOSMajorVersion = OSVersionInfo.dwMajorVersion; 16 | } 17 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/NocachedMemoryList/Attach_NocachedMemoryList.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/NocachedMemoryList/Attach_NocachedMemoryList.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/NocachedMemoryList/TSSGCtrl_GetSSGDataFile_TrimString.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "bcb6_std_string.h" 3 | 4 | __declspec(naked) void __cdecl TSSGCtrl_GetSSGDataFile_TrimString() 5 | { 6 | __asm 7 | { 8 | push 004166F0H 9 | jmp string_trim_blank 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/OptimizeAllocator/OptimizeAllocator.h: -------------------------------------------------------------------------------- 1 | #ifndef _OPTIMIZEALLOCATOR_H_ 2 | #define _OPTIMIZEALLOCATOR_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #define OPTIMIZE_ALLOCATOR 1 9 | 10 | #include 11 | 12 | #if OPTIMIZE_ALLOCATOR 13 | EXTERN_C void __cdecl OptimizeAllocator(); 14 | #else 15 | #define OptimizeAllocator() 16 | #endif 17 | 18 | #endif // _OPTIMIZEALLOCATOR_H_ 19 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/OptimizeCRT/_lstrcpyA.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #pragma function(strcpy) 4 | 5 | __declspec(naked) char * __stdcall _lstrcpyA(char *lpString1, const char *lpString2) 6 | { 7 | __asm 8 | { 9 | #define lpString1 (esp + 4) 10 | #define lpString2 (esp + 8) 11 | 12 | mov edx, dword ptr [lpString2] 13 | mov ecx, dword ptr [lpString1] 14 | push edx 15 | push ecx 16 | call strcpy 17 | add esp, 8 18 | ret 8 19 | 20 | #undef lpString1 21 | #undef lpString2 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/OptimizeCRT/_lstrcpynA.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | size_t __cdecl strlcpy(char *string1, const char *string2, size_t count); 4 | 5 | __declspec(naked) char * __stdcall _lstrcpynA(char *lpString1, const char *lpString2, int iMaxLength) 6 | { 7 | __asm 8 | { 9 | #define lpString1 (esp + 4) 10 | #define lpString2 (esp + 8) 11 | #define iMaxLength (esp + 12) 12 | 13 | mov edx, dword ptr [iMaxLength] 14 | mov ecx, dword ptr [lpString2] 15 | mov eax, dword ptr [lpString1] 16 | push edx 17 | push ecx 18 | push eax 19 | call strlcpy 20 | mov eax, dword ptr [lpString1 + 12] 21 | add esp, 12 22 | ret 12 23 | 24 | #undef lpString1 25 | #undef lpString2 26 | #undef iMaxLength 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/OptimizeCRT/_lstrlenA.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #pragma function(strlen) 4 | 5 | __declspec(naked) int __stdcall _lstrlenA(const char *lpString) 6 | { 7 | __asm 8 | { 9 | #define lpString (esp + 4) 10 | 11 | pop eax 12 | pop ecx 13 | push eax 14 | push ecx 15 | call strlen 16 | pop ecx 17 | ret 18 | 19 | #undef lpString 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/OptimizeStringDivision/TStringDivision_Find.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/OptimizeStringDivision/TStringDivision_Find.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/OptimizeStringDivision/TStringDivision_FindBack.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/OptimizeStringDivision/TStringDivision_FindBack.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/OptimizeStringDivision/TStringDivision_FindByVector.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/OptimizeStringDivision/TStringDivision_FindByVector.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/OptimizeStringDivision/TStringDivision_IsLeadByteAtLowerUpper.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "intrinsic.h" 3 | 4 | __declspec(naked) void __cdecl TStringDivision_IsLeadByteAtLowerUpper() 5 | { 6 | __asm 7 | { 8 | #if CODEPAGE_SUPPORT 9 | movzx edx, byte ptr [ebx] 10 | pop eax 11 | push edx 12 | push CP_THREAD_ACP 13 | push eax 14 | jmp IsDBCSLeadByteEx 15 | #else 16 | mov dl, byte ptr [ebx] 17 | xor eax, eax 18 | sub dl, 81H 19 | cmp dl, 9FH - 81H + 1 20 | jb L1 21 | sub dl, 0E0H - 81H 22 | cmp dl, 0FCH - 0E0H + 1 23 | jae L2 24 | L1: 25 | inc eax 26 | L2: 27 | rep ret 28 | #endif 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/OptimizeStringDivision/TStringDivision_WCList.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/OptimizeStringDivision/TStringDivision_WCList.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/Caller_Parsing.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if 0 4 | unsigned long __cdecl Parsing61(void *SSGCtrl, void *SSGS, const void *Src, unsigned long Val); 5 | #else 6 | unsigned long __cdecl Parsing(void *this, void *SSGS, const void *Src, ...); 7 | #endif 8 | 9 | extern BOOL EnableParserFix; 10 | extern const DWORD _TSSGCtrl_Parsing; 11 | 12 | __declspec(naked) void __cdecl Caller_Parsing() 13 | { 14 | __asm 15 | { 16 | cmp EnableParserFix, FALSE 17 | #pragma warning(suppress: 4414) 18 | jne Parsing 19 | jmp _TSSGCtrl_Parsing 20 | ud2 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/Caller_ParsingDouble.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | double __cdecl ParsingDouble(void *this, void *SSGS, const void *Src, double Val); 4 | 5 | extern BOOL EnableParserFix; 6 | 7 | __declspec(naked) void __cdecl Caller_ParsingDouble() 8 | { 9 | static const DWORD X005174C5 = 0x005174C5; 10 | 11 | __asm 12 | { 13 | cmp EnableParserFix, FALSE 14 | #pragma warning(suppress: 4414) 15 | jne ParsingDouble 16 | jmp X005174C5 17 | ud2 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/Caller_ParsingWithVal.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | unsigned long __cdecl Parsing(void *this, void *SSGS, const void *Src, ...); 4 | 5 | extern BOOL EnableParserFix; 6 | extern const DWORD _TSSGCtrl_Parsing; 7 | 8 | __declspec(naked) void __cdecl Caller_ParsingWithVal() 9 | { 10 | static const char lpszVal[] = "Val"; 11 | 12 | __asm 13 | { 14 | cmp EnableParserFix, FALSE 15 | je L1 16 | mov ecx, dword ptr [esp + 0x04] 17 | mov edx, dword ptr [esp + 0x08] 18 | mov eax, dword ptr [esp + 0x0C] 19 | push 0 20 | push 0 21 | push dword ptr [esp + 0x08 + 16] 22 | push offset lpszVal 23 | push length lpszVal - 1 24 | push eax 25 | push edx 26 | push ecx 27 | call Parsing 28 | add esp, 32 29 | ret 30 | 31 | L1: 32 | jmp _TSSGCtrl_Parsing 33 | ud2 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/CompareProcessMemoryA.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "CompareProcessMemoryT.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/CompareProcessMemoryW.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "CompareProcessMemoryT.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/FindProcessMemoryA.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "FindProcessMemoryT.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/FindProcessMemoryW.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "FindProcessMemoryT.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/FindReverseProcessMemory.h: -------------------------------------------------------------------------------- 1 | #ifndef _FINDREVERSEPROCESSMEMORY_H_ 2 | #define _FINDREVERSEPROCESSMEMORY_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | size_t __stdcall FindReverseProcessMemoryA( 15 | IN OPTIONAL HANDLE hProcess, 16 | IN LPCSTR lpString, 17 | IN char c, 18 | IN size_t nMaxLength, 19 | IN BOOL bInsensitiveCase); 20 | 21 | size_t __stdcall FindReverseProcessMemoryW( 22 | IN OPTIONAL HANDLE hProcess, 23 | IN LPCWSTR lpString, 24 | IN wchar_t c, 25 | IN size_t nMaxLength, 26 | IN BOOL bInsensitiveCase); 27 | 28 | #ifdef __cplusplus 29 | } 30 | #endif 31 | 32 | #endif // _FINDREVERSEPROCESSMEMORY_H_ 33 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/FindReverseProcessMemoryA.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "FindReverseProcessMemoryT.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/FindReverseProcessMemoryW.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "FindReverseProcessMemoryT.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/HashBytes.h: -------------------------------------------------------------------------------- 1 | #ifndef _HASHBYTES_H_ 2 | #define _HASHBYTES_H_ 3 | 4 | #if 1 5 | #include "fnv1a.h" 6 | #define HashBytes fnv1a32 7 | #else 8 | EXTERN_C unsigned long int CRC32Combine(const void *lpBuffer, unsigned long int nSize, unsigned long int crc); 9 | #define CRC32(lpBuffer, nSize) CRC32Combine(lpBuffer, nSize, 0) 10 | #define HashBytes CRC32 11 | #endif 12 | #define SCOPE_PREFIX '@' 13 | #endif // _HASHBYTES_H_ 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/Parsing.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/Parsing/Parsing.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/Parsing61.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/Parsing/Parsing61.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/Parsing61.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/Parsing/Parsing61.h -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/ParsingDouble61.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/Parsing/ParsingDouble61.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/TSSGCtrl_AddressNaming_ByteArrayReplaceDefine.c: -------------------------------------------------------------------------------- 1 | #include "TStringDivision.h" 2 | 3 | void __stdcall ReplaceDefineDynamic(void *SSGS, void *line); 4 | 5 | extern BOOL EnableParserFix; 6 | 7 | __declspec(naked) void __cdecl TSSGCtrl_AddressNaming_ReplaceDefineDynamic3() 8 | { 9 | __asm 10 | { 11 | #define SSGS (ebp + 10H) 12 | #define tmpS eax 13 | 14 | mov ecx, dword ptr [EnableParserFix] 15 | mov edx, dword ptr [SSGS] 16 | test ecx, ecx 17 | jz L1 18 | push tmpS 19 | push edx 20 | push offset TStringDivision_Half 21 | jmp ReplaceDefineDynamic 22 | 23 | L1: 24 | jmp TStringDivision_Half 25 | 26 | #undef SSGS 27 | #undef tmpS 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/TSSGCtrl_AddressNaming_OpenProcess.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TProcessCtrl.h" 3 | 4 | HANDLE __stdcall TSSGCtrl_OpenProcess(TProcessCtrl *processCtrl, DWORD Mode, LPCSTR addressStr); 5 | 6 | __declspec(naked) void __cdecl TSSGCtrl_AddressNaming_OpenProcess() 7 | { 8 | __asm 9 | { 10 | #define ReturnAddress 00504F76H 11 | 12 | mov ecx, dword ptr [esi] 13 | lea eax, [edi + 1B0H] 14 | mov ecx, dword ptr [ecx + 18H] 15 | push ecx 16 | push 16 17 | push eax 18 | push ReturnAddress 19 | jmp TSSGCtrl_OpenProcess 20 | 21 | #undef ReturnAddress 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/TSSGCtrl_Funneling_Write.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSGCtrl.h" 3 | 4 | __declspec(naked) void __cdecl TSSGCtrl_Funneling_Write() 5 | { 6 | __asm 7 | { 8 | #define SHandle (ebp - size PVOID) 9 | 10 | mov ecx, dword ptr [ecx + size bcb6_std_string] 11 | call TSSGCtrl_IsRemoteProcess 12 | mov edx, dword ptr [SHandle] 13 | test al, al 14 | jnz L1 15 | call GetCurrentProcess 16 | mov edx, eax 17 | L1: 18 | rep ret 19 | 20 | #undef SHandle 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/TSSGCtrl_OpenProcess.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TSSGCtrl.h" 3 | 4 | HANDLE __stdcall TSSGCtrl_OpenProcess(TProcessCtrl *processCtrl, DWORD Mode, LPCSTR addressStr) 5 | { 6 | return TSSGCtrl_IsRemoteProcess(addressStr) ? 7 | TProcessCtrl_Open(processCtrl, Mode) : 8 | GetCurrentProcess(); 9 | } 10 | 11 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/TSSGCtrl_StrToProcessAccessElementVec_ByteArrayReplaceDefine.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "bcb6_std_string.h" 3 | 4 | void __stdcall ByteArrayReplaceDefine(void *SSGS, void *line); 5 | 6 | extern BOOL EnableParserFix; 7 | 8 | __declspec(naked) char*__cdecl TSSGCtrl_StrToProcessAccessElementVec_ByteArrayReplaceDefine() 9 | { 10 | __asm 11 | { 12 | #define SSGS (ebp + 10H) 13 | #define Code (ebp + 14H) 14 | 15 | cmp EnableParserFix, FALSE 16 | je L1 17 | lea edx, [Code] 18 | push edx 19 | push dword ptr [SSGS] 20 | call ByteArrayReplaceDefine 21 | L1: 22 | mov eax, [Code]bcb6_std_string._M_start 23 | ret 24 | 25 | #undef SSGS 26 | #undef Code 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/fnv1a32combine.c: -------------------------------------------------------------------------------- 1 | #define FNV1A_USE_COMBINE 2 | #include "fnv1a32.c" 3 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/Parsing/fnv1a64combine.c: -------------------------------------------------------------------------------- 1 | #define FNV1A_USE_COMBINE 2 | #include "fnv1a64.c" 3 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ProcessMonitor/FindWindowExceptInvalids.h: -------------------------------------------------------------------------------- 1 | #ifndef _FINDWINDOWCONTAINSMODULE_H_ 2 | #define _FINDWINDOWCONTAINSMODULE_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | HWND __stdcall FindWindowExceptInvalids( 15 | OUT OPTIONAL LPDWORD lpdwProcessId, 16 | IN BOOL bIsRegex, 17 | IN OPTIONAL LPCSTR lpClassName, 18 | IN OPTIONAL LPCSTR lpWindowName, 19 | IN OPTIONAL LPCSTR lpModuleName, 20 | IN OPTIONAL LPCSTR lpCmdLineArg); 21 | 22 | #ifdef __cplusplus 23 | } 24 | #endif 25 | 26 | #endif // _FINDWINDOWCONTAINSMODULE_H_ 27 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ProcessMonitor/GetFileTitlePointer.h: -------------------------------------------------------------------------------- 1 | #ifndef _GETFILETITLEPOINTER_H_ 2 | #define _GETFILETITLEPOINTER_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | #if 1 15 | #include 16 | #define GetFileTitlePointerA PathFindFileNameA 17 | #define GetFileTitlePointerW PathFindFileNameW 18 | #else 19 | char * __fastcall GetFileTitlePointerA(const char *lpFileNeme); 20 | wchar_t * __fastcall GetFileTitlePointerW(const wchar_t *lpFileNeme); 21 | #endif 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | 27 | #endif // _GETFILETITLEPOINTER_H_ 28 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ProcessMonitor/GetFileTitlePointerA.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | 5 | #define GetFileTitlePointerT GetFileTitlePointerA 6 | #include "GetFileTitlePointerT.h" 7 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ProcessMonitor/GetFileTitlePointerT.h: -------------------------------------------------------------------------------- 1 | #ifdef GetFileTitlePointerT 2 | #include 3 | #ifdef __BORLANDC__ 4 | #pragma warn -8058 5 | #endif 6 | TCHAR * __fastcall GetFileTitlePointerT(const TCHAR *lpFileNeme) 7 | { 8 | TCHAR *lpTitle, c; 9 | 10 | lpTitle = (TCHAR *)lpFileNeme; 11 | while (c = *(lpFileNeme++)) 12 | if (c == TEXT('\\') || c == TEXT('/') || c == TEXT(':')) 13 | lpTitle = (TCHAR *)lpFileNeme; 14 | #ifndef _UNICODE 15 | else if (IsDBCSLeadByteEx(CP_THREAD_ACP, c) && !*(lpFileNeme++)) 16 | break; 17 | #endif 18 | return lpTitle; 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ProcessMonitor/GetFileTitlePointerW.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | 9 | #define GetFileTitlePointerT GetFileTitlePointerW 10 | #include "GetFileTitlePointerT.h" 11 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ProcessMonitor/ProcessMonitor.h: -------------------------------------------------------------------------------- 1 | #ifndef _PROCESSMONITOR_H_ 2 | #define _PROCESSMONITOR_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | void __cdecl InitializeProcessMonitor(); 15 | void __cdecl DeleteProcessMonitor(); 16 | void __cdecl StopProcessMonitor(); 17 | 18 | DWORD __stdcall FindProcessId( 19 | IN BOOL bIsRegex, 20 | IN LPCSTR lpProcessName, 21 | IN size_t nProcessNameLength, 22 | IN OPTIONAL LPCSTR lpModuleName, 23 | IN OPTIONAL LPCSTR lpCommandArg); 24 | 25 | #ifdef __cplusplus 26 | } 27 | #endif 28 | 29 | #endif // _PROCESSMONITOR_H_ 30 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ProcessMonitor/TProcessCtrl_Attach.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/ProcessMonitor/TProcessCtrl_Attach.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ProcessMonitor/TSearchForm_AdjustValToString_GetStart.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void __declspec(naked) __cdecl TSearchForm_AdjustValToString_GetStart(LPVOID activeElement, LPVOID ssgCtrl) 4 | { 5 | static const DWORD X004D1858 = 0x004D1858; 6 | 7 | __asm 8 | { 9 | cmp byte ptr [esi + 0x0400 - 0x34], 1 10 | jne GetStart 11 | mov eax, dword ptr [esi + 0x0400 + 0x14] 12 | ret 13 | 14 | GetStart: 15 | jmp dword ptr [X004D1858] 16 | ud2 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ProcessMonitor/TSearchForm_DrawCanvas.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TBrush.h" 3 | #include "TCanvas.h" 4 | #include "TProcessSearchReportListnerBase.h" 5 | 6 | void __fastcall TSearchForm_DrawCanvas(TProcessSearchReportListnerBase *reportListner, long ImageWidth, unsigned long Pos, TCanvas *Canv) 7 | { 8 | RECT rect = { 0, 0, ImageWidth, 24 }; 9 | long denom = (reportListner->max - reportListner->min) / ImageWidth; 10 | TBrush_SetColor(Canv->FBrush, 0x000000); 11 | if (Pos >= reportListner->start) { 12 | TCanvas_FillRect(Canv, &rect); 13 | rect.left = (reportListner->start - reportListner->min) / denom; 14 | rect.right = (Pos - reportListner->min) / denom; 15 | } else { 16 | rect.right = (reportListner->start - reportListner->min) / denom; 17 | TCanvas_FillRect(Canv, &rect); 18 | rect.left = (Pos - reportListner->min) / denom; 19 | } 20 | TBrush_SetColor(Canv->FBrush, 0x008000); 21 | TCanvas_FillRect(Canv, &rect); 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ProcessMonitor/TSearchReportListner_OnReport_InvokeDrawProgress.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "TMainForm.h" 3 | #include "TWinControl.h" 4 | #include "ApplicationMessage.h" 5 | 6 | void __cdecl TSearchReportListner_OnReport_InvokeDrawProgress(WPARAM searchForm, unsigned long Pos) 7 | { 8 | PostMessageA(TWinControl_GetHandle(MainForm), WM_DRAW_PROGRESS, searchForm, Pos); 9 | } 10 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/RepeatIndex/TSSGCtrl_ReadADJFile_EnumReadSSG.c: -------------------------------------------------------------------------------- 1 | #include "TSSGCtrl.h" 2 | 3 | extern DWORD RepeatDepth; 4 | 5 | #ifdef ADJ_USE_JMP 6 | __declspec(naked) void __cdecl TSSGCtrl_ReadADJFile_EnumReadSSG() 7 | { 8 | __asm 9 | { 10 | #define this esi 11 | #define ADJElem (ebp + 0CH) 12 | #define ADJ (ebp - 110H) 13 | #define ParentStack (ebp - 0B8H) 14 | 15 | mov edx, dword ptr [ADJElem] 16 | lea ecx, [ParentStack] 17 | mov eax, dword ptr [ADJ] 18 | push -1 19 | push 0 20 | push edx 21 | push ecx 22 | push eax 23 | push this 24 | push 004FD6F6H 25 | jmp TSSGCtrl_EnumReadSSG 26 | 27 | #undef this 28 | #undef ADJElem 29 | #undef ADJ 30 | #undef ParentStack 31 | } 32 | } 33 | #endif 34 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/RepeatIndex/TSSGCtrl_ReadSSG_EnumReadSSG.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "TSSGCtrl.h" 3 | #include "SSGSubjectProperty.h" 4 | 5 | extern DWORD RepeatDepth; 6 | extern BOOL IsProcessAttached; 7 | extern string ProcessAttachCode; 8 | extern vector *ProcessAttachAttribute; 9 | extern string ProcessDetachCode; 10 | extern vector *ProcessDetachAttribute; 11 | extern TSSGSubject dummySSGS; 12 | 13 | void __cdecl TSSGCtrl_ReadSSG_EnumReadSSG(TSSGCtrl *this, vector_string *SSGFile, stack_ptr *ParentStack, TDialogAdjustmentAttribute *ADJElem) 14 | { 15 | RepeatDepth = 0; 16 | IsProcessAttached = FALSE; 17 | string_ctor_null(&ProcessAttachCode); 18 | ProcessAttachAttribute = NULL; 19 | string_ctor_null(&ProcessDetachCode); 20 | ProcessDetachAttribute = NULL; 21 | TSSGCtrl_EnumReadSSG(this, SSGFile, ParentStack, NULL, 0, MAXDWORD); 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/RepeatIndex/TSSGCtrl_ReadSSRFile_ReserveLoopIndex.c: -------------------------------------------------------------------------------- 1 | #include 2 | #define USING_NAMESPACE_BCB6_STD 3 | #include "bcb6_std_vector_string.h" 4 | 5 | __declspec(naked) void __cdecl TSSGCtrl_ReadSSRFile_ReserveLoopIndex() 6 | { 7 | __asm 8 | { 9 | #define v (esp + 0x04) 10 | #define n (esp + 0x08) 11 | #define m (esp + 0x0C) 12 | #define Indices (ebp + 0x14) 13 | 14 | mov ecx, dword ptr [Indices] 15 | mov edx, dword ptr [n] 16 | inc edx 17 | call vector_dword_reserve 18 | mov ecx, dword ptr [Indices] 19 | mov edx, dword ptr [m] 20 | call vector_dword_push_back 21 | mov ecx, dword ptr [v] 22 | mov edx, dword ptr [n] 23 | imul edx, dword ptr [m] 24 | jmp vector_string_reserve 25 | 26 | #undef Indices 27 | #undef x 28 | #undef n 29 | #undef v 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/RepeatIndex/TSSGCtrl_ReadSSRFile_StoreLoopIndex.c: -------------------------------------------------------------------------------- 1 | #include 2 | #define USING_NAMESPACE_BCB6_STD 3 | #include "bcb6_std_vector.h" 4 | #include "TSSGCtrl.h" 5 | 6 | __declspec(naked) void __cdecl TSSGCtrl_ReadSSRFile_StoreLoopIndex() 7 | { 8 | __asm 9 | { 10 | #define LoopVal (esp + 0x10) 11 | #define Indices (ebp + 0x14) 12 | 13 | mov edx, dword ptr [LoopVal] 14 | mov ecx, dword ptr [Indices] 15 | push TSSGCtrl_LoopSSRFile 16 | jmp vector_dword_push_back 17 | 18 | #undef Indices 19 | #undef LoopVal 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ShowErrorMessage/Attach_ShowErrorMessage.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/ShowErrorMessage/Attach_ShowErrorMessage.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/SnapWindow/SnapWindow.h: -------------------------------------------------------------------------------- 1 | #ifndef _SNAPWINDOW_H_ 2 | #define _SNAPWINDOW_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #include 9 | 10 | // referenced at "winmm.c" 11 | // referenced at "FixMainForm\TMainForm_ctor.c" 12 | // referenced at "FixMainForm\TFindNameForm_ctor.c" 13 | // referenced at "FixMainForm\TGuideForm_ctor.c" 14 | // referenced at "FixMainForm\TSearchForm_ctor.c" 15 | #define SNAPWINDOW 1 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | BOOL __fastcall AttachSnapWindow(HWND hWnd); 22 | void __fastcall DetachSnapWindow(HWND hWnd); 23 | BOOL __fastcall EnableSnapWindow(HWND hWnd, BOOL bEnable); 24 | 25 | #ifdef __cplusplus 26 | } 27 | #endif 28 | 29 | #endif // _SNAPWINDOW_H_ 30 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/StringSubject/TSSString_Read_terminate_Data.c: -------------------------------------------------------------------------------- 1 | #include 2 | #define USING_NAMESPACE_BCB6_STD 3 | #include "bcb6_std_string.h" 4 | #include "TSSString.h" 5 | 6 | void __declspec(naked) Caller_TSSString_Read_terminate_Data() 7 | { 8 | static void __fastcall TSSString_Read_terminate_Data(); 9 | 10 | __asm 11 | { 12 | #define Pos edx 13 | 14 | cmp Pos, -1 15 | #pragma warning(suppress: 4414) 16 | jne TSSString_Read_terminate_Data 17 | ret 4 18 | 19 | #undef Pos 20 | } 21 | } 22 | 23 | static void __fastcall TSSString_Read_terminate_Data(string *Data, unsigned long Pos, TSSString *this) 24 | { 25 | *(string_end(Data) = string_begin(Data) + Pos) = '\0'; 26 | } 27 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/SubjectStringTable/Attach_SubjectStringTable.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/SubjectStringTable/Attach_SubjectStringTable.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/SubjectStringTable/SubjectStringOperator.h: -------------------------------------------------------------------------------- 1 | #ifndef _SUBJECTSTRINGOPERATOR_H_ 2 | #define _SUBJECTSTRINGOPERATOR_H_ 3 | 4 | #include "bcb6_std_string.h" 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | void __cdecl SubjectStringTable_StringCtor(bcb6_std_string *s); 11 | const bcb6_std_string * __fastcall SubjectStringTable_GetString(const bcb6_std_string *s); 12 | void __fastcall SubjectStringTable_SetString(bcb6_std_string *dest, bcb6_std_string *src); 13 | 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | 18 | #endif // _SUBJECTSTRINGOPERATOR_H_ 19 | 20 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/SubjectStringTable/SubjectStringTable.h: -------------------------------------------------------------------------------- 1 | #ifndef _SUBJECTSTRINGTABLE_H_ 2 | #define _SUBJECTSTRINGTABLE_H_ 3 | 4 | #include 5 | 6 | #include "bcb6_std_vector.h" 7 | #include "bcb6_std_vector_string.h" 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | extern bcb6_std_vector_string SubjectStringTable_array; 14 | extern bcb6_std_vector_size_t SubjectStringTable_indices; 15 | 16 | void __cdecl SubjectStringTable_dtor(); 17 | void __cdecl SubjectStringTable_clear(); 18 | size_t __fastcall SubjectStringTable_insert(const bcb6_std_string *s); 19 | 20 | #ifdef __cplusplus 21 | } 22 | #endif 23 | 24 | #endif // _SUBJECTSTRINGTABLE_H_ 25 | 26 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/ToolTip/commctrl.h: -------------------------------------------------------------------------------- 1 | #ifndef _USER_COMMCTRL_H_ 2 | #define _USER_COMMCTRL_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #ifdef _WIN32_WINNT 9 | #define _PREV_WIN32_WINNT _WIN32_WINNT 10 | #undef _WIN32_WINNT 11 | #endif 12 | 13 | #ifdef _WIN32_IE 14 | #define _PREV_WIN32_IE _WIN32_IE 15 | #undef _WIN32_IE 16 | #endif 17 | 18 | #define _WIN32_WINNT _WIN32_WINNT_WIN2K 19 | #define _WIN32_IE _WIN32_IE_IE501 20 | #include 21 | 22 | #ifdef _PREV_WIN32_IE 23 | #undef _WIN32_IE 24 | #define _WIN32_IE _PREV_WIN32_IE 25 | #undef _PREV_WIN32_IE 26 | #endif 27 | 28 | #ifdef _PREV_WIN32_WINNT 29 | #undef _WIN32_WINNT 30 | #define _WIN32_WINNT _PREV_WIN32_WINNT 31 | #undef _PREV_WIN32_WINNT 32 | #endif 33 | 34 | #endif // _USER_COMMCTRL_H_ 35 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/WaitCursor/WaitCursor.h: -------------------------------------------------------------------------------- 1 | #ifndef _WAITCURSOR_H_ 2 | #define _WAITCURSOR_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | BOOL __cdecl InitializeWaitCursor(); 15 | void __cdecl DeleteWaitCursor(); 16 | void __cdecl BeginWaitCursor(); 17 | void __cdecl EndWaitCursor(); 18 | 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | 23 | #endif // _WAITCURSOR_H_ 24 | 25 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crc32/crc32.dsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/crc32/crc32.dsp -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crc32/crc32.dsw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/crc32/crc32.dsw -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/alias.asm: -------------------------------------------------------------------------------- 1 | .386 2 | .model flat, c 3 | 4 | extrn _strtoui64:proc 5 | extrn _finite:proc 6 | extrn _isnan:proc 7 | 8 | alias = <_strtoui64> 9 | alias = <_finite> 10 | alias = <_isnan> 11 | 12 | end 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/asmlib/strcpy.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #pragma function(strcpy, strlen, memcpy) 4 | 5 | __declspec(naked) char * __cdecl strcpy(char *string1, const char *string2) 6 | { 7 | __asm 8 | { 9 | mov eax, dword ptr [esp + 8] // src 10 | push eax 11 | call strlen // length of src 12 | pop ecx // ecx = src. Assume unchanged by _A_strlen 13 | inc eax // include terminating zero in length 14 | mov edx, dword ptr [esp + 4] // dest 15 | push eax // length+1 16 | push ecx // src 17 | push edx // dest 18 | call memcpy // copy 19 | add esp, 12 // clean up stack 20 | ret 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/atof.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "ttof.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/atoi64.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "ttoi64.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/difftime.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | double __cdecl _difftime32(__time32_t end, __time32_t start) 4 | { 5 | return (double)(end - start); 6 | } 7 | 8 | double __cdecl _difftime64(__time64_t end, __time64_t start) 9 | { 10 | return (double)(end - start); 11 | } 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/digitstbla.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "digitstblt.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/digitstblw.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "digitstblt.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/errno.c: -------------------------------------------------------------------------------- 1 | #ifdef _MSC_VER 2 | #include 3 | errno_t _terrno = 0; 4 | errno_t * __cdecl _errno() 5 | { 6 | return &_terrno; 7 | } 8 | #endif 9 | 10 | #ifdef __BORLANDC__ 11 | #pragma warn -8070 12 | extern int * __errno(); 13 | __declspec(naked) int * __cdecl _errno() 14 | { 15 | __asm 16 | { 17 | jmp __errno 18 | } 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/fbit.h: -------------------------------------------------------------------------------- 1 | #ifndef _FBIT_H_ 2 | #define _FBIT_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | double __cdecl fband(double x, double y); 13 | double __cdecl fbor(double x, double y); 14 | double __cdecl fbxor(double x, double y); 15 | double __cdecl fbnot32(double x); 16 | 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | 21 | #endif // _FBIT_H_ 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/getenv.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tgetenv.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/i64toa.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "i64tot.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/i64tow.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "i64tot.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/include/mm.inc: -------------------------------------------------------------------------------- 1 | ;*** 2 | ;mm.inc - macros to write memory model dependent code 3 | ; 4 | ; Copyright (c) Microsoft Corporation. All rights reserved. 5 | ; 6 | ;Purpose: 7 | ; This file contains definitions of a number of macros which 8 | ; make the writing of memory model dependent code for the 9 | ; 386 a little easier and more portable. 10 | ; 11 | ;******************************************************************************* 12 | 13 | ; Big/Little Endian Definitions for Long Integers 14 | 15 | LOWORD equ [0] 16 | HIWORD equ [4] 17 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/itoa.asm: -------------------------------------------------------------------------------- 1 | .386 2 | .model flat, c 3 | 4 | extern _ltoa:proc 5 | 6 | alias <_itoa> = <_ltoa> 7 | 8 | end 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/itow.asm: -------------------------------------------------------------------------------- 1 | .386 2 | .model flat, c 3 | 4 | extern _ltow:proc 5 | 6 | alias <_itow> = <_ltow> 7 | 8 | end 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/f2xm1.asm: -------------------------------------------------------------------------------- 1 | name equ _f2xm1 2 | instruction equ f2xm1 3 | include proc1.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fabs.asm: -------------------------------------------------------------------------------- 1 | name equ _fabs 2 | instruction equ fabs 3 | include proc1.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fadd.asm: -------------------------------------------------------------------------------- 1 | name equ _fadd 2 | instruction equ fadd 3 | include proc2.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fchs.asm: -------------------------------------------------------------------------------- 1 | name equ _fchs 2 | instruction equ fchs 3 | include proc2.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fclex.asm: -------------------------------------------------------------------------------- 1 | public _fclex 2 | 3 | .code 4 | 5 | _fclex proc 6 | fclex 7 | ret 8 | _fclex endp 9 | 10 | end 11 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fcom.asm: -------------------------------------------------------------------------------- 1 | public _fcom 2 | 3 | .code 4 | 5 | _fcom proc 6 | fld tbyte ptr [rdx] 7 | fld tbyte ptr [rcx] 8 | fcompp 9 | fstsw ax 10 | and ax, 4300H 11 | ret 12 | _fcom endp 13 | 14 | end 15 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fcom_i2.asm: -------------------------------------------------------------------------------- 1 | public _fcom_i2 2 | 3 | .code 4 | 5 | _fcom_i2 proc 6 | mov word ptr [rsp + 8], dx 7 | fild word ptr [rsp + 8] 8 | fld tbyte ptr [rcx] 9 | fcompp 10 | fstsw ax 11 | and ax, 4300H 12 | ret 13 | _fcom_i2 endp 14 | 15 | end 16 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fcom_i4.asm: -------------------------------------------------------------------------------- 1 | public _fcom_i4 2 | 3 | .code 4 | 5 | _fcom_i4 proc 6 | mov dword ptr [rsp + 8], edx 7 | fild dword ptr [rsp + 8] 8 | fld tbyte ptr [rcx] 9 | fcompp 10 | fstsw ax 11 | and ax, 4300H 12 | ret 13 | _fcom_i4 endp 14 | 15 | end 16 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fcom_i8.asm: -------------------------------------------------------------------------------- 1 | public _fcom_i8 2 | 3 | .code 4 | 5 | _fcom_i8 proc 6 | mov qword ptr [rsp + 8], rdx 7 | fild qword ptr [rsp + 8] 8 | fld tbyte ptr [rcx] 9 | fcompp 10 | fstsw ax 11 | and ax, 4300H 12 | ret 13 | _fcom_i8 endp 14 | 15 | end 16 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fcom_r8.asm: -------------------------------------------------------------------------------- 1 | public _fcom_r8 2 | 3 | .code 4 | 5 | _fcom_r8 proc 6 | fld qword ptr [rdx] 7 | fld tbyte ptr [rcx] 8 | fcompp 9 | fstsw ax 10 | and ax, 4300H 11 | ret 12 | _fcom_r8 endp 13 | 14 | end 15 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fcom_u8.asm: -------------------------------------------------------------------------------- 1 | public _fcom_u8 2 | 3 | .code 4 | 5 | _fcom_u8 proc 6 | mov qword ptr [rsp + 8], rdx 7 | mov word ptr [rsp + 16], 403EH 8 | test rdx, rdx 9 | js L1 10 | fild qword ptr [rsp + 8] 11 | jmp L2 12 | 13 | L1: 14 | fld tbyte ptr [rsp + 8] 15 | L2: 16 | fld tbyte ptr [rcx] 17 | fcompp 18 | fstsw ax 19 | and ax, 4300H 20 | ret 21 | _fcom_u8 endp 22 | 23 | end 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fcos.asm: -------------------------------------------------------------------------------- 1 | name equ _fcos 2 | instruction equ fcos 3 | include proc1.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fdec.asm: -------------------------------------------------------------------------------- 1 | public _fdec 2 | 3 | .code 4 | 5 | _fdec proc 6 | fld tbyte ptr [rdx] 7 | fld1 8 | fsub 9 | fstp tbyte ptr [rcx] 10 | ret 11 | _fdec endp 12 | 13 | end 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fdiv.asm: -------------------------------------------------------------------------------- 1 | name equ _fdiv 2 | instruction equ fdiv 3 | include proc2.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/finc.asm: -------------------------------------------------------------------------------- 1 | public _finc 2 | 3 | .code 4 | 5 | _finc proc 6 | fld tbyte ptr [rdx] 7 | fld1 8 | fadd 9 | fstp tbyte ptr [rcx] 10 | ret 11 | _finc endp 12 | 13 | end 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fld1.asm: -------------------------------------------------------------------------------- 1 | name equ _fld1 2 | instruction equ fld1 3 | include proc3.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fld_i2.asm: -------------------------------------------------------------------------------- 1 | public _fld_i2 2 | 3 | .code 4 | 5 | _fld_i2 proc 6 | mov word ptr [rsp + 8], dx 7 | fild word ptr [rsp + 8] 8 | fstp tbyte ptr [rcx] 9 | ret 10 | _fld_i2 endp 11 | 12 | end 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fld_i4.asm: -------------------------------------------------------------------------------- 1 | public _fld_i4 2 | 3 | .code 4 | 5 | _fld_i4 proc 6 | mov dword ptr [rsp + 8], edx 7 | fild dword ptr [rsp + 8] 8 | fstp tbyte ptr [rcx] 9 | ret 10 | _fld_i4 endp 11 | 12 | end 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fld_i8.asm: -------------------------------------------------------------------------------- 1 | public _fld_i8 2 | 3 | .code 4 | 5 | _fld_i8 proc 6 | mov qword ptr [rsp + 8], rdx 7 | fild qword ptr [rsp + 8] 8 | fstp tbyte ptr [rcx] 9 | ret 10 | _fld_i8 endp 11 | 12 | end 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fld_r8.asm: -------------------------------------------------------------------------------- 1 | public _fld_r8 2 | 3 | .code 4 | 5 | _fld_r8 proc 6 | movsd qword ptr [rsp + 8], xmm1 7 | fld qword ptr [rsp + 8] 8 | fstp tbyte ptr [rcx] 9 | ret 10 | _fld_r8 endp 11 | 12 | end 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fld_u8.asm: -------------------------------------------------------------------------------- 1 | public _fld_u8 2 | 3 | .code 4 | 5 | _fld_u8 proc 6 | mov qword ptr [rsp + 8], rdx 7 | mov word ptr [rsp + 16], 403EH 8 | test rdx, rdx 9 | js L1 10 | fild qword ptr [rsp + 8] 11 | jmp L2 12 | 13 | L1: 14 | fld tbyte ptr [rsp + 8] 15 | L2: 16 | fstp tbyte ptr [rcx] 17 | ret 18 | _fld_u8 endp 19 | 20 | end 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fldcw.asm: -------------------------------------------------------------------------------- 1 | public _fldcw 2 | 3 | .code 4 | 5 | _fldcw proc 6 | mov word ptr [rsp + 8], cx 7 | fldcw word ptr [rsp + 8] 8 | ret 9 | _fldcw endp 10 | 11 | end 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fldl2e.asm: -------------------------------------------------------------------------------- 1 | name equ _fldl2e 2 | instruction equ fldl2e 3 | include proc3.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fldl2t.asm: -------------------------------------------------------------------------------- 1 | name equ _fldl2t 2 | instruction equ fldl2t 3 | include proc3.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fldlg2.asm: -------------------------------------------------------------------------------- 1 | name equ _fldlg2 2 | instruction equ fldlg2 3 | include proc3.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fldln2.asm: -------------------------------------------------------------------------------- 1 | name equ _fldln2 2 | instruction equ fldln2 3 | include proc3.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fldpi.asm: -------------------------------------------------------------------------------- 1 | name equ _fldpi 2 | instruction equ fldpi 3 | include proc3.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fldz.asm: -------------------------------------------------------------------------------- 1 | name equ _fldz 2 | instruction equ fldz 3 | include proc3.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fmod.asm: -------------------------------------------------------------------------------- 1 | public _fmod 2 | 3 | .code 4 | 5 | _fmod proc 6 | fld tbyte ptr [r8] 7 | fld tbyte ptr [rdx] 8 | L1: 9 | fprem 10 | fstsw ax 11 | test ax, 0400H 12 | jnz L1 13 | fstp tbyte ptr [rcx] 14 | fstp st(0) 15 | ret 16 | _fmod endp 17 | 18 | end 19 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fmul.asm: -------------------------------------------------------------------------------- 1 | name equ _fmul 2 | instruction equ fmul 3 | include proc2.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fpatan.asm: -------------------------------------------------------------------------------- 1 | name equ _fpatan 2 | instruction equ fpatan 3 | include proc2.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fptan.asm: -------------------------------------------------------------------------------- 1 | public _fptan 2 | 3 | .code 4 | 5 | _fptan proc 6 | fld tbyte ptr [rdx] 7 | fptan 8 | fstp st(0) 9 | fstp tbyte ptr [rcx] 10 | ret 11 | _fptan endp 12 | 13 | end 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/frndint.asm: -------------------------------------------------------------------------------- 1 | name equ _frndint 2 | instruction equ frndint 3 | include proc1.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fscale.asm: -------------------------------------------------------------------------------- 1 | public _fscale 2 | 3 | .code 4 | 5 | _fscale proc 6 | fld tbyte ptr [r8] 7 | fld tbyte ptr [rdx] 8 | fscale 9 | fstp tbyte ptr [rcx] 10 | fstp st(0) 11 | ret 12 | _fscale endp 13 | 14 | end 15 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fsin.asm: -------------------------------------------------------------------------------- 1 | name equ _fsin 2 | instruction equ fsin 3 | include proc1.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fsqrt.asm: -------------------------------------------------------------------------------- 1 | name equ _fsqrt 2 | instruction equ fsqrt 3 | include proc1.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fst_i2.asm: -------------------------------------------------------------------------------- 1 | public _fst_i2 2 | 3 | .code 4 | 5 | _fst_i2 proc 6 | fld tbyte ptr [rcx] 7 | fistp word ptr [rsp + 8] 8 | mov ax, word ptr [rsp + 8] 9 | ret 10 | _fst_i2 endp 11 | 12 | end 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fst_i4.asm: -------------------------------------------------------------------------------- 1 | public _fst_i4 2 | 3 | .code 4 | 5 | _fst_i4 proc 6 | fld tbyte ptr [rcx] 7 | fistp dword ptr [rsp + 8] 8 | mov eax, dword ptr [rsp + 8] 9 | ret 10 | _fst_i4 endp 11 | 12 | end 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fst_i8.asm: -------------------------------------------------------------------------------- 1 | public _fst_i8 2 | 3 | .code 4 | 5 | _fst_i8 proc 6 | fld tbyte ptr [rcx] 7 | fistp qword ptr [rsp + 8] 8 | mov rax, qword ptr [rsp + 8] 9 | ret 10 | _fst_i8 endp 11 | 12 | end 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fst_r8.asm: -------------------------------------------------------------------------------- 1 | public _fst_r8 2 | 3 | .code 4 | 5 | _fst_r8 proc 6 | fld tbyte ptr [rcx] 7 | fstp qword ptr [rsp + 8] 8 | movupd xmm0, qword ptr [rsp + 8] 9 | ret 10 | _fst_r8 endp 11 | 12 | end 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fst_u8.asm: -------------------------------------------------------------------------------- 1 | public _fst_u8 2 | 3 | .code 4 | 5 | _fst_u8 proc 6 | cmp word ptr [rcx + 8], 403EH 7 | jge L1 8 | fld tbyte ptr [rcx] 9 | fistp qword ptr [rsp + 8] 10 | mov rax, qword ptr [rsp + 8] 11 | ret 12 | L1: 13 | mov rax, -1 14 | jne L2 15 | mov rax, qword ptr [rcx] 16 | L2: 17 | db 0F3h 18 | ret 19 | _fst_u8 endp 20 | 21 | end 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fstcw.asm: -------------------------------------------------------------------------------- 1 | public _fstcw 2 | 3 | .code 4 | 5 | _fstcw proc 6 | fstcw word ptr [rsp + 8] 7 | mov ax, word ptr [rsp + 8] 8 | ret 9 | _fstcw endp 10 | 11 | end 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fsub.asm: -------------------------------------------------------------------------------- 1 | name equ _fsub 2 | instruction equ fsub 3 | include proc2.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/ftst.asm: -------------------------------------------------------------------------------- 1 | public _ftst 2 | 3 | .code 4 | 5 | _ftst proc 6 | fld tbyte ptr [rcx] 7 | ftst 8 | fstp st(0) 9 | fstsw ax 10 | and ax, 4300H 11 | ret 12 | _ftst endp 13 | 14 | end 15 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fxam.asm: -------------------------------------------------------------------------------- 1 | public _fxam 2 | 3 | .code 4 | 5 | _fxam proc 6 | fld tbyte ptr [rcx] 7 | fxam 8 | fstp st(0) 9 | fstsw ax 10 | and ax, 4300H 11 | ret 12 | _fxam endp 13 | 14 | end 15 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fxtract.asm: -------------------------------------------------------------------------------- 1 | public _fxtract 2 | 3 | .code 4 | 5 | _fxtract proc 6 | fld tbyte ptr [rdx] 7 | fxtract 8 | fstp tbyte ptr [rcx] 9 | mov rax, qword ptr [r8] 10 | fstp tbyte ptr [rax] 11 | ret 12 | _fxtract endp 13 | 14 | end 15 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fyl2x.asm: -------------------------------------------------------------------------------- 1 | name equ _fyl2x 2 | instruction equ fyl2x 3 | include proc4.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/fyl2xp1.asm: -------------------------------------------------------------------------------- 1 | name equ _fyl2xp1 2 | instruction equ fyl2xp1 3 | include proc4.inc 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/ldexp.asm: -------------------------------------------------------------------------------- 1 | public __ldexp 2 | 3 | .code 4 | 5 | __ldexp proc 6 | mov dword ptr [rsp + 8], r8d 7 | fild dword ptr [rsp + 8] 8 | fld tbyte ptr [rdx] 9 | fscale 10 | fstp tbyte ptr [rcx] 11 | fstp st(0) 12 | ret 13 | __ldexp endp 14 | 15 | end 16 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/proc1.inc: -------------------------------------------------------------------------------- 1 | public name 2 | 3 | .code 4 | 5 | name proc 6 | fld tbyte ptr [rdx] 7 | instruction 8 | fstp tbyte ptr [rcx] 9 | ret 10 | name endp 11 | 12 | end 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/proc2.inc: -------------------------------------------------------------------------------- 1 | public name 2 | 3 | .code 4 | 5 | name proc 6 | fld tbyte ptr [rdx] 7 | fld tbyte ptr [r8] 8 | instruction 9 | fstp tbyte ptr [rcx] 10 | ret 11 | name endp 12 | 13 | end 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/proc3.inc: -------------------------------------------------------------------------------- 1 | public name 2 | 3 | .code 4 | 5 | name proc 6 | instruction 7 | fstp tbyte ptr [rcx] 8 | ret 9 | name endp 10 | 11 | end 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/longdouble/x64/proc4.inc: -------------------------------------------------------------------------------- 1 | public name 2 | 3 | .code 4 | 5 | name proc 6 | fld tbyte ptr [r8] 7 | fld tbyte ptr [rdx] 8 | instruction 9 | fstp tbyte ptr [rcx] 10 | ret 11 | name endp 12 | 13 | end 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/ltoa.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "ltot.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/ltow.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "ltot.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/asinh.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) double __cdecl asinh(double x) 2 | { 3 | double __cdecl _CIlog(/*st0 x*/); 4 | 5 | __asm 6 | { 7 | fld qword ptr [esp + 4] ; Load real from stack 8 | fld1 ; Load real number 1 9 | fld st(1) ; Duplicate st1 10 | fmul st(0), st(0) ; Compute st * st 11 | fadd ; Increment 12 | fsqrt ; Take the square root 13 | fadd ; 2 to the st 14 | jmp _CIlog ; Compute the natural log(st) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/atan.c: -------------------------------------------------------------------------------- 1 | #pragma function(atan) 2 | 3 | __declspec(naked) double __cdecl atan(double x) 4 | { 5 | double __cdecl _CIatan(/*st0 x*/); 6 | 7 | __asm 8 | { 9 | fld qword ptr [esp + 4] ; Load real from stack 10 | jmp _CIatan 11 | } 12 | } 13 | 14 | __declspec(naked) double __cdecl _CIatan(/*st0 x*/) 15 | { 16 | __asm 17 | { 18 | fld1 ; Load constant 1 19 | fpatan ; Take the arctangent 20 | ret 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/atan2.c: -------------------------------------------------------------------------------- 1 | #pragma function(atan2) 2 | 3 | __declspec(naked) double __cdecl atan2(double y, double x) 4 | { 5 | double __cdecl _CIatan2(/*st1 y, st0 x*/); 6 | 7 | __asm 8 | { 9 | fld qword ptr [esp + 4] ; Load real from stack 10 | fld qword ptr [esp + 12] ; Load real from stack 11 | jmp _CIatan2 12 | } 13 | } 14 | 15 | __declspec(naked) double __cdecl _CIatan2(/*st1 y, st0 x*/) 16 | { 17 | __asm 18 | { 19 | fpatan ; Take the arctangent 20 | ret 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/chgsign.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) double __cdecl _chgsign(double x) 2 | { 3 | __asm 4 | { 5 | fld qword ptr [esp + 4] ; Load real from stack 6 | fchs ; Negate the result 7 | ret 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/copysign.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) double __cdecl copysign(double x, double y) 2 | { 3 | __asm 4 | { 5 | #define x (esp + 4) 6 | #define y (esp + 12) 7 | 8 | mov eax, dword ptr [x + 4] 9 | mov ecx, dword ptr [y + 4] 10 | and eax, 7FFFFFFFH 11 | and ecx, 80000000H 12 | mov edx, dword ptr [x ] 13 | or eax, ecx 14 | mov dword ptr [esp - 8], edx 15 | mov dword ptr [esp - 4], eax 16 | fld qword ptr [esp - 8] ; Load real from stack 17 | ret 18 | 19 | #undef x 20 | #undef y 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/cos.c: -------------------------------------------------------------------------------- 1 | #pragma function(cos) 2 | 3 | __declspec(naked) double __cdecl cos(double x) 4 | { 5 | double __cdecl _CIcos(/*st0 x*/); 6 | 7 | __asm 8 | { 9 | fld qword ptr [esp + 4] ; Load real from stack 10 | jmp _CIcos 11 | } 12 | } 13 | 14 | __declspec(naked) double __cdecl _CIcos(/*st0 x*/) 15 | { 16 | __asm 17 | { 18 | fcos ; Take the cosine 19 | ret 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/fabs.c: -------------------------------------------------------------------------------- 1 | #pragma function(fabs) 2 | 3 | __declspec(naked) double __cdecl fabs(double x) 4 | { 5 | __asm 6 | { 7 | fld qword ptr [esp + 4] ; Load real from stack 8 | fabs ; Take the absolute value 9 | ret 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/fdim.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) double __cdecl fdim(double x, double y) 2 | { 3 | __asm 4 | { 5 | fld qword ptr [esp + 4] ; Load x 6 | fld qword ptr [esp + 12] ; Load y 7 | fcom st(1) ; Cmompare y with x 8 | fstsw ax ; Get the FPU status word 9 | test ah, 45H ; y > x ? 10 | jz L1 ; Re-direct if y > x 11 | fsub ; Compute x - y 12 | ret 13 | 14 | align 16 15 | L1: 16 | fstp st(0) ; Set new top of stack 17 | fstp st(0) ; Set new top of stack 18 | fldz ; Set result to zero 19 | ret 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/finite.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifndef _M_IX86 4 | int __cdecl _finite(double x) 5 | { 6 | #define LSW(value) ((unsigned long int *)&(value))[0] 7 | #define MSW(value) ((unsigned long int *)&(value))[1] 8 | 9 | //return (*(uint64_t *)&x & 0x7FF0000000000000) < 0x7FF0000000000000; 10 | return (MSW(x) * 2) < (0x7FF00000 * 2); 11 | 12 | #undef LSW 13 | #undef MSW 14 | } 15 | #else 16 | __declspec(naked) int __cdecl _finite(double x) 17 | { 18 | __asm 19 | { 20 | #define LSW (esp + 4) 21 | #define MSW (esp + 8) 22 | 23 | mov ecx, dword ptr [MSW] 24 | xor eax, eax 25 | add ecx, ecx 26 | cmp ecx, 0x7FF00000 * 2 27 | adc eax, eax 28 | ret 29 | 30 | #undef LSW 31 | #undef MSW 32 | } 33 | } 34 | #endif 35 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/fma.c: -------------------------------------------------------------------------------- 1 | double __cdecl fma(double x, double y, double z) 2 | { 3 | return x * y + z; 4 | } 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/fmax.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) double __cdecl fmax(double x, double y) 2 | { 3 | __asm 4 | { 5 | fld qword ptr [esp + 12] ; Load y 6 | fxam ; Examine st 7 | fstsw ax ; Get the FPU status word 8 | fld qword ptr [esp + 4] ; Load x 9 | and ah, 45H ; Isolate C0, C2 and C3 10 | cmp ah, 01H ; x is NaN ? 11 | je L1 ; Re-direct if x is NaN 12 | fucom st(1) ; Cmompare x with y 13 | fstsw ax ; Get the FPU status word 14 | test ah, 01H ; x >= y ? 15 | jz L1 ; Re-direct if x >= y 16 | fxch ; Exchange st, st(1) 17 | L1: 18 | fstp st(1) ; Set new stack top and pop 19 | ret 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/fmin.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) double __cdecl fmin(double x, double y) 2 | { 3 | __asm 4 | { 5 | fld qword ptr [esp + 4] ; Load x 6 | fld qword ptr [esp + 12] ; Load y 7 | fxam ; Examine st 8 | fstsw ax ; Get the FPU status word 9 | and ah, 45H ; Isolate C0, C2 and C3 10 | cmp ah, 01H ; y is NaN ? 11 | je L1 ; Re-direct if y is NaN 12 | fucom st(1) ; Cmompare y with x 13 | fstsw ax ; Get the FPU status word 14 | test ah, 01H ; y < x ? 15 | jnz L2 ; Re-direct if y < x 16 | L1: 17 | fxch ; Exchange st, st(1) 18 | L2: 19 | fstp st(1) ; Set new stack top and pop 20 | ret 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/fpconst.h: -------------------------------------------------------------------------------- 1 | #ifndef _FPCONST_H_ 2 | #define _FPCONST_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | extern const unsigned int _fltused; 13 | extern const double fpconst_inf; 14 | extern const double fpconst_minus_inf; 15 | extern const double fpconst_nan; 16 | extern const double fpconst_nan_ind; 17 | extern const double fpconst_max; 18 | extern const double fpconst_true_min; 19 | extern const double fpconst_half; 20 | extern const double fpconst_one; 21 | extern const double fpconst_two; 22 | extern const double fpconst_minus_one; 23 | extern const double fpconst_fyl2xp1_limit; 24 | extern const unsigned int fpconst_x0363; 25 | extern const unsigned int fpconst_x0763; 26 | extern const unsigned int fpconst_x0B63; 27 | extern const unsigned int fpconst_x0F63; 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif // _FPCONST_H_ 34 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/fpreset.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) void __cdecl _fpreset() 2 | { 3 | __asm 4 | { 5 | finit ; Initialize the FPU 6 | ret 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/frexp10.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | double __cdecl ldexp10(double x, int exp); 5 | 6 | double __cdecl frexp10(double x, int *expptr) 7 | { 8 | if (_finite(x)) 9 | x = ldexp10(x, -(*expptr = (int)floor(log10(x)))); 10 | else 11 | *expptr = -1; 12 | return x; 13 | } 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/ftol.asm: -------------------------------------------------------------------------------- 1 | ;----------------------------------------------------------------------------- 2 | ; ftol.asm - floating point to integer conversion 3 | ;----------------------------------------------------------------------------- 4 | .486 5 | .model flat, c 6 | 7 | public _ftol 8 | 9 | alias <_ftol2> = <_ftol> 10 | alias <_ftol2_sse> = <_ftol> 11 | 12 | .code 13 | 14 | align 16 15 | 16 | _ftol proc near 17 | 18 | fnstcw word ptr [esp - 4] 19 | mov ax, word ptr [esp - 4] 20 | or ax, 0C00h 21 | mov word ptr [esp - 8], ax 22 | fldcw word ptr [esp - 8] 23 | fistp qword ptr [esp - 16] 24 | fldcw word ptr [esp - 4] 25 | mov eax, dword ptr [esp - 16] 26 | mov edx, dword ptr [esp - 12] 27 | ret 28 | 29 | _ftol endp 30 | 31 | end 32 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/isinf.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifndef _M_IX86 4 | int __cdecl isinf(double x) 5 | { 6 | #define LSW(value) ((unsigned long int *)&(value))[0] 7 | #define MSW(value) ((unsigned long int *)&(value))[1] 8 | 9 | //return (*(uint64_t *)&x & 0x7FFFFFFFFFFFFFFF) == 0x7FF0000000000000; 10 | return !((MSW(x) * 2) ^ (0x7FF00000 * 2) | LSW(x)); 11 | 12 | #undef LSW 13 | #undef MSW 14 | } 15 | #else 16 | __declspec(naked) int __cdecl isinf(double x) 17 | { 18 | __asm 19 | { 20 | #define LSW (esp + 4) 21 | #define MSW (esp + 8) 22 | 23 | mov edx, dword ptr [LSW] 24 | mov ecx, dword ptr [MSW] 25 | xor eax, eax 26 | add ecx, ecx 27 | xor ecx, 0x7FF00000 * 2 28 | or ecx, edx 29 | setz al 30 | ret 31 | 32 | #undef LSW 33 | #undef MSW 34 | } 35 | } 36 | #endif 37 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/isnan.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifndef _M_IX86 4 | int __cdecl _isnan(double x) 5 | { 6 | #define LSW(value) ((unsigned long int *)&(value))[0] 7 | #define MSW(value) ((unsigned long int *)&(value))[1] 8 | 9 | //return (MSW(x) & 0x7FF00000) == 0x7FF00000 && ((MSW(x) & 0x000FFFFF) || LSW(x)); 10 | return (*(uint64_t *)&x & 0x7FFFFFFFFFFFFFFF) >= 0x7FF0000000000001; 11 | 12 | #undef LSW 13 | #undef MSW 14 | } 15 | #else 16 | __declspec(naked) int __cdecl _isnan(double x) 17 | { 18 | __asm 19 | { 20 | #define LSW (esp + 4) 21 | #define MSW (esp + 8) 22 | 23 | mov eax, dword ptr [LSW] 24 | mov ecx, dword ptr [MSW] 25 | and ecx, 0x7FFFFFFF 26 | cmp eax, 1 27 | sbb ecx, 0x7FF00000 28 | mov eax, 1 29 | sbb eax, 0 30 | ret 31 | 32 | #undef LSW 33 | #undef MSW 34 | } 35 | } 36 | #endif 37 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/llrint.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) __int64 __cdecl llrint(double x) 2 | { 3 | __asm 4 | { 5 | fld qword ptr [esp + 4] ; Load real from stack 6 | fistp qword ptr [esp - 8] 7 | mov eax, dword ptr [esp - 8] 8 | mov edx, dword ptr [esp - 4] 9 | ret 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/llround.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) long long __cdecl llround(double x) 2 | { 3 | extern const unsigned int fpconst_x0363; 4 | #define _x0363 fpconst_x0363 5 | 6 | __asm 7 | { 8 | fld qword ptr [esp + 4] ; Load real from stack 9 | fstcw word ptr [esp - 4] ; Save control word 10 | fclex ; Clear exceptions 11 | fldcw word ptr [_x0363] ; Set new rounding control 12 | fistp qword ptr [esp - 12] ; Round to integer 13 | mov eax, dword ptr [esp - 12] ; 14 | mov edx, dword ptr [esp - 8] ; 15 | fclex ; Clear exceptions 16 | fldcw word ptr [esp - 4] ; Restore control word 17 | ret 18 | } 19 | 20 | #undef _x0363 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/logb.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) double __cdecl logb(double x) 2 | { 3 | __asm 4 | { 5 | fld qword ptr [esp + 4] ; Load real from stack 6 | fxtract ; Get exponent and significand 7 | fstp st(0) ; Set new top of stack 8 | ret 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/lrint.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) long __cdecl lrint(double x) 2 | { 3 | __asm 4 | { 5 | fld qword ptr [esp + 4] ; Load real from stack 6 | fistp dword ptr [esp - 4] 7 | mov eax, dword ptr [esp - 4] 8 | ret 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/lround.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) long __cdecl lround(double x) 2 | { 3 | extern const unsigned int fpconst_x0363; 4 | #define _x0363 fpconst_x0363 5 | 6 | __asm 7 | { 8 | fld qword ptr [esp + 4] ; Load real from stack 9 | fstcw word ptr [esp - 4] ; Save control word 10 | fclex ; Clear exceptions 11 | fldcw word ptr [_x0363] ; Set new rounding control 12 | fistp dword ptr [esp - 8] ; Round to integer 13 | mov eax, dword ptr [esp - 8] ; 14 | fclex ; Clear exceptions 15 | fldcw word ptr [esp - 4] ; Restore control word 16 | ret 17 | } 18 | 19 | #undef _x0363 20 | } 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/nearbyint.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) double __cdecl nearbyint(double x) 2 | { 3 | __asm 4 | { 5 | fld qword ptr [esp + 4] ; Load real from stack 6 | fstcw word ptr [esp - 4] ; Save control word 7 | fclex ; Clear exceptions 8 | mov ax, word ptr [esp - 4] ; Control word 9 | or ax, 20H ; 10 | mov word ptr [esp - 8], ax ; 11 | fldcw word ptr [esp - 8] ; Set new control word 12 | frndint ; Round to integer 13 | fclex ; Clear exceptions 14 | fldcw word ptr [esp - 4] ; Restore control word 15 | ret 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/rint.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) double __cdecl rint(double x) 2 | { 3 | __asm 4 | { 5 | fld qword ptr [esp + 4] ; Load real from stack 6 | fstcw word ptr [esp - 4] ; Save control word 7 | fclex ; Clear exceptions 8 | mov ax, word ptr [esp - 4] ; Control word 9 | and ax, not 20H ; 10 | mov word ptr [esp - 8], ax ; 11 | fldcw word ptr [esp - 8] ; Set new control word 12 | frndint ; Round to integer 13 | fldcw word ptr [esp - 4] ; Restore control word 14 | ret 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/signbit.c: -------------------------------------------------------------------------------- 1 | #define MSW(value) \ 2 | *((unsigned long int *)&(value) + 1) 3 | 4 | int __cdecl signbit(double x) 5 | { 6 | return (long int)MSW(x) < 0; 7 | } 8 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/significand.c: -------------------------------------------------------------------------------- 1 | __declspec(naked) double __cdecl significand(double x) 2 | { 3 | __asm 4 | { 5 | fld qword ptr [esp + 4] ; Load real from stack 6 | fxtract ; Get exponent and significand 7 | fstp st(1) ; Set new stack top and pop 8 | ret 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/sin.c: -------------------------------------------------------------------------------- 1 | #pragma function(sin) 2 | 3 | __declspec(naked) double __cdecl sin(double x) 4 | { 5 | double __cdecl _CIsin(/*st0 x*/); 6 | 7 | __asm 8 | { 9 | fld qword ptr [esp + 4] ; Load real from stack 10 | jmp _CIsin 11 | } 12 | } 13 | 14 | __declspec(naked) double __cdecl _CIsin(/*st0 x*/) 15 | { 16 | __asm 17 | { 18 | fsin ; Take the sine 19 | ret ; Return to caller 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/math/tan.c: -------------------------------------------------------------------------------- 1 | #pragma function(tan) 2 | 3 | __declspec(naked) double __cdecl tan(double x) 4 | { 5 | double __cdecl _CItan(/*st0 x*/); 6 | 7 | __asm 8 | { 9 | fld qword ptr [esp + 4] ; Load real from stack 10 | jmp _CItan 11 | } 12 | } 13 | 14 | __declspec(naked) double __cdecl _CItan(/*st0 x*/) 15 | { 16 | __asm 17 | { 18 | fptan ; Take the tangent 19 | fstp st(0) ; Throw away the constant 1 20 | ret 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/mbslwr.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifndef _M_IX86 4 | unsigned char * __cdecl _mbslwr(unsigned char *string) 5 | { 6 | LCMapStringA(GetThreadLocale(), LCMAP_LOWERCASE, string, -1, string, INT_MAX); 7 | return string; 8 | } 9 | #else 10 | __declspec(naked) unsigned char * __cdecl _mbslwr(unsigned char *string) 11 | { 12 | __asm 13 | { 14 | #define string (esp + 4) 15 | 16 | call GetThreadLocale 17 | mov ecx, dword ptr [string] 18 | push 07FFFFFFFH 19 | push ecx 20 | push -1 21 | push ecx 22 | push LCMAP_LOWERCASE 23 | push eax 24 | call LCMapStringA 25 | mov eax, dword ptr [string] 26 | ret 27 | 28 | #undef string 29 | } 30 | } 31 | #endif 32 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/mbsnextc.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifndef _M_IX86 4 | unsigned int __cdecl _mbsnextc(const unsigned char *string) 5 | { 6 | unsigned int c, trail; 7 | 8 | if (IsDBCSLeadByteEx(CP_THREAD_ACP, (BYTE)(c = *(string++))) && (trail = *string)) 9 | c = (c << 8) | trail; 10 | return c; 11 | } 12 | #else 13 | __declspec(naked) unsigned int __cdecl _mbsnextc(const unsigned char *string) 14 | { 15 | __asm 16 | { 17 | #define string (esp + 4) 18 | 19 | mov edx, dword ptr [string] 20 | xor eax, eax 21 | mov al, byte ptr [edx] 22 | inc edx 23 | push eax 24 | push edx 25 | push eax 26 | push CP_THREAD_ACP 27 | call IsDBCSLeadByteEx 28 | test eax, eax 29 | pop edx 30 | pop eax 31 | jz L1 32 | shl eax, 8 33 | xor ecx, ecx 34 | mov cl, byte ptr [edx] 35 | or eax, ecx 36 | L1: 37 | rep ret 38 | 39 | #undef string 40 | } 41 | } 42 | #endif 43 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/mbstok.c: -------------------------------------------------------------------------------- 1 | #ifndef _MBCS 2 | #define _MBCS 1 3 | #endif 4 | #undef _UNICODE 5 | #undef UNICODE 6 | #include 7 | #include 8 | #define _mbstok 9 | #include "tcstok.h" 10 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/mbsupr.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifndef _M_IX86 4 | unsigned char * __cdecl _mbsupr(unsigned char *string) 5 | { 6 | LCMapStringA(GetThreadLocale(), LCMAP_UPPERCASE, string, -1, string, INT_MAX); 7 | return string; 8 | } 9 | #else 10 | __declspec(naked) unsigned char * __cdecl _mbsupr(unsigned char *string) 11 | { 12 | __asm 13 | { 14 | #define string (esp + 4) 15 | 16 | call GetThreadLocale 17 | mov ecx, dword ptr [string] 18 | push 07FFFFFFFH 19 | push ecx 20 | push -1 21 | push ecx 22 | push LCMAP_UPPERCASE 23 | push eax 24 | call LCMapStringA 25 | mov eax, dword ptr [string] 26 | ret 27 | 28 | #undef string 29 | } 30 | } 31 | #endif 32 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/memmem.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #undef REVERSE 5 | #include "tmemmem.h" 6 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/mempcpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tmempcpy.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/memrmem.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #ifndef REVERSE 5 | #define REVERSE 1 6 | #endif 7 | #include "tmemmem.h" 8 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/putenv.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tputenv.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/snprintf.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "sntprintf.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/snwprintf.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "sntprintf.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/stpcpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcpcpy.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/stpncpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcpncpy.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strcat.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcscat.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strcpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcscpy.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strdec.c: -------------------------------------------------------------------------------- 1 | #ifndef _M_IX86 2 | char * __cdecl _strdec(const char *start, const char *current) 3 | { 4 | return start < current ? (char *)current - 1 : NULL; 5 | } 6 | #else 7 | __declspec(naked) char * __cdecl _strdec(const char *start, const char *current) 8 | { 9 | __asm 10 | { 11 | #define start (esp + 4) 12 | #define current (esp + 8) 13 | 14 | mov ecx, dword ptr [start] 15 | mov eax, dword ptr [current] 16 | cmp ecx, eax 17 | jae L1 18 | dec eax 19 | ret 20 | 21 | align 16 22 | L1: 23 | xor eax, eax 24 | ret 25 | 26 | #undef start 27 | #undef current 28 | } 29 | } 30 | #endif 31 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strinc.c: -------------------------------------------------------------------------------- 1 | #ifndef _M_IX86 2 | char * __cdecl _strinc(const char *current) 3 | { 4 | return (char *)current + 1; 5 | } 6 | #else 7 | __declspec(naked) char * __cdecl _strinc(const char *current) 8 | { 9 | __asm 10 | { 11 | #define current (esp + 4) 12 | 13 | mov eax, dword ptr [current] 14 | inc eax 15 | ret 16 | 17 | #undef current 18 | } 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/stristr.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcsistr.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strlcat.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include 5 | #ifndef _tcslcat 6 | #define _tcslcat strlcat 7 | #endif 8 | #include "tcslcat.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strlcpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include 5 | #ifndef _tcslcpy 6 | #define _tcslcpy strlcpy 7 | #endif 8 | #include "tcslcpy.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strncat.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcsncat.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strncpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcsncpy.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strnset.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcsnset.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strrev.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcsrev.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strristr.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcsristr.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strrstr.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcsrstr.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strset.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcsset.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strtod.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcstod.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strtoi64.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcstoi64.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/strtok.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include 5 | #include 6 | #ifndef DISABLE_UCRT 7 | #define strtok 8 | #endif 9 | #include "tcstok.h" 10 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/tcsistr.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #ifdef _UNICODE 5 | #define _tcsistr _wcsistr 6 | #define _tmemimem _wmemimem 7 | wchar_t * __cdecl _wmemimem(const wchar_t *haystack, size_t haystacklen, const wchar_t *needle, size_t needlelen); 8 | #else 9 | #define _tcsistr _stristr 10 | #define _tmemimem _memimem 11 | void * __cdecl _memimem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen); 12 | #pragma function(strlen) 13 | #endif 14 | 15 | TCHAR * __cdecl _tcsistr(const TCHAR *haystack, const TCHAR *needle) 16 | { 17 | size_t needlelen; 18 | 19 | needlelen = _tcslen(needle); 20 | if (!needlelen) 21 | return (TCHAR *)haystack; 22 | return _tmemimem(haystack, _tcslen(haystack), needle, needlelen); 23 | } 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/tcsristr.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #ifdef _UNICODE 5 | #define _tcsristr _wcsristr 6 | #define _tmemrimem _wmemrimem 7 | wchar_t * __cdecl _wmemrimem(const wchar_t *haystack, size_t haystacklen, const wchar_t *needle, size_t needlelen); 8 | #else 9 | #define _tcsristr _strristr 10 | #define _tmemrimem _memrimem 11 | void * __cdecl _memrimem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen); 12 | #pragma function(strlen) 13 | #endif 14 | 15 | TCHAR * __cdecl _tcsristr(const TCHAR *haystack, const TCHAR *needle) 16 | { 17 | size_t needlelen; 18 | 19 | needlelen = _tcslen(needle); 20 | if (!needlelen) 21 | return (TCHAR *)haystack; 22 | return _tmemrimem(haystack, _tcslen(haystack), needle, needlelen); 23 | } 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/tcsrstr.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #ifdef _UNICODE 5 | #define _tcsrstr _wcsrstr 6 | #define _tmemrmem _wmemrmem 7 | wchar_t * __cdecl _wmemrmem(const wchar_t *haystack, size_t haystacklen, const wchar_t *needle, size_t needlelen); 8 | #else 9 | #define _tcsrstr _strrstr 10 | #define _tmemrmem _memrmem 11 | void * __cdecl _memrmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen); 12 | #pragma function(strlen) 13 | #endif 14 | 15 | TCHAR * __cdecl _tcsrstr(const TCHAR *haystack, const TCHAR *needle) 16 | { 17 | size_t needlelen; 18 | 19 | needlelen = _tcslen(needle); 20 | if (!needlelen) 21 | return (TCHAR *)haystack; 22 | return _tmemrmem(haystack, _tcslen(haystack), needle, needlelen); 23 | } 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/tcsset.h: -------------------------------------------------------------------------------- 1 | #include "noinline_wchar.h" 2 | #include 3 | 4 | #ifdef _UNICODE 5 | #define _tmemset wmemset 6 | typedef wint_t int_t; 7 | #else 8 | #pragma function(strlen, memset) 9 | #define _tmemset memset 10 | typedef int int_t; 11 | #endif 12 | 13 | #ifndef _M_IX86 14 | TCHAR * __cdecl _tcsset(TCHAR *string, int_t c) 15 | { 16 | return _tmemset(string, c, _tcslen(string)); 17 | } 18 | #else 19 | __declspec(naked) TCHAR * __cdecl _tcsset(TCHAR *string, int_t c) 20 | { 21 | __asm 22 | { 23 | #define string (esp + 4) 24 | #define c (esp + 8) 25 | 26 | push dword ptr [string] 27 | call _tcslen 28 | mov edx, dword ptr [c + 4] 29 | mov ecx, dword ptr [string + 4] 30 | mov dword ptr [esp], eax 31 | push edx 32 | push ecx 33 | call _tmemset 34 | add esp, 12 35 | ret 36 | 37 | #undef string 38 | #undef c 39 | } 40 | } 41 | #endif 42 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/tcsstr.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #ifdef _UNICODE 5 | #define _tcsstr wcsstr 6 | #define _tmemmem _wmemmem 7 | wchar_t * __cdecl _wmemmem(const wchar_t *haystack, size_t haystacklen, const wchar_t *needle, size_t needlelen); 8 | #else 9 | #define _tcsstr strstr 10 | #define _tmemmem _memmem 11 | void * __cdecl _memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen); 12 | #pragma function(strlen) 13 | #endif 14 | 15 | TCHAR * __cdecl _tcsstr(const TCHAR *haystack, const TCHAR *needle) 16 | { 17 | size_t needlelen; 18 | 19 | needlelen = _tcslen(needle); 20 | if (!needlelen) 21 | return (TCHAR *)haystack; 22 | return _tmemmem(haystack, _tcslen(haystack), needle, needlelen); 23 | } 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/tgetenv.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | #pragma warning(disable:4273) 7 | 8 | errno_t __cdecl _tgetenv_s(size_t *requiredCount, TCHAR *buffer, size_t bufferCount, const TCHAR *varname) 9 | { 10 | if (requiredCount && (buffer || !bufferCount) && varname) 11 | if ((*requiredCount = GetEnvironmentVariable(varname, buffer, bufferCount) < bufferCount) 12 | return 0; 13 | else 14 | return ERANGE; 15 | return EINVAL; 16 | } 17 | 18 | TCHAR * __cdecl _tgetenv(const TCHAR *varname) 19 | { 20 | static TCHAR buffer[256]; 21 | size_t count; 22 | errno_t status; 23 | 24 | if (status = _tgetenv_s(&count, buffer, _countof(buffer), varname)) 25 | errno = status; 26 | else if (count) 27 | return buffer; 28 | return NULL; 29 | } 30 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/tmempcpy.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #ifdef _UNICODE 5 | #include 6 | #define type wchar_t 7 | #define _tmempcpy wmempcpy 8 | #pragma intrinsic(__debugbreak) 9 | #ifndef _WIN64 10 | #pragma intrinsic(_addcarry_u32) 11 | #define _add_uintptr(a, b, out) _addcarry_u32(0, a, b, out) 12 | #else 13 | #pragma intrinsic(_addcarry_u64) 14 | #define _add_uintptr(a, b, out) _addcarry_u64(0, a, b, out) 15 | #endif 16 | #else 17 | #define type void 18 | #define _tmempcpy mempcpy 19 | #endif 20 | 21 | #pragma function(memcpy) 22 | 23 | type * __cdecl _tmempcpy(type *dest, type *src, size_t count) 24 | { 25 | #ifdef _UNICODE 26 | if (_add_uintptr(count, count, &count)) 27 | __debugbreak(); 28 | #endif 29 | return (type *)((char *)memcpy(dest, src, count) + count); 30 | } 31 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/ttof.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #pragma warning(disable:4273) 5 | 6 | double __cdecl _ttof(const TCHAR *string) 7 | { 8 | return _tcstod(string, NULL); 9 | } 10 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/ttoi64.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #pragma warning(disable:4273) 5 | 6 | long __cdecl _ttol(const TCHAR *string) 7 | { 8 | return _tcstol(string, NULL, 10); 9 | } 10 | 11 | unsigned long __cdecl _ttoul(const TCHAR *string) 12 | { 13 | return _tcstoul(string, NULL, 10); 14 | } 15 | 16 | __int64 __cdecl _ttoi64(const TCHAR *string) 17 | { 18 | return _tcstoi64(string, NULL, 10); 19 | } 20 | 21 | unsigned __int64 __cdecl _ttoui64(const TCHAR *string) 22 | { 23 | return _tcstoui64(string, NULL, 10); 24 | } 25 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/ucrt/strtod.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "tcstod.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/ucrt/wcstod.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcstod.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/ui64toa.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "ui64tot.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/ui64tow.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "ui64tot.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/uitot/uitoa.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "uitot_source.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/uitot/uitow.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "uitot_source.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/ultoa.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "ultot.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/ultow.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "ultot.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/utf16map.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #pragma intrinsic(_bittestandset, _bittest) 5 | #pragma warning(disable:4273) 6 | 7 | #define UTF16MAP map 8 | 9 | #ifdef UTF16MAP 10 | __declspec(align(16)) static unsigned long UTF16MAP[0x10000 / 32]; 11 | #endif 12 | 13 | #include "wcsspn.h" 14 | #ifdef DISABLE_UCRT 15 | #include "wcscspn.h" 16 | #endif 17 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/vsnprintf.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #undef _UNICODE 3 | #undef UNICODE 4 | #include "vsntprintf.h" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/vsnwprintf.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "vsntprintf.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcpcpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcpcpy.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcpncpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcpncpy.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcscat.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcscat.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcscpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcscpy.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcsinc.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifndef _M_IX86 4 | wchar_t * __cdecl _wcsinc(const wchar_t *current) 5 | { 6 | return (wchar_t *)current + 1; 7 | } 8 | #else 9 | __declspec(naked) wchar_t * __cdecl _wcsinc(const wchar_t *current) 10 | { 11 | __asm 12 | { 13 | #define current (esp + 4) 14 | 15 | mov eax, dword ptr [current] 16 | add eax, 2 17 | ret 18 | 19 | #undef current 20 | } 21 | } 22 | #endif 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcsistr.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcsistr.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcslcat.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include 9 | #ifndef _tcslcat 10 | #define _tcslcat wcslcat 11 | #endif 12 | #include "tcslcat.h" 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcslcpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include 9 | #ifndef _tcslcpy 10 | #define _tcslcpy wcslcpy 11 | #endif 12 | #include "tcslcpy.h" 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcsncat.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcsncat.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcsncpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcsncpy.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcsnset.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcsnset.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcsrev.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcsrev.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcsristr.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcsristr.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcsrstr.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcsrstr.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcsset.c: -------------------------------------------------------------------------------- 1 | #ifndef _MBCS 2 | #define _MBCS 1 3 | #endif 4 | #undef _UNICODE 5 | #undef UNICODE 6 | #include "tcsset.h" 7 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcsstr.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcsstr.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcstod.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcstod.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcstoi64.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tcstoi64.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wcstok.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include 9 | #include 10 | #define wcstok 11 | #include "tcstok.h" 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wgetenv.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tgetenv.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wmemcpy.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #pragma intrinsic(__debugbreak) 5 | #ifndef _WIN64 6 | #pragma intrinsic(_addcarry_u32) 7 | #define _add_uintptr(a, b, out) _addcarry_u32(0, a, b, out) 8 | #else 9 | #pragma intrinsic(_addcarry_u64) 10 | #define _add_uintptr(a, b, out) _addcarry_u64(0, a, b, out) 11 | #endif 12 | 13 | #pragma warning(disable:4163) 14 | #pragma function(wmemcpy) 15 | #pragma function(memcpy) 16 | 17 | wchar_t * __cdecl wmemcpy(wchar_t *dest, const wchar_t *src, size_t count) 18 | { 19 | if (_add_uintptr(count, count, &count)) 20 | __debugbreak(); 21 | return memcpy(dest, src, count); 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wmemmem.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #undef REVERSE 9 | #include "tmemmem.h" 10 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wmemmove.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #pragma intrinsic(__debugbreak) 5 | #ifndef _WIN64 6 | #pragma intrinsic(_addcarry_u32) 7 | #define _add_uintptr(a, b, out) _addcarry_u32(0, a, b, out) 8 | #else 9 | #pragma intrinsic(_addcarry_u64) 10 | #define _add_uintptr(a, b, out) _addcarry_u64(0, a, b, out) 11 | #endif 12 | 13 | #pragma warning(disable:4163) 14 | #pragma function(wmemmove) 15 | #pragma function(memmove) 16 | 17 | wchar_t * __cdecl wmemmove(wchar_t *dest, const wchar_t *src, size_t count) 18 | { 19 | if (_add_uintptr(count, count, &count)) 20 | __debugbreak(); 21 | return memmove(dest, src, count); 22 | } 23 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wmempcpy.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tmempcpy.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wmemrmem.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #ifndef REVERSE 9 | #define REVERSE 1 10 | #endif 11 | #include "tmemmem.h" 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wputenv.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "tputenv.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wtof.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "ttof.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/crt/wtoi64.c: -------------------------------------------------------------------------------- 1 | #undef _MBCS 2 | #ifndef _UNICODE 3 | #define _UNICODE 1 4 | #endif 5 | #ifndef UNICODE 6 | #define UNICODE 1 7 | #endif 8 | #include "ttoi64.h" 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TApplication.c: -------------------------------------------------------------------------------- 1 | #include "TApplication.h" 2 | 3 | __declspec(naked) void __fastcall TApplication_ProcessMessages(LPVOID _Application) 4 | { 5 | __asm 6 | { 7 | mov edx, 00571120H 8 | mov eax, ecx 9 | jmp edx 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TBitmap.c: -------------------------------------------------------------------------------- 1 | #include "TBitmap.h" 2 | 3 | __declspec(naked) LPVOID __fastcall TBitmap_GetCanvas(LPVOID Bitmap) 4 | { 5 | __asm 6 | { 7 | mov edx, 00562CF0H 8 | mov eax, ecx 9 | jmp edx 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TBitmap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | EXTERN_C LPVOID __fastcall TBitmap_GetCanvas(LPVOID Bitmap); 6 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TBrush.c: -------------------------------------------------------------------------------- 1 | #include "TBrush.h" 2 | 3 | __declspec(naked) TBrushStyle __fastcall TBrush_GetStyle(TBrush *this) 4 | { 5 | __asm 6 | { 7 | mov ecx, dword ptr [ecx + 16] 8 | xor eax, eax 9 | mov al, byte ptr [ecx + 28] 10 | ret 11 | } 12 | } 13 | 14 | __declspec(naked) void __fastcall TBrush_SetStyle(TBrush *this, TBrushStyle Style) 15 | { 16 | __asm 17 | { 18 | mov eax, ecx 19 | mov ecx, 0055DC58H 20 | jmp ecx 21 | } 22 | } 23 | 24 | __declspec(naked) COLORREF __fastcall TBrush_GetColor(TBrush *this) 25 | { 26 | __asm 27 | { 28 | mov eax, dword ptr [ecx + 16] 29 | mov eax, dword ptr [eax + 20] 30 | ret 31 | } 32 | } 33 | 34 | __declspec(naked) void __fastcall TBrush_SetColor(TBrush *this, COLORREF Color) 35 | { 36 | __asm 37 | { 38 | mov eax, ecx 39 | mov ecx, 0055DB3CH 40 | jmp ecx 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TBrush.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "TControl.h" 5 | #include "TCanvas.h" 6 | 7 | typedef unsigned char TBrushStyle; 8 | 9 | EXTERN_C TBrushStyle __fastcall TBrush_GetStyle(TBrush *this); 10 | EXTERN_C void __fastcall TBrush_SetStyle(TBrush *this, TBrushStyle Style); 11 | EXTERN_C COLORREF __fastcall TBrush_GetColor(TBrush *this); 12 | EXTERN_C void __fastcall TBrush_SetColor(TBrush *this, COLORREF Color); 13 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TCalcImage.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/extern/TCalcImage.h -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TCalcValBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "TWinControl.h" 5 | 6 | #pragma pack(push, 1) 7 | typedef struct _TCalcValBox 8 | { 9 | TEdit *edit; 10 | DWORD frontTColor; 11 | DWORD backTColor; 12 | BYTE backXOffset; 13 | BYTE backYOffset; 14 | BYTE frontXOffset; 15 | BYTE frontYOffset; 16 | DWORD mode; 17 | } TCalcValBox; 18 | #pragma pack(pop) 19 | 20 | #define typename TCalcValBox 21 | #include "bcb6_std_vector_template.h" 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TCheckBox.c: -------------------------------------------------------------------------------- 1 | #include "TCheckBox.h" 2 | 3 | __declspec(naked) BOOLEAN __fastcall TCheckBox_GetChecked(LPVOID this) 4 | { 5 | __asm 6 | { 7 | mov eax, ecx 8 | mov ecx, dword ptr [ecx] 9 | jmp dword ptr [ecx + 196] 10 | } 11 | } 12 | 13 | __declspec(naked) void __fastcall TCheckBox_SetChecked(LPVOID this, BOOLEAN Value) 14 | { 15 | __asm 16 | { 17 | mov eax, ecx 18 | mov ecx, dword ptr [ecx] 19 | jmp dword ptr [ecx + 200] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TComboBox.c: -------------------------------------------------------------------------------- 1 | #include "TComboBox.h" 2 | 3 | __declspec(naked) void __fastcall TComboBox_SetItemIndex(LPCVOID ComboBox, const int Index) 4 | { 5 | __asm 6 | { 7 | mov eax, ecx 8 | mov ecx, dword ptr [ecx] 9 | jmp dword ptr [ecx + 204] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TComboBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | EXTERN_C void __fastcall TComboBox_SetItemIndex(LPCVOID ComboBox, const int Index); 6 | 7 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TEdit.c: -------------------------------------------------------------------------------- 1 | #include "TEdit.h" 2 | 3 | __declspec(naked) void __fastcall TEdit_SetFocus(LPVOID Edit) 4 | { 5 | __asm 6 | { 7 | mov edx, dword ptr [ecx] 8 | mov eax, ecx 9 | jmp dword ptr [edx + 0C0H] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TEdit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | EXTERN_C void __fastcall TEdit_SetFocus(LPVOID Edit); 6 | 7 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TGuideForm.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "bcb6_std_string.h" 5 | #include "TWinControl.h" 6 | 7 | #pragma pack(push, 1) 8 | typedef struct _TGuideForm 9 | { 10 | union 11 | { 12 | LPCVOID *VTable; 13 | TForm super; 14 | }; 15 | TPanel *Panel_T; 16 | TRichEdit *REdit; 17 | TPanel *Panel_B; 18 | TComboBox *UserModeCmbBox; 19 | bcb6_std_string helpPath; 20 | } TGuideForm; 21 | #pragma pack(pop) 22 | 23 | #define GUIDE_IS_CLEAR 0x01 24 | #define GUIDE_IS_NOT_LINE 0x02 25 | 26 | EXTERN_C void __cdecl TGuideForm_Guide(TGuideForm *this, const char *Mes, int Flags); 27 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/THeapListData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "tlhelp32fix.h" 5 | 6 | #pragma pack(push, 1) 7 | typedef struct _THeapListData 8 | { 9 | HEAPLIST32 heapList; 10 | DWORD heapListAddress; 11 | DWORD heapListSize; 12 | } THeapListData; 13 | #pragma pack(pop) 14 | 15 | #define typename THeapListData 16 | #include "bcb6_std_vector_template.h" 17 | 18 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TListBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | EXTERN_C int __fastcall TListBox_GetItemIndex(LPVOID ListBox); 6 | EXTERN_C int __fastcall TListBox_GetTopIndex(LPVOID ListBox); 7 | EXTERN_C int __fastcall TListBox_GetItemHeight(LPVOID ListBox); 8 | EXTERN_C int __fastcall TListBox_ItemAtPos(LPVOID ListBox, LPPOINT Pos, BOOLEAN Existing); 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TMainMenu.c: -------------------------------------------------------------------------------- 1 | #include "TMainMenu.h" 2 | 3 | __declspec(naked) HMENU __fastcall TMainMenu_GetHandle(LPCVOID MainMenu) 4 | { 5 | __asm 6 | { 7 | mov edx, dword ptr [ecx] 8 | mov eax, ecx 9 | jmp dword ptr [edx + 52] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TMainMenu.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | EXTERN_C HMENU __fastcall TMainMenu_GetHandle(LPCVOID MainMenu); 6 | 7 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TMenuItem.c: -------------------------------------------------------------------------------- 1 | #include "TMenuItem.h" 2 | 3 | extern const DWORD vcl_System_AnsiString_ctor_sz; 4 | extern const DWORD vcl_System_AnsiString_dtor; 5 | 6 | __declspec(naked) HMENU __fastcall TMenuItem_GetHandle(TMenuItem *this) 7 | { 8 | __asm 9 | { 10 | mov edx, 0054A0DCH 11 | mov eax, ecx 12 | jmp edx 13 | } 14 | } 15 | 16 | __declspec(naked) void __fastcall TMenuItem_SetCaption(TMenuItem *this, LPCSTR lpText) 17 | { 18 | extern const DWORD _TMenuItem_SetCaption; 19 | 20 | __asm 21 | { 22 | push eax 23 | mov eax, esp 24 | push ecx 25 | call dword ptr [vcl_System_AnsiString_ctor_sz] 26 | mov edx, dword ptr [eax] 27 | pop eax 28 | call dword ptr [_TMenuItem_SetCaption] 29 | mov edx, 2 30 | mov eax, esp 31 | call dword ptr [vcl_System_AnsiString_dtor] 32 | pop eax 33 | ret 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TMenuItem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "TWinControl.h" 5 | 6 | EXTERN_C HMENU __fastcall TMenuItem_GetHandle(TMenuItem *this); 7 | EXTERN_C void __fastcall TMenuItem_SetCaption(TMenuItem *this, LPCSTR lpText); 8 | 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TProcessCtrl.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/extern/TProcessCtrl.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TProcessSearchReportListnerBase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "bcb6_std_vector.h" 5 | #include "TWinControl.h" 6 | 7 | #pragma pack(push, 1) 8 | typedef struct ProcessSearchReportListnerBase 9 | { 10 | LPCVOID *VTable; 11 | unsigned long reserveMode; 12 | TForm *thisPointer; 13 | unsigned long reserveVal; 14 | unsigned long reportSpan; 15 | unsigned long start, min, max, step; 16 | __int32 : 32; 17 | bcb6_std_vector_dword aeVec; 18 | HANDLE processHandle; 19 | 20 | } TProcessSearchReportListnerBase; 21 | #pragma pack(pop) 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSCalc.c: -------------------------------------------------------------------------------- 1 | #include "xx.h" 2 | #include "TSSCalc.h" 3 | 4 | #define MakeSubjectClass_SwitchSubjectTypeTable 0x004EC41F 5 | 6 | __declspec(naked) TSSCalc * __cdecl new_TSSCalc() 7 | { 8 | __asm 9 | { 10 | push ebp 11 | mov eax, 006354ACH 12 | mov ebp, esp 13 | sub esp, 136 14 | push ebx 15 | push esi 16 | mov ecx, dword ptr ds:[MakeSubjectClass_SwitchSubjectTypeTable + stCALC * 4] 17 | lea ebx, [ebp - 124] 18 | push edi 19 | push ecx 20 | jmp __InitExceptBlockLDTC 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSCalc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TSSGSubject.h" 4 | 5 | #pragma pack(push, 1) 6 | typedef struct _TSSCalc 7 | { 8 | TSSGSubject super; 9 | bcb6_std_string lockStr; 10 | BYTE size; 11 | __int8 : 8; 12 | __int16 : 16; 13 | long min; 14 | long max; 15 | bool isUnsigned; 16 | bool isBigEndian; 17 | __int16 : 16; 18 | bcb6_std_string addressStr; 19 | bcb6_std_string nowValHeadStr; 20 | bcb6_std_string nowValFootStr; 21 | } TSSCalc; 22 | #pragma pack(pop) 23 | 24 | EXTERN_C TSSCalc * __cdecl new_TSSCalc(); 25 | 26 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSDir.c: -------------------------------------------------------------------------------- 1 | #include "TSSDir.h" 2 | 3 | BOOLEAN(__cdecl * const TSSDir_IsSameChildren)(TSSDir *this) = (LPVOID)0x004C31E0; 4 | 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSDir.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TSSGSubject.h" 4 | 5 | #pragma pack(push, 1) 6 | typedef struct _TSSDir 7 | { 8 | TSSGSubject super; 9 | bcb6_std_vector_PTSSGSubject childVec; 10 | } TSSDir; 11 | #pragma pack(pop) 12 | 13 | EXTERN_C void __cdecl TSSDir_ClearChild(TSSDir *this); 14 | EXTERN_C bool(__cdecl * const TSSDir_IsSameChildren)(TSSDir *this); 15 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSDoubleList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TSSGSubject.h" 4 | 5 | #pragma pack(push, 1) 6 | typedef struct _TSSDoubleList 7 | { 8 | TSSGSubject super; 9 | bcb6_std_string lockStr; 10 | bool isOffset; 11 | BYTE size; 12 | __int16 : 16; 13 | __int32 : 32; 14 | bcb6_std_vector statusVec; 15 | bcb6_std_string addressStr; 16 | bcb6_std_string indexFileName; 17 | bcb6_std_string dataFileName; 18 | } TSSDoubleList; 19 | #pragma pack(pop) 20 | 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSDoubleToggle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TSSGSubject.h" 4 | 5 | #pragma pack(push, 1) 6 | typedef struct _TSSDoubleToggle 7 | { 8 | TSSGSubject super; 9 | bcb6_std_string lockStr; 10 | bool isOffset; 11 | __int8 : 8; 12 | __int16 : 16; 13 | __int32 : 32; 14 | bcb6_std_vector statusVec; 15 | bcb6_std_string addressStr; 16 | bcb6_std_string indexFileName; 17 | bcb6_std_string dataFileName; 18 | } TSSDoubleToggle; 19 | #pragma pack(pop) 20 | 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSFloatCalc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TSSGSubject.h" 4 | 5 | #pragma pack(push, 1) 6 | typedef struct _TSSFloatCalc 7 | { 8 | TSSGSubject super; 9 | bcb6_std_string lockStr; 10 | BYTE size; 11 | __int8 : 8; 12 | __int16 : 16; 13 | __int32 : 32; 14 | double min; 15 | double max; 16 | bool isBigEndian; 17 | __int8 : 8; 18 | __int16 : 16; 19 | __int32 : 32; 20 | bcb6_std_string addressStr; 21 | bcb6_std_string nowValHeadStr; 22 | bcb6_std_string nowValFootStr; 23 | } TSSFloatCalc; 24 | #pragma pack(pop) 25 | 26 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSGAttributeElement.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/extern/TSSGAttributeElement.h -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSSplit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TSSGSubject.h" 4 | 5 | #pragma pack(push, 1) 6 | typedef struct _TSSSplit 7 | { 8 | TSSGSubject super; 9 | unsigned long drawType; 10 | unsigned long indentType; 11 | unsigned char width; 12 | unsigned char height; 13 | __int16 : 16; 14 | long indent; 15 | bcb6_std_string strParam; 16 | } TSSSplit; 17 | #pragma pack(pop) 18 | 19 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSString.c: -------------------------------------------------------------------------------- 1 | #include "xx.h" 2 | #include "TSSString.h" 3 | 4 | #define MakeSubjectClass_SwitchSubjectTypeTable 0x004EC41F 5 | 6 | __declspec(naked) TSSString * __cdecl new_TSSString() 7 | { 8 | __asm 9 | { 10 | push ebp 11 | mov eax, 006354ACH 12 | mov ebp, esp 13 | sub esp, 136 14 | push ebx 15 | push esi 16 | mov ecx, dword ptr ds:[MakeSubjectClass_SwitchSubjectTypeTable + stSTRING * 4] 17 | lea ebx, [ebp - 124] 18 | push edi 19 | push ecx 20 | jmp __InitExceptBlockLDTC 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSString.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TSSGSubject.h" 4 | 5 | #pragma pack(push, 1) 6 | typedef struct _TSSString 7 | { 8 | TSSGSubject super; 9 | bcb6_std_string lockStr; 10 | unsigned long size; 11 | WORD codePage;// reserved for fully code page 12 | __int8 : 8; 13 | bool cautious; 14 | bcb6_std_string addressStr; 15 | bcb6_std_string endWord; 16 | bcb6_std_string nowValHeadStr; 17 | } TSSString; 18 | #pragma pack(pop) 19 | 20 | EXTERN_C TSSString * __cdecl new_TSSString(); 21 | 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSToggle.c: -------------------------------------------------------------------------------- 1 | #include "xx.h" 2 | #include "TSSToggle.h" 3 | 4 | #define MakeSubjectClass_SwitchSubjectTypeTable 0x004EC41F 5 | 6 | __declspec(naked) TSSToggle * __cdecl new_TSSToggle() 7 | { 8 | __asm 9 | { 10 | push ebp 11 | mov eax, 006354ACH 12 | mov ebp, esp 13 | sub esp, 136 14 | push ebx 15 | push esi 16 | mov ecx, dword ptr ds:[MakeSubjectClass_SwitchSubjectTypeTable + stTOGGLE * 4] 17 | lea ebx, [ebp - 124] 18 | push edi 19 | push ecx 20 | jmp __InitExceptBlockLDTC 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TSSToggle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TSSGSubject.h" 4 | 5 | #pragma pack(push, 1) 6 | typedef struct _TSSToggle 7 | { 8 | TSSGSubject super; 9 | bcb6_std_string lockStr; 10 | bcb6_std_string addressStr; 11 | bcb6_std_string onCode; 12 | bcb6_std_string offCode; 13 | bcb6_std_string nowValHeadStr; 14 | unsigned long size; 15 | __int32 : 32; 16 | } TSSToggle; 17 | #pragma pack(pop) 18 | 19 | EXTERN_C TSSToggle * __cdecl new_TSSToggle(); 20 | 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TShiftState.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | enum Classes__1 4 | { 5 | ssShift = 0x01, 6 | ssAlt = 0x02, 7 | ssCtrl = 0x04, 8 | ssLeft = 0x08, 9 | ssRight = 0x10, 10 | ssMiddle = 0x20, 11 | ssDouble = 0x40, 12 | }; 13 | 14 | typedef struct ShiftState 15 | { 16 | bool ssShift : 1; 17 | bool ssAlt : 1; 18 | bool ssCtrl : 1; 19 | bool ssLeft : 1; 20 | bool ssRight : 1; 21 | bool ssMiddle : 1; 22 | bool ssDouble : 1; 23 | __int8 : 0; 24 | } TShiftState; 25 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TStringDivision.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "TStringDivision.h" 3 | 4 | long(__cdecl * const TStringDivision_ToLongDef)(const string* Src, long Default) = (LPVOID)0x004AE674; 5 | unsigned long(__cdecl * const TStringDivision_ToULongDef)(const string* Src, unsigned long Default) = (LPVOID)0x004AE6C0; 6 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/TWinControl.c: -------------------------------------------------------------------------------- 1 | #include "TWinControl.h" 2 | 3 | __declspec(naked) HWND __fastcall TWinControl_GetHandle(LPCVOID WinControl) 4 | { 5 | __asm 6 | { 7 | mov edx, 0058750CH 8 | mov eax, ecx 9 | jmp edx 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_errno.c: -------------------------------------------------------------------------------- 1 | #include "bcb6_errno.h" 2 | 3 | int *(__cdecl * const _bcb6_errno)() = (LPVOID)0x005DB8C0; 4 | 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_errno.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | EXTERN_C int *(__cdecl * const _bcb6_errno)(); 6 | #define bcb6_errno *_bcb6_errno() 7 | 8 | #define BCB6_ENOMEM 8 9 | #define BCB6_EINVAL 19 10 | #define BCB6_ERANGE 34 11 | 12 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_fastcall_bridge.c: -------------------------------------------------------------------------------- 1 | #include "bcb6_fastcall_bridge.h" 2 | 3 | __declspec(naked) DWORD __fastcall bcb6_fastcall_bridge1(DWORD Function, DWORD A) 4 | { 5 | __asm 6 | { 7 | mov eax, edx 8 | jmp ecx 9 | } 10 | } 11 | 12 | __declspec(naked) DWORD __fastcall _bcb6_fastcall_bridge2(DWORD Function, DWORD B, DWORD A) 13 | { 14 | __asm 15 | { 16 | mov eax, ecx 17 | mov ecx, dword ptr [esp] 18 | mov dword ptr [esp], eax 19 | mov eax, dword ptr [esp + 4] 20 | mov dword ptr [esp + 4], ecx 21 | ret 22 | } 23 | } 24 | 25 | __declspec(naked) DWORD __fastcall _bcb6_fastcall_bridge3(DWORD A, DWORD B, DWORD Function, DWORD C) 26 | { 27 | __asm 28 | { 29 | mov eax, dword ptr [esp] 30 | mov dword ptr [esp], ecx 31 | mov ecx, dword ptr [esp + 8] 32 | mov dword ptr [esp + 8], eax 33 | pop eax 34 | ret 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_malloc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | EXTERN_C void * __cdecl bcb6_calloc(size_t num, size_t size); 6 | EXTERN_C void * __cdecl bcb6_malloc(size_t size); 7 | EXTERN_C void __cdecl bcb6_free(void *memblock); 8 | EXTERN_C void * __cdecl bcb6_realloc(void *memblock, size_t size); 9 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_operator.c: -------------------------------------------------------------------------------- 1 | #include "bcb6_operator.h" 2 | 3 | #if !OPTIMIZE_ALLOCATOR 4 | void(__cdecl * const bcb6_operator_delete)(void *p) = (LPVOID)0x005D4484; 5 | void *(__cdecl * const bcb6_operator_new)(size_t n) = (LPVOID)0x005D44B8; 6 | #endif 7 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_operator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "bcb6_std_allocator.h" 5 | #include "OptimizeAllocator.h" 6 | 7 | #ifdef USING_NAMESPACE_BCB6 8 | #define operator_new bcb6_operator_new 9 | #define operator_delete bcb6_operator_delete 10 | #endif 11 | 12 | #if !OPTIMIZE_ALLOCATOR 13 | // ::operator new(size_t n); 14 | EXTERN_C void *(__cdecl * const bcb6_operator_new)(size_t n); 15 | // ::operator delete(void *p); 16 | EXTERN_C void (__cdecl * const bcb6_operator_delete)(void *p); 17 | #else 18 | #define bcb6_operator_new bcb6_std_internal_allocate 19 | #define bcb6_operator_delete bcb6_std_internal_deallocate 20 | #endif 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_std.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef USING_NAMESPACE_BCB6 4 | #define std_swap bcb6_std_swap 5 | #elif defined(USING_NAMESPACE_BCB6_STD) 6 | #define swap bcb6_std_swap 7 | #endif 8 | 9 | #define bcb6_std_swap(a, b) \ 10 | do \ 11 | { \ 12 | typedef struct { \ 13 | char data[sizeof(*(a))]; \ 14 | } DATA; \ 15 | \ 16 | DATA *__restrict _a = (DATA *)(a); \ 17 | DATA *__restrict _b = (DATA *)(b); \ 18 | DATA swap = *_a; \ 19 | *_a = *_b; \ 20 | *_b = swap; \ 21 | } while (0) 22 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_std_list.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "bcb6_std_list.h" 3 | #include "bcb6_std_allocator.h" 4 | 5 | __declspec(naked) list_iterator __fastcall list_erase(list_iterator it) 6 | { 7 | __asm 8 | { 9 | test ecx, ecx 10 | jz L1 11 | mov eax, [ecx]list_node._M_next 12 | mov edx, [ecx]list_node._M_prev 13 | mov [edx]list_node._M_next, eax 14 | mov [eax]list_node._M_prev, edx 15 | push eax 16 | #if !OPTIMIZE_ALLOCATOR 17 | push size list_node + size ULONG// vary with type 18 | push ecx 19 | call node_alloc_deallocate 20 | add esp, 8 21 | #else 22 | call node_alloc_deallocate 23 | #endif 24 | pop ecx 25 | L1: 26 | mov eax, ecx 27 | ret 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_std_set.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "bcb6_std_map.h" 4 | 5 | typedef struct _Rb_tree_node 6 | bcb6_std_set_node, *bcb6_std_set_iterator, **pbcb6_std_set_iterator; 7 | 8 | typedef struct _Rb_tree 9 | bcb6_std_set, *pbcb6_std_set; 10 | 11 | #ifdef USING_NAMESPACE_BCB6_STD 12 | typedef bcb6_std_set_iterator set_iterator; 13 | typedef pbcb6_std_set_iterator pset_iterator; 14 | typedef bcb6_std_set set; 15 | typedef pbcb6_std_set pset; 16 | #define set_begin bcb6_std_map_begin 17 | #define set_end bcb6_std_map_end 18 | #define set_find bcb6_std_map_find 19 | #define set_iterator_decrement bcb6_std_map_iterator_decrement 20 | #endif 21 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_std_stack.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "bcb6_std_stack.h" 3 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_std_vector.c: -------------------------------------------------------------------------------- 1 | #define USING_NAMESPACE_BCB6_STD 2 | #include "bcb6_std_vector.h" 3 | #include "bcb6_std_allocator.h" 4 | 5 | void __fastcall vector_dtor(vector *v) 6 | { 7 | allocator_deallocate(vector_begin(v), vector_byte_capacity(v)); 8 | } 9 | 10 | void __fastcall vector_shrink_to_fit(vector *v) 11 | { 12 | size_t capacity = vector_byte_capacity(v); 13 | size_t size = vector_byte_size(v); 14 | if (size != capacity) 15 | vector_end_of_storage(v) = vector_end(v) = (char *)(vector_begin(v) = allocator_reallocate(vector_begin(v), capacity, size)) + size; 16 | } 17 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/extern/bcb6_std_vector_dword.c: -------------------------------------------------------------------------------- 1 | #include 2 | #define USING_NAMESPACE_BCB6_STD 3 | #include "bcb6_std_vector.h" 4 | #include "bcb6_std_allocator.h" 5 | 6 | __declspec(naked) void __fastcall vector_dword_reserve(vector_dword *s, size_t n) 7 | { 8 | __asm 9 | { 10 | shl edx, 2 11 | jmp vector_byte_reserve 12 | } 13 | } 14 | 15 | void __fastcall vector_dword_push_back(vector_dword *v, DWORD value) 16 | { 17 | if (vector_end(v) + 1 > vector_end_of_storage(v)) 18 | { 19 | size_t size = vector_byte_size(v); 20 | size_t capacity = size + max(size, sizeof(DWORD)); 21 | char *p = (char *)allocator_reallocate(vector_begin(v), vector_byte_capacity(v), capacity); 22 | vector_begin(v) = (DWORD *)p; 23 | vector_end(v) = (DWORD *)(p + size); 24 | vector_end_of_storage(v) = (DWORD *)(p + capacity); 25 | } 26 | *(vector_end(v)++) = value; 27 | } 28 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/include/ApplicationMessage.h: -------------------------------------------------------------------------------- 1 | #ifndef _APPLICATIONMESSAGE_H_ 2 | #define _APPLICATIONMESSAGE_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #include 9 | 10 | #define WM_DRAW_GUIDE_BUFFER WM_APP 11 | #define WM_DRAW_PROGRESS (WM_APP + 1) 12 | 13 | #endif // _APPLICATIONMESSAGE_H_ 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/include/ApplicationMessage.inc: -------------------------------------------------------------------------------- 1 | 2 | WM_APP equ 8000H 3 | WM_DRAW_GUIDE_BUFFER equ WM_APP 4 | WM_DRAW_PROGRESS equ (WM_APP + 1) 5 | 6 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/include/noinline_wchar.h: -------------------------------------------------------------------------------- 1 | #ifndef _NOINLINE_WCHAR_H_ 2 | #define _NOINLINE_WCHAR_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #define wmemchr inline_wmemchr 9 | #define wmemcmp inline_wmemcmp 10 | #define wmemset inline_wmemset 11 | #include 12 | #undef wmemchr 13 | #undef wmemcmp 14 | #undef wmemset 15 | 16 | #ifdef __cplusplus 17 | extern "C" { 18 | #endif 19 | 20 | extern int wmemcmp(const wchar_t *buffer1, const wchar_t *buffer2, size_t count); 21 | extern wchar_t * __cdecl wmemchr(const wchar_t *buffer, wchar_t c, size_t count); 22 | extern wchar_t * __cdecl wmemset(wchar_t *dest, wchar_t c, size_t count); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif // _NOINLINE_WCHAR_H_ 29 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/include/page.h: -------------------------------------------------------------------------------- 1 | #ifndef _PAGESIZE_H_ 2 | #define _PAGESIZE_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #if defined(_M_IX86) || defined(_M_X64) 9 | # define PAGE_SHIFT 12 10 | # define PAGE_SIZE (1 << PAGE_SHIFT) 11 | #elif defined(_M_IA64) 12 | # define PAGE_SHIFT 13 13 | # define PAGE_SIZE (1 << PAGE_SHIFT) 14 | #else 15 | # error "Unsupported platform. _M_IX86 or _M_X64 or _M_IA64 must be defined." 16 | #endif 17 | 18 | #endif // _PAGESIZE_H_ 19 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/c99/stdbool.h: -------------------------------------------------------------------------------- 1 | #ifndef _STDBOOL_H_ 2 | #define _STDBOOL_H_ 3 | 4 | #ifndef __cplusplus 5 | typedef unsigned char bool; 6 | #define false 0 7 | #define true 1 8 | #endif 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/crt/iswctype.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int __cdecl iswctype(wint_t c, wctype_t desc) 4 | { 5 | WORD wCharType; 6 | return GetStringTypeW(CT_CTYPE1, &c, 1, &wCharType) && (wCharType & desc); 7 | } 8 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/glibc_version.h: -------------------------------------------------------------------------------- 1 | /* This file just defines the current version number of libc. */ 2 | 3 | #define RELEASE "release" 4 | #define VERSION "2.32" 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/include/alloca.h: -------------------------------------------------------------------------------- 1 | #ifndef _ALLOCA_H 2 | #define _ALLOCA_H 3 | 4 | #include 5 | #ifndef alloca 6 | #define alloca _alloca 7 | #endif 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/include/langinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef _LANGINFO_H 2 | #define _LANGINFO_H 3 | 4 | #endif 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/include/libc-config.h: -------------------------------------------------------------------------------- 1 | #ifndef _LIBC_CONFIG_H 2 | #define _LIBC_CONFIG_H 3 | 4 | #endif 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/include/sys/param.h: -------------------------------------------------------------------------------- 1 | #ifndef _PARAM_H 2 | #define _PARAM_H 3 | 4 | #define MIN(a, b) ((a) < (b) ? (a) : (b)) 5 | #define MAX(a, b) ((a) > (b) ? (a) : (b)) 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/include/verify.h: -------------------------------------------------------------------------------- 1 | #ifndef _VERIFY_H 2 | #define _VERIFY_H 3 | 4 | #endif 5 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/posix/regex.h.diff: -------------------------------------------------------------------------------- 1 | --- old\regex.h Sat Feb 1 20:52:50 2020 2 | +++ new\regex.h Sat Feb 1 20:52:50 2020 3 | @@ -22,6 +22,11 @@ 4 | 5 | #include 6 | 7 | +#ifndef __GNUC__ 8 | +#define attribute_hidden 9 | +#define libc_hidden_proto(name) 10 | +#endif 11 | + 12 | /* Allow the use in C++ code. */ 13 | #ifdef __cplusplus 14 | extern "C" { 15 | @@ -614,7 +619,7 @@ 16 | 'configure' might #define 'restrict' to those words, so pick a 17 | different name. */ 18 | #ifndef _Restrict_ 19 | -# if defined __restrict || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) 20 | +# if defined __restrict || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) || defined _MSC_VER 21 | # define _Restrict_ __restrict 22 | # elif 199901L <= __STDC_VERSION__ || defined restrict 23 | # define _Restrict_ restrict 24 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/regex.bpf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/regex/regex.bpf -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/regex.dsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/regex/regex.dsp -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/regex.dsw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/regex/regex.dsw -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/regex.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/regex/regex_msvc.h: -------------------------------------------------------------------------------- 1 | #ifndef _REGEXEC_MSVC_H 2 | #define _REGEXEC_MSVC_H 3 | 4 | extern HANDLE hHeap; 5 | 6 | #define CODEPAGE CP_THREAD_ACP 7 | #define HEAP_HANDLE hHeap 8 | #define HAVE_MEMCPY 1 9 | #define HAVE_MEMMOVE 1 10 | #define HAVE_MEMSET 1 11 | #define HAVE_ABORT 0 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/resource.h -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/version.h: -------------------------------------------------------------------------------- 1 | #ifndef _VERSION_H_ 2 | #define _VERSION_H_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif 7 | 8 | #include "datetime.h" 9 | 10 | #ifndef CONCAT 11 | #define CONCATIFY(a, b) a##b 12 | #define CONCAT(a, b) CONCATIFY(a, b) 13 | #endif 14 | 15 | #ifndef TOSTRING 16 | #define STRINGIFY(a) #a 17 | #define TOSTRING(a) STRINGIFY(a) 18 | #endif 19 | 20 | #define VERSION_MAJOR 6 21 | #define VERSION_MINOR 4 22 | #define VERSION_BUILD __DATE_YEAR__ 23 | #define VERSION_REVISION CONCAT(__DATE_MONTH__, __DATE_DD__) 24 | 25 | #define VERSION_STRING \ 26 | TOSTRING(VERSION_MAJOR) "." \ 27 | TOSTRING(VERSION_MINOR) "." \ 28 | TOSTRING(__DATE_YYYY__) "." \ 29 | TOSTRING(__DATE_MM__) TOSTRING(__DATE_DD__) 30 | 31 | #endif // _VERSION_H_ 32 | -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/winmm.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/winmm.c -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/winmm.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpoilerScriptsGroup/RetrievAL/3b56fd0238dc9046e04a4dd982242b0f0ba39264/SpoilerAL-winmm.dll/winmm.rc -------------------------------------------------------------------------------- /SpoilerAL-winmm.dll/winmm.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | --------------------------------------------------------------------------------