Function at 0x1000d030
Capabilities:
Delete file
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10030557
mov eax, dword fs:[0]
push eax
sub esp, 0x83c
mov eax, dword [0x10044040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
cmp eax, 1
jne 0x1000dd04
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.100180d0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x1000dce9
cmp eax, 0xff
ja 0x1000dce9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1000d0cf
push 0x10
push str.Silent_Hill_3_PC_Fix
push str.Unable_to_get_dll_path___2___ERROR_INSUFFICIENT_BUFFER_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x1000de11
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.10017aab
add esp, 8
test eax, eax
je 0x1000d0e9
xor ecx, ecx
mov word [eax], cx
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.100180d0
lea eax, [ebp - 0x218]
push eax
push str._sSilent_Hill_3_PC_Fix.ini
push 0xffffffffffffffff
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.100025a0
mov esi, eax
lea eax, [ebp - 0x218]
push eax
push str._s_savedata_
push 0xffffffffffffffff
push 0x104
push 0x1004a6d8
call fcn.100025a0
mov edi, eax
lea eax, [ebp - 0x218]
push eax
push str._sSavedataBackup_
push 0xffffffffffffffff
push 0x104
push 0x1004a238
call fcn.100025a0
add esp, 0x48
mov dword [ebp - 0x838], eax
lea eax, [ebp - 0x218]
push eax
push str.open___sSoundsSH3_20016.mp3__type_mpegvideo_alias_mp3
push 0xffffffffffffffff
push 0x104
push 0x1004abe0
call fcn.100025a0
mov dword [ebp - 0x83c], eax
lea eax, [ebp - 0x218]
push eax
push str.open___sSoundsAchievementUnlocked.mp3__type_mpegvideo_alias_mp3
push 0xffffffffffffffff
push 0x104
push 0x1004a488
call fcn.100025a0
mov dword [ebp - 0x840], eax
lea eax, [ebp - 0x218]
push eax
push str._sSoundsSH3_AudioHelper.exe
push 0xffffffffffffffff
push 0x104
push 0x1004bd48
call fcn.100025a0
mov dword [ebp - 0x844], eax
lea eax, [ebp - 0x218]
push eax
push str._sdatamoviehuxx.000
push 0xffffffffffffffff
push 0x104
push 0x1004ae08
call fcn.100025a0
add esp, 0x50
mov dword [ebp - 0x848], eax
lea eax, [ebp - 0x218]
push eax
push str._sdatamoviemuxx.000
push 0xffffffffffffffff
push 0x104
push 0x1004a958
call fcn.100025a0
mov dword [ebp - 0x834], eax
lea eax, [ebp - 0x218]
push eax
push str._sdata_arc.arc
push 0xffffffffffffffff
push 0x104
push 0x1004b4b0
call fcn.100025a0
mov ebx, eax
lea eax, [ebp - 0x218]
push eax
push str._sSilent_Hill_3_PC_Fix.log
push 0xffffffffffffffff
push 0x104
push 0x1004b290
call fcn.100025a0
add esp, 0x3c
cmp esi, 0xffffffff
je 0x1000dcce
cmp edi, 0xffffffff
je 0x1000dcce
cmp edi, 0xfa
jg 0x1000dcce
cmp dword [ebp - 0x838], 0xffffffff
je 0x1000dcce
cmp dword [ebp - 0x83c], 0xffffffff
je 0x1000dcce
cmp dword [ebp - 0x840], 0xffffffff
je 0x1000dcce
cmp dword [ebp - 0x844], 0xffffffff
je 0x1000dcce
cmp dword [ebp - 0x848], 0xffffffff
je 0x1000dcce
cmp dword [ebp - 0x834], 0xffffffff
je 0x1000dcce
cmp ebx, 0xffffffff
je 0x1000dcce
cmp eax, 0xffffffff
je 0x1000dcce
lea eax, [ebp - 0x218]
push eax
push 0x104
push 0x1004c1f8
call fcn.1001d78a
push 0x1003e980
push 0x104
push 0x1004c1f8
call fcn.1001d7ee
add esp, 0x18
lea eax, [ebp - 0x420]
push 0
push 0x80
push 3
push 0
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x1000d33a
push 0x10
push str.Silent_Hill_3_PC_Fix
push str.Unable_to_open_Silent_Hill_3_PC_Fix.ini_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x1000de11
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 8
call fcn.10015e36
mov edi, eax
mov dword [ebp - 0x834], edi
mov dword [ebp - 4], 0
xorps xmm0, xmm0
movq qword [edi], xmm0
push 0x208
mov byte [edi + 4], 0
call fcn.10015f8e
push 0x208
mov esi, eax
push 0
push esi
call fcn.100180d0
lea eax, [ebp - 0x420]
mov dword [edi], esi
push eax
push 0x104
push esi
call fcn.1001d78a
add esp, 0x20
test eax, eax
jne 0x1000d39a
mov byte [edi + 4], 1
push 0
push 0x1003e9dc
push 0x1003e9dc
mov ecx, edi
mov dword [ebp - 4], 0xffffffff
call fcn.10002f10
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeSRWLock]
mov dword [0x1004c1b4], eax
test eax, eax
je 0x1000d3fb
push 0x1004a480
call ebx
mov eax, dword [0x1004c1b4]
cmp eax, 1
jne 0x1000d3e1
push 0x1004b290
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x1000d3ec
cmp eax, 2
jne 0x1000d3ec
call dword [sym.imp.KERNEL32.dll_AllocConsole]
push str.Silent_Hill_3_PC_Fix_2.6.4_Started__r_n_r_n
push 0
call fcn.10002a10
add esp, 8
push 0
push str.BlockThirdPartyDlls
push str.Security
mov ecx, edi
call fcn.10002f10
push 0
push str.LogGameDebugMsg
push 0x1003e9dc
mov ecx, edi
mov dword [0x1004a45c], eax
call fcn.10002f10
push 0
push str.LogMapDebugMsg
push 0x1003e9dc
mov ecx, edi
mov dword [0x1004b034], eax
call fcn.10002f10
push 0
push str.InstallExceptionHandler
push 0x1003e9dc
mov ecx, edi
mov dword [0x1004b278], eax
call fcn.10002f10
push 0
push str.FixAudio
push str.Audio
mov ecx, edi
mov dword [0x1004b6b8], eax
call fcn.10002f10
push 0
push str.DoubleADXBufferSize
push str.Audio
mov ecx, edi
mov dword [0x1004b010], eax
call fcn.10002f10
push 8
push str.Language
push str.GameWindow
mov ecx, edi
mov dword [0x1004a6ac], eax
call fcn.10002f10
push 1
push str.RegenerateDisp
push str.GameWindow
mov ecx, edi
mov dword [0x1004a6c8], eax
call fcn.10002f10
push 0
push str.ScreenWidth
push str.GameWindow
mov ecx, edi
mov dword [0x1004adf0], eax
call fcn.10002f10
push 0
push str.ScreenHeight
push str.GameWindow
mov ecx, edi
mov dword [0x1004a448], eax
call fcn.10002f10
push 0
push str.RenderWidth
push str.GameWindow
mov ecx, edi
mov dword [0x1004c408], eax
call fcn.10002f10
push 0
push str.RenderHeight
push str.GameWindow
mov ecx, edi
mov dword [0x1004bf64], eax
call fcn.10002f10
push 0
push str.Windowx
push str.GameWindow
mov ecx, edi
mov dword [0x1004c1ec], eax
call fcn.10002f10
push 0
push str.Windowy
mov dword [0x1004b03c], eax
push str.GameWindow
mov ecx, edi
call fcn.10002f10
push 0
push str.WindowedMode
push str.GameWindow
mov ecx, edi
mov dword [0x1004c1f4], eax
call fcn.10002f10
push 0
push str.Borderless
push str.GameWindow
mov ecx, edi
mov dword [0x1004c404], eax
call fcn.10002f10
push 0
push str.ProcessAffinity
push str.GameWindow
mov ecx, edi
mov dword [0x1004ab9c], eax
call fcn.10002f10
push 0
push str.Fix2DElements
push str.Graphics
mov ecx, edi
mov dword [0x1004a454], eax
call fcn.10002f10
push 0
push str.StretchMaps
push str.Graphics
mov ecx, edi
mov dword [0x1004bd38], eax
call fcn.10002f10
push 0
push str.DOFResolution
push str.Graphics
mov ecx, edi
mov dword [0x1004a444], eax
call fcn.10002f10
push 0
push str.ShadowResolution
push str.Graphics
mov ecx, edi
mov dword [0x1004abd8], eax
call fcn.10002f10
push 0
push str.InventoryResolution
push str.Graphics
mov ecx, edi
mov dword [0x1004a8f4], eax
call fcn.10002f10
push 0
push str.StatusScreenResolution
push str.Graphics
mov ecx, edi
mov dword [0x1004a6bc], eax
call fcn.10002f10
push 0
push str.FogComplexity
push str.Graphics
mov ecx, edi
mov dword [0x1004a8e4], eax
call fcn.10002f10
push 0
push str.IncreaseGameplayFOV
push str.Graphics
mov ecx, edi
mov dword [0x1004a8ec], eax
call fcn.10002f10
push 0
push str.DecreaseFOVInCutscenes
push str.Graphics
mov ecx, edi
mov dword [0x1004bf78], eax
call fcn.10002f10
push 0x208
mov dword [0x1004a224], eax
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.100180d0
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.100180d0
add esp, 0x10
lea eax, [ebp - 0x628]
xorps xmm0, xmm0
movsd qword [esp], xmm0
push 0x100382d4
push 0x104
push eax
call fcn.1000e040
add esp, 0x14
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.10023352
mov dword [eax], 0
lea eax, [ebp - 0x830]
push dword [edi]
push 0x104
push eax
lea eax, [ebp - 0x628]
push eax
push str.VerticalCutsceneFOV
push str.Graphics
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1000d72e
call fcn.10023352
cmp dword [eax], 0
jne 0x1000d72e
test esi, esi
je 0x1000d72e
cmp esi, 0x103
je 0x1000d72e
lea eax, [ebp - 0x830]
push eax
call fcn.1001d512
fstp dword [ebp - 0x834]
movss xmm0, dword [ebp - 0x834]
add esp, 4
jmp 0x1000d731
xorps xmm0, xmm0
push 0
push str.FPSModes
push str.Graphics
mov ecx, edi
movss dword [0x1004b280], xmm0
call fcn.10002f10
push 0
push str.LimitFPSInStoreroom
push str.Graphics
mov ecx, edi
mov dword [0x1004ab94], eax
call fcn.10002f10
push 0
push str.HookDX
push str.DirectX
mov ecx, edi
mov dword [0x1004a22c], eax
call fcn.10002f10
push 0
push str.UseDirectX12
push str.DirectX
mov ecx, edi
mov dword [0x1004b70c], eax
call fcn.10002f10
push 0
push str.DisableMaximizedWindowedMode
push str.DirectX
mov ecx, edi
mov dword [0x1004bf5c], eax
call fcn.10002f10
push 0
push str.ForceVSync
push str.DirectX
mov ecx, edi
mov dword [0x1004a940], eax
call fcn.10002f10
push 0
push str.AnisotropicTextureFiltering
push str.DirectX
mov ecx, edi
mov dword [0x1004c1b8], eax
call fcn.10002f10
push 0
push str.Wallhack
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1004ade8], eax
call fcn.10002f10
push 0
push str.NoDXFog
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1004c1c0], eax
call fcn.10002f10
push 0
push str.Gamma
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1004ab70], eax
call fcn.10002f10
push 0
push str.Hotkeys
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1004c1cc], eax
call fcn.10002f10
push 0
push str.Achievements
push str.SilentHill3
mov ecx, edi
mov dword [0x1004c400], eax
call fcn.10002f10
push 0
push str.WishHouse
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b044], eax
call fcn.10002f10
push 0
mov dword [0x1004b700], eax
push str.SubwayTypo
push str.SilentHill3
mov ecx, edi
call fcn.10002f10
push 0
push str.MissingSewerText
push str.SilentHill3
mov ecx, edi
mov dword [0x1004a690], eax
call fcn.10002f10
push 0
push str.ApartmentTypo
push str.SilentHill3
mov ecx, edi
mov dword [0x1004abb8], eax
call fcn.10002f10
push 0
push str.DisableSafeMode
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b6f0], eax
call fcn.10002f10
push 0
push str.RemoveCutsceneBorders
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b030], eax
call fcn.10002f10
push 0
push str.RemoveBlackBars
push str.SilentHill3
mov ecx, edi
mov dword [0x1004a440], eax
call fcn.10002f10
push 0
push str.UnlockSH2EasterEggs
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b028], eax
call fcn.10002f10
push 0
push str.FixOptionMenuFreeze
push str.SilentHill3
mov ecx, edi
mov dword [0x1004a928], eax
call fcn.10002f10
push 0
push str.FullscreenPauseMenu
push str.SilentHill3
mov ecx, edi
mov dword [0x1004a908], eax
call fcn.10002f10
push 0
push str.FixFMVs
push str.SilentHill3
mov ecx, edi
mov dword [0x1004c198], eax
call fcn.10002f10
push 0
push str.FMVFullscreenMode
push str.SilentHill3
mov ecx, edi
mov dword [0x1004bf6c], eax
call fcn.10002f10
push 0
push str.RestoreMissingDialogueSound
push str.SilentHill3
mov ecx, edi
mov dword [0x1004a450], eax
call fcn.10002f10
push 0
push str.RestoreBetaSound
push str.SilentHill3
mov ecx, edi
mov dword [0x1004a93c], eax
call fcn.10002f10
push 0
push str.NewSaveSystem
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b6cc], eax
call fcn.10002f10
push 0
push str.ActionLevel
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b714], eax
call fcn.10002f10
push 3
push str.RiddleLevel
push str.SilentHill3
mov ecx, edi
mov dword [0x1004c414], eax
call fcn.10002f10
push 0
push str.UnlockExtraMenuOptions
push str.SilentHill3
mov ecx, edi
mov dword [0x1004bf54], eax
call fcn.10002f10
push 0
push str.UnlockEverything
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b018], eax
call fcn.10002f10
push 0
push str.TrialSkip
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b25c], eax
call fcn.10002f10
push 0
push str.SkipTrialPicture
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b704], eax
call fcn.10002f10
cmp dword [0x1004a8f4], 0x100
mov dword [0x1004b6fc], eax
jne 0x1000da67
mov dword [0x1004a8f4], 0
cmp dword [0x1004abd8], 0x40
jne 0x1000da7a
mov dword [0x1004abd8], 0
cmp dword [0x1004c414], 0xd
jbe 0x1000da8d
mov dword [0x1004c414], 0
cmp dword [0x1004bf54], 3
jbe 0x1000daa0
mov dword [0x1004bf54], 3
cmp dword [0x1004b018], 1
jbe 0x1000dab3
mov dword [0x1004b018], 0
cmp dword [0x1004b25c], 1
jne 0x1000dac6
mov dword [0x1004b018], 0
push 0x280
push str.CreditWidth
push str.Pictures
mov ecx, edi
call fcn.10002f10
push 0x1e0
push str.CreditHeight
push str.Pictures
mov ecx, edi
mov dword [0x1004b710], eax
call fcn.10002f10
push 0
push str.CreditIn43
push str.Pictures
mov ecx, edi
mov dword [0x1004bd3c], eax
call fcn.10002f10
push 0x200
push str.KcetWidth
push str.Pictures
mov ecx, edi
mov dword [0x1004a924], eax
call fcn.10002f10
push 0x200
push str.KcetHeight
push str.Pictures
mov ecx, edi
mov dword [0x1004b6c8], eax
call fcn.10002f10
push 0x200
push str.KonamiWidth
push str.Pictures
mov ecx, edi
mov dword [0x1004bf60], eax
call fcn.10002f10
push 0x200
push str.KonamiHeight
push str.Pictures
mov ecx, edi
mov dword [0x1004aba0], eax
call fcn.10002f10
push 0
push str.LogosIn43
push str.Pictures
mov ecx, edi
mov dword [0x1004abb4], eax
call fcn.10002f10
push 0
push str.RedirectRegistry
push str.Registry
mov ecx, edi
mov dword [0x1004c19c], eax
call fcn.10002f10
cmp byte [edi + 4], 1
mov dword [0x1004abd0], eax
jne 0x1000dbc4
push dword [edi]
mov byte [edi + 4], 0
call fcn.10015e31
add esp, 4
push 8
push edi
call fcn.10015f80
add esp, 8
cmp dword [0x1004bf5c], 1
jne 0x1000dbec
mov dword [0x1004b70c], 1
mov dword [0x1004a940], 0
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionEx]
push 0x1000000
push 0
push 0x1004c1d4
call esi
push 0x1000000
push 0
push 0x1004b6d8
call esi
push 0x1000000
push 0
push 0x1004b498
call esi
push 0x1004bd40
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventW]
push 0
push 0
push 0
push 0
call esi
push 0
push 0
push 0
push 0
mov dword [0x1004abbc], eax
call esi
mov dword [0x1004a92c], eax
mov eax, dword [0x1004a454]
test eax, eax
jne 0x1000dc57
push 0x1003f2e0
jmp 0x1000dcab
cmp eax, 1
jne 0x1000dc71
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessAffinityMask]
push str.Singlecore
jmp 0x1000dcab
cmp eax, 2
jne 0x1000dc7d
push str.Multicore__1_
jmp 0x1000dcab
cmp eax, 3
jne 0x1000dc89
push str.Multicore__2_
jmp 0x1000dcab
cmp eax, 4
jne 0x1000dc95
push str.Multicore__3_
jmp 0x1000dcab
cmp eax, 5
jne 0x1000dca1
push str.Multicore__4_
jmp 0x1000dcab
cmp eax, 6
jne 0x1000dcba
push str.Multicore__5_
push 0xf
push 0x1004ab74
call fcn.1001d78a
add esp, 0xc
call fcn.10007c00
test al, al
jne 0x1000de0c
xor eax, eax
jmp 0x1000de11
push 0x10
push str.Silent_Hill_3_PC_Fix
push str.Unable_to_build_strings__length___260_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x1000de11
push 0x10
push str.Silent_Hill_3_PC_Fix
push str.Unable_to_get_dll_path___1_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x1000de11
test eax, eax
jne 0x1000de0c
xor esi, esi
mov ecx, 1
mov ebx, 0x1004a1fc
lock cmpxchg dword [ebx], ecx
test eax, eax
je 0x1000dd43
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, 0x20
jae 0x1000dd2f
push 0
jmp 0x1000dd31
push 1
call edi
inc esi
mov ecx, 1
xor eax, eax
lock cmpxchg dword [ebx], ecx
test eax, eax
jne 0x1000dd26
cmp dword [0x1004a200], 0
je 0x1000de08
xor ecx, ecx
call fcn.10001ca0
test eax, eax
jne 0x1000de08
mov eax, dword [0x1004a1f8]
mov dword [0x1004a1f8], 0
test eax, eax
je 0x1000dd92
mov edi, dword [sym.imp.KERNEL32.dll_VirtualFree]
nop dword [eax + eax]
mov esi, dword [eax]
push 0x8000
push 0
push eax
call edi
mov eax, esi
test esi, esi
jne 0x1000dd80
push dword [0x1004c41c]
push 0
push dword [0x1004a200]
call dword [sym.imp.KERNEL32.dll_HeapSize]
cmp eax, 0xffffffff
je 0x1000ddc0
test eax, eax
je 0x1000ddc0
push eax
push 0
push dword [0x1004c41c]
call fcn.100304c0
add esp, 0xc
push dword [0x1004c41c]
push 0
push dword [0x1004a200]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [0x1004a200]
call dword [sym.imp.KERNEL32.dll_HeapDestroy]
mov dword [0x1004a200], 0
mov dword [0x1004c41c], 0
mov dword [0x1004c420], 0
mov dword [0x1004c424], 0
xor ecx, ecx
xchg dword [ebx], ecx
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10015e23
mov esp, ebp
pop ebp
ret 0xc