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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100308e7
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 0x1000def4
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.100182b0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x1000ded9
cmp eax, 0xff
ja 0x1000ded9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1000d2bf
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 0x1000e001
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.10017c8b
add esp, 8
test eax, eax
je 0x1000d2d9
xor ecx, ecx
mov word [eax], cx
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.100182b0
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 0x1004abe8
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 0x1004bd50
call fcn.100025a0
mov dword [ebp - 0x844], eax
lea eax, [ebp - 0x218]
push eax
push str._sdatamoviehuxx.000
push 0xffffffffffffffff
push 0x104
push 0x1004ae10
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 0x1004a960
call fcn.100025a0
mov dword [ebp - 0x834], eax
lea eax, [ebp - 0x218]
push eax
push str._sdata_arc.arc
push 0xffffffffffffffff
push 0x104
push 0x1004b4b8
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 0x1004b298
call fcn.100025a0
add esp, 0x3c
cmp esi, 0xffffffff
je 0x1000debe
cmp edi, 0xffffffff
je 0x1000debe
cmp edi, 0xfa
jg 0x1000debe
cmp dword [ebp - 0x838], 0xffffffff
je 0x1000debe
cmp dword [ebp - 0x83c], 0xffffffff
je 0x1000debe
cmp dword [ebp - 0x840], 0xffffffff
je 0x1000debe
cmp dword [ebp - 0x844], 0xffffffff
je 0x1000debe
cmp dword [ebp - 0x848], 0xffffffff
je 0x1000debe
cmp dword [ebp - 0x834], 0xffffffff
je 0x1000debe
cmp ebx, 0xffffffff
je 0x1000debe
cmp eax, 0xffffffff
je 0x1000debe
lea eax, [ebp - 0x218]
push eax
push 0x104
push 0x1004c200
call fcn.1001d96a
push 0x1003ea70
push 0x104
push 0x1004c200
call fcn.1001d9ce
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 0x1000d52a
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 0x1000e001
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 8
call fcn.10016066
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.100161be
push 0x208
mov esi, eax
push 0
push esi
call fcn.100182b0
lea eax, [ebp - 0x420]
mov dword [edi], esi
push eax
push 0x104
push esi
call fcn.1001d96a
add esp, 0x20
test eax, eax
jne 0x1000d58a
mov byte [edi + 4], 1
push 0
push 0x1003eacc
push 0x1003eacc
mov ecx, edi
mov dword [ebp - 4], 0xffffffff
call fcn.10002f10
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeSRWLock]
mov dword [0x1004c1b8], eax
test eax, eax
je 0x1000d5eb
push 0x1004a480
call ebx
mov eax, dword [0x1004c1b8]
cmp eax, 1
jne 0x1000d5d1
push 0x1004b298
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x1000d5dc
cmp eax, 2
jne 0x1000d5dc
call dword [sym.imp.KERNEL32.dll_AllocConsole]
push str.Silent_Hill_3_PC_Fix_2.6.5_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 0x1003eacc
mov ecx, edi
mov dword [0x1004a45c], eax
call fcn.10002f10
push 0
push str.LogMapDebugMsg
push 0x1003eacc
mov ecx, edi
mov dword [0x1004b03c], eax
call fcn.10002f10
push 0
push str.InstallExceptionHandler
push 0x1003eacc
mov ecx, edi
mov dword [0x1004b280], eax
call fcn.10002f10
push 0
push str.FixAudio
push str.Audio
mov ecx, edi
mov dword [0x1004b6c0], eax
call fcn.10002f10
push 0
push str.DoubleADXBufferSize
push str.Audio
mov ecx, edi
mov dword [0x1004b018], 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 [0x1004adf8], 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 [0x1004c40c], eax
call fcn.10002f10
push 0
push str.RenderHeight
push str.GameWindow
mov ecx, edi
mov dword [0x1004bf68], eax
call fcn.10002f10
push 0
push str.Windowx
push str.GameWindow
mov ecx, edi
mov dword [0x1004c1f0], eax
call fcn.10002f10
push 0
push str.Windowy
mov dword [0x1004b044], eax
push str.GameWindow
mov ecx, edi
call fcn.10002f10
push 0
push str.WindowedMode
push str.GameWindow
mov ecx, edi
mov dword [0x1004c1f8], eax
call fcn.10002f10
push 0
push str.Borderless
push str.GameWindow
mov ecx, edi
mov dword [0x1004c408], eax
call fcn.10002f10
push 0
push str.ProcessAffinity
push str.GameWindow
mov ecx, edi
mov dword [0x1004aba4], 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 [0x1004b73c], 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 [0x1004abe0], 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 [0x1004bf7c], eax
call fcn.10002f10
push 0x208
mov dword [0x1004a224], eax
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.100182b0
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.100182b0
add esp, 0x10
lea eax, [ebp - 0x628]
xorps xmm0, xmm0
movsd qword [esp], xmm0
push 0x100382c4
push 0x104
push eax
call fcn.1000e230
add esp, 0x14
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.10023532
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 0x1000d91e
call fcn.10023532
cmp dword [eax], 0
jne 0x1000d91e
test esi, esi
je 0x1000d91e
cmp esi, 0x103
je 0x1000d91e
lea eax, [ebp - 0x830]
push eax
call fcn.1001d6f2
fstp dword [ebp - 0x834]
movss xmm0, dword [ebp - 0x834]
add esp, 4
jmp 0x1000d921
xorps xmm0, xmm0
push 0
push str.FPSModes
push str.Graphics
mov ecx, edi
movss dword [0x1004b288], xmm0
call fcn.10002f10
push 0
push str.LimitFPSInStoreroom
push str.Graphics
mov ecx, edi
mov dword [0x1004ab9c], 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 [0x1004b714], eax
call fcn.10002f10
push 0
push str.DisableMaximizedWindowedMode
push str.DirectX
mov ecx, edi
mov dword [0x1004bf60], eax
call fcn.10002f10
push 0
push str.ForceVSync
push str.DirectX
mov ecx, edi
mov dword [0x1004a948], eax
call fcn.10002f10
push 0
push str.AnisotropicTextureFiltering
push str.DirectX
mov ecx, edi
mov dword [0x1004c1bc], eax
call fcn.10002f10
push 0
push str.Wallhack
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1004adf0], eax
call fcn.10002f10
push 0
push str.NoDXFog
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1004c1c4], eax
call fcn.10002f10
push 0
push str.Gamma
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1004ab78], eax
call fcn.10002f10
push 0
push str.Hotkeys
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1004c1d0], eax
call fcn.10002f10
push 0
push str.Achievements
push str.SilentHill3
mov ecx, edi
mov dword [0x1004c1fc], eax
call fcn.10002f10
push 0
push str.WishHouse
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b04c], eax
call fcn.10002f10
push 0
mov dword [0x1004b708], 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 [0x1004abc0], eax
call fcn.10002f10
push 0
push str.DisableSafeMode
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b6f8], eax
call fcn.10002f10
push 0
push str.RemoveCutsceneBorders
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b038], 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 [0x1004b030], eax
call fcn.10002f10
push 0
push str.FixOptionMenuFreeze
push str.SilentHill3
mov ecx, edi
mov dword [0x1004a92c], eax
call fcn.10002f10
push 0
push str.FullscreenPauseMenu
push str.SilentHill3
mov ecx, edi
mov dword [0x1004a90c], eax
call fcn.10002f10
push 0
push str.FixFMVs
push str.SilentHill3
mov ecx, edi
mov dword [0x1004c19c], eax
call fcn.10002f10
push 0
push str.FMVFullscreenMode
push str.SilentHill3
mov ecx, edi
mov dword [0x1004bf70], 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 [0x1004a944], eax
call fcn.10002f10
push 0
push str.NewSaveSystem
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b6d4], eax
call fcn.10002f10
push 0
push str.ActionLevel
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b71c], eax
call fcn.10002f10
push 3
push str.RiddleLevel
push str.SilentHill3
mov ecx, edi
mov dword [0x1004c418], eax
call fcn.10002f10
push 0
push str.UnlockExtraMenuOptions
push str.SilentHill3
mov ecx, edi
mov dword [0x1004bf58], eax
call fcn.10002f10
push 0
push str.UnlockEverything
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b020], eax
call fcn.10002f10
push 0
push str.TrialSkip
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b264], eax
call fcn.10002f10
push 0
push str.SkipTrialPicture
push str.SilentHill3
mov ecx, edi
mov dword [0x1004b70c], eax
call fcn.10002f10
cmp dword [0x1004a8f4], 0x100
mov dword [0x1004b704], eax
jne 0x1000dc57
mov dword [0x1004a8f4], 0
cmp dword [0x1004abe0], 0x40
jne 0x1000dc6a
mov dword [0x1004abe0], 0
cmp dword [0x1004c418], 0xd
jbe 0x1000dc7d
mov dword [0x1004c418], 0
cmp dword [0x1004bf58], 3
jbe 0x1000dc90
mov dword [0x1004bf58], 3
cmp dword [0x1004b020], 1
jbe 0x1000dca3
mov dword [0x1004b020], 0
cmp dword [0x1004b264], 1
jne 0x1000dcb6
mov dword [0x1004b020], 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 [0x1004b718], eax
call fcn.10002f10
push 0
push str.CreditIn43
push str.Pictures
mov ecx, edi
mov dword [0x1004bd40], eax
call fcn.10002f10
push 0x200
push str.KcetWidth
push str.Pictures
mov ecx, edi
mov dword [0x1004a928], eax
call fcn.10002f10
push 0x200
push str.KcetHeight
push str.Pictures
mov ecx, edi
mov dword [0x1004b6d0], eax
call fcn.10002f10
push 0x200
push str.KonamiWidth
push str.Pictures
mov ecx, edi
mov dword [0x1004bf64], eax
call fcn.10002f10
push 0x200
push str.KonamiHeight
push str.Pictures
mov ecx, edi
mov dword [0x1004aba8], eax
call fcn.10002f10
push 0
push str.LogosIn43
push str.Pictures
mov ecx, edi
mov dword [0x1004abbc], eax
call fcn.10002f10
push 0
push str.RedirectRegistry
push str.Registry
mov ecx, edi
mov dword [0x1004c1a0], eax
call fcn.10002f10
cmp byte [edi + 4], 1
mov dword [0x1004abd8], eax
jne 0x1000ddb4
push dword [edi]
mov byte [edi + 4], 0
call fcn.10016061
add esp, 4
push 8
push edi
call fcn.100161b0
add esp, 8
cmp dword [0x1004bf60], 1
jne 0x1000dddc
mov dword [0x1004b714], 1
mov dword [0x1004a948], 0
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionEx]
push 0x1000000
push 0
push 0x1004c1d8
call esi
push 0x1000000
push 0
push 0x1004b6e0
call esi
push 0x1000000
push 0
push 0x1004b4a0
call esi
push 0x1004bd44
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 [0x1004abc4], eax
call esi
mov dword [0x1004a930], eax
mov eax, dword [0x1004a454]
test eax, eax
jne 0x1000de47
push 0x1003f3d0
jmp 0x1000de9b
cmp eax, 1
jne 0x1000de61
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessAffinityMask]
push str.Singlecore
jmp 0x1000de9b
cmp eax, 2
jne 0x1000de6d
push str.Multicore__1_
jmp 0x1000de9b
cmp eax, 3
jne 0x1000de79
push str.Multicore__2_
jmp 0x1000de9b
cmp eax, 4
jne 0x1000de85
push str.Multicore__3_
jmp 0x1000de9b
cmp eax, 5
jne 0x1000de91
push str.Multicore__4_
jmp 0x1000de9b
cmp eax, 6
jne 0x1000deaa
push str.Multicore__5_
push 0xf
push 0x1004ab7c
call fcn.1001d96a
add esp, 0xc
call fcn.10007df0
test al, al
jne 0x1000dffc
xor eax, eax
jmp 0x1000e001
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 0x1000e001
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 0x1000e001
test eax, eax
jne 0x1000dffc
xor esi, esi
mov ecx, 1
mov ebx, 0x1004a1fc
lock cmpxchg dword [ebx], ecx
test eax, eax
je 0x1000df33
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, 0x20
jae 0x1000df1f
push 0
jmp 0x1000df21
push 1
call edi
inc esi
mov ecx, 1
xor eax, eax
lock cmpxchg dword [ebx], ecx
test eax, eax
jne 0x1000df16
cmp dword [0x1004a200], 0
je 0x1000dff8
xor ecx, ecx
call fcn.10001ca0
test eax, eax
jne 0x1000dff8
mov eax, dword [0x1004a1f8]
mov dword [0x1004a1f8], 0
test eax, eax
je 0x1000df82
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 0x1000df70
push dword [0x1004c420]
push 0
push dword [0x1004a200]
call dword [sym.imp.KERNEL32.dll_HeapSize]
cmp eax, 0xffffffff
je 0x1000dfb0
test eax, eax
je 0x1000dfb0
push eax
push 0
push dword [0x1004c420]
call fcn.10030850
add esp, 0xc
push dword [0x1004c420]
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 [0x1004c420], 0
mov dword [0x1004c424], 0
mov dword [0x1004c428], 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.10016053
mov esp, ebp
pop ebp
ret 0xc