Function at 0x1000cef0
Capabilities:
Delete file
Read .ini file
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x83c
mov eax, dword [0x10043040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
cmp eax, 1
jne 0x1000db97
push 0x10007cd0
call fcn.10019ac0
push 0x10007cf0
call fcn.10022c9a
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.10017a30
add esp, 0x14
lea eax, [ebp - 0x20c]
push 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x1000db7b
cmp eax, 0xff
ja 0x1000db7b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1000cf8c
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]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea eax, [ebp - 0x20c]
push 0x5c
push eax
call fcn.1001772b
add esp, 8
test eax, eax
je 0x1000cfa6
xor ecx, ecx
mov word [eax], cx
push 0x208
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.10017a30
lea eax, [ebp - 0x20c]
push eax
push str._sSilent_Hill_3_PC_Fix.ini
push 0xffffffffffffffff
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.10002350
mov esi, eax
lea eax, [ebp - 0x20c]
push eax
push str._s_savedata_
push 0xffffffffffffffff
push 0x104
push 0x10049740
call fcn.10002350
mov edi, eax
lea eax, [ebp - 0x20c]
push eax
push str._sSavedataBackup_
push 0xffffffffffffffff
push 0x104
push 0x100492a0
call fcn.10002350
add esp, 0x48
mov dword [ebp - 0x82c], eax
lea eax, [ebp - 0x20c]
push eax
push str.open___sSoundsSH3_20016.mp3__type_mpegvideo_alias_mp3
push 0xffffffffffffffff
push 0x104
push 0x10049c48
call fcn.10002350
mov dword [ebp - 0x830], eax
lea eax, [ebp - 0x20c]
push eax
push str.open___sSoundsAchievementUnlocked.mp3__type_mpegvideo_alias_mp3
push 0xffffffffffffffff
push 0x104
push 0x100494f0
call fcn.10002350
mov dword [ebp - 0x834], eax
lea eax, [ebp - 0x20c]
push eax
push str._sSoundsSH3_AudioHelper.exe
push 0xffffffffffffffff
push 0x104
push 0x1004adb0
call fcn.10002350
mov dword [ebp - 0x838], eax
lea eax, [ebp - 0x20c]
push eax
push str._sdatamoviehuxx.000
push 0xffffffffffffffff
push 0x104
push 0x10049e70
call fcn.10002350
add esp, 0x50
mov dword [ebp - 0x83c], eax
lea eax, [ebp - 0x20c]
push eax
push str._sdatamoviemuxx.000
push 0xffffffffffffffff
push 0x104
push 0x100499c0
call fcn.10002350
mov dword [ebp - 0x828], eax
lea eax, [ebp - 0x20c]
push eax
push str._sdata_arc.arc
push 0xffffffffffffffff
push 0x104
push 0x1004a518
call fcn.10002350
mov ebx, eax
lea eax, [ebp - 0x20c]
push eax
push str._sSilent_Hill_3_PC_Fix.log
push 0xffffffffffffffff
push 0x104
push 0x1004a2f8
call fcn.10002350
add esp, 0x3c
cmp esi, 0xffffffff
je 0x1000db5f
cmp edi, 0xffffffff
je 0x1000db5f
cmp edi, 0xfa
jg 0x1000db5f
cmp dword [ebp - 0x82c], 0xffffffff
je 0x1000db5f
cmp dword [ebp - 0x830], 0xffffffff
je 0x1000db5f
cmp dword [ebp - 0x834], 0xffffffff
je 0x1000db5f
cmp dword [ebp - 0x838], 0xffffffff
je 0x1000db5f
cmp dword [ebp - 0x83c], 0xffffffff
je 0x1000db5f
cmp dword [ebp - 0x828], 0xffffffff
je 0x1000db5f
cmp ebx, 0xffffffff
je 0x1000db5f
cmp eax, 0xffffffff
je 0x1000db5f
lea eax, [ebp - 0x20c]
push eax
push 0x104
push 0x1004b260
call fcn.1001d8ae
push 0x1003d6e0
push 0x104
push 0x1004b260
call fcn.1001d912
add esp, 0x18
lea eax, [ebp - 0x414]
push 0
push 0x80
push 3
push 0
push 1
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x1000d1f8
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]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x20a
call fcn.10015c66
push 0x208
mov esi, eax
push 0
push esi
mov dword [ebp - 0x828], esi
call fcn.10017a30
lea eax, [ebp - 0x414]
mov byte [esi + 0x208], 0
push eax
push 0x104
push esi
call fcn.1001d8ae
add esp, 0x1c
test eax, eax
jne 0x1000d245
mov byte [esi + 0x208], 1
push 0
push 0x1003d73c
push 0x1003d73c
mov ecx, esi
call fcn.10002cb0
mov edi, dword [sym.imp.KERNEL32.dll_InitializeSRWLock]
mov dword [0x1004b21c], eax
test eax, eax
je 0x1000d29f
push 0x100494e8
call edi
mov eax, dword [0x1004b21c]
cmp eax, 1
jne 0x1000d285
push 0x1004a2f8
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x1000d290
cmp eax, 2
jne 0x1000d290
call dword [sym.imp.KERNEL32.dll_AllocConsole]
push str.Silent_Hill_3_PC_Fix_2.6.2_Started__r_n_r_n
push 0
call fcn.10002780
add esp, 8
push 0
push str.BlockThirdPartyDlls
push str.Security
mov ecx, esi
call fcn.10002cb0
push 0
push str.LogGameDebugMsg
push 0x1003d73c
mov ecx, esi
mov dword [0x100494c4], eax
call fcn.10002cb0
push 0
push str.LogMapDebugMsg
push 0x1003d73c
mov ecx, esi
mov dword [0x1004a09c], eax
call fcn.10002cb0
push 0
push str.InstallExceptionHandler
push 0x1003d73c
mov ecx, esi
mov dword [0x1004a2e0], eax
call fcn.10002cb0
push 0
push str.FixAudio
push str.Audio
mov ecx, esi
mov dword [0x1004a720], eax
call fcn.10002cb0
push 0
push str.DoubleADXBufferSize
push str.Audio
mov ecx, esi
mov dword [0x1004a078], eax
call fcn.10002cb0
push 8
push str.Language
push str.GameWindow
mov ecx, esi
mov dword [0x10049714], eax
call fcn.10002cb0
push 1
push str.RegenerateDisp
push str.GameWindow
mov ecx, esi
mov dword [0x10049730], eax
call fcn.10002cb0
push 0
push str.ScreenWidth
push str.GameWindow
mov ecx, esi
mov dword [0x10049e58], eax
call fcn.10002cb0
push 0
push str.ScreenHeight
push str.GameWindow
mov ecx, esi
mov dword [0x100494b0], eax
call fcn.10002cb0
push 0
push str.RenderWidth
push str.GameWindow
mov ecx, esi
mov dword [0x1004b470], eax
call fcn.10002cb0
push 0
push str.RenderHeight
push str.GameWindow
mov ecx, esi
mov dword [0x1004afcc], eax
call fcn.10002cb0
push 0
push str.Windowx
push str.GameWindow
mov ecx, esi
mov dword [0x1004b254], eax
call fcn.10002cb0
push 0
push str.Windowy
mov dword [0x1004a0a4], eax
push str.GameWindow
mov ecx, esi
call fcn.10002cb0
push 0
push str.WindowedMode
push str.GameWindow
mov ecx, esi
mov dword [0x1004b25c], eax
call fcn.10002cb0
push 0
push str.Borderless
push str.GameWindow
mov ecx, esi
mov dword [0x1004b46c], eax
call fcn.10002cb0
push 0
push str.ProcessAffinity
push str.GameWindow
mov ecx, esi
mov dword [0x10049c04], eax
call fcn.10002cb0
push 0
push str.Fix2DElements
push str.Graphics
mov ecx, esi
mov dword [0x100494bc], eax
call fcn.10002cb0
push 0
push str.StretchMaps
push str.Graphics
mov ecx, esi
mov dword [0x1004ada0], eax
call fcn.10002cb0
push 0
push str.DOFResolution
push str.Graphics
mov ecx, esi
mov dword [0x100494ac], eax
call fcn.10002cb0
push 0
push str.ShadowResolution
push str.Graphics
mov ecx, esi
mov dword [0x10049c40], eax
call fcn.10002cb0
push 0
push str.InventoryResolution
push str.Graphics
mov ecx, esi
mov dword [0x1004995c], eax
call fcn.10002cb0
push 0
push str.StatusScreenResolution
push str.Graphics
mov ecx, esi
mov dword [0x10049724], eax
call fcn.10002cb0
push 0
push str.FogComplexity
push str.Graphics
mov ecx, esi
mov dword [0x1004994c], eax
call fcn.10002cb0
push 0
push str.IncreaseGameplayFOV
push str.Graphics
mov ecx, esi
mov dword [0x10049954], eax
call fcn.10002cb0
push 0
push str.DecreaseFOVInCutscenes
push str.Graphics
mov ecx, esi
mov dword [0x1004afe0], eax
call fcn.10002cb0
push 0x208
mov dword [0x1004928c], eax
lea eax, [ebp - 0x824]
push 0
push eax
call fcn.10017a30
push 0x208
lea eax, [ebp - 0x61c]
push 0
push eax
call fcn.10017a30
add esp, 0x10
lea eax, [ebp - 0x61c]
xorps xmm0, xmm0
movsd qword [esp], xmm0
push 0x10037150
push 0x104
push eax
call fcn.1000dee0
add esp, 0x14
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.10022bda
push esi
push 0x104
mov dword [eax], 0
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0x61c]
push eax
push str.VerticalCutsceneFOV
push str.Graphics
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1000d5d1
call fcn.10022bda
cmp dword [eax], 0
jne 0x1000d5d1
test ebx, ebx
je 0x1000d5d1
cmp ebx, 0x103
je 0x1000d5d1
lea eax, [ebp - 0x824]
push eax
call fcn.1001d636
fstp dword [ebp - 0x828]
movss xmm0, dword [ebp - 0x828]
add esp, 4
jmp 0x1000d5d4
xorps xmm0, xmm0
push 0
push str.FPSModes
push str.Graphics
mov ecx, esi
movss dword [0x1004a2e8], xmm0
call fcn.10002cb0
push 0
push str.LimitFPSInStoreroom
push str.Graphics
mov ecx, esi
mov dword [0x10049bfc], eax
call fcn.10002cb0
push 0
push str.HookDX
push str.DirectX
mov ecx, esi
mov dword [0x10049294], eax
call fcn.10002cb0
push 0
push str.UseDirectX12
push str.DirectX
mov ecx, esi
mov dword [0x1004a774], eax
call fcn.10002cb0
push 0
push str.DisableMaximizedWindowedMode
push str.DirectX
mov ecx, esi
mov dword [0x1004afc4], eax
call fcn.10002cb0
push 0
push str.ForceVSync
push str.DirectX
mov ecx, esi
mov dword [0x100499a8], eax
call fcn.10002cb0
push 0
push str.AnisotropicTextureFiltering
push str.DirectX
mov ecx, esi
mov dword [0x1004b220], eax
call fcn.10002cb0
push 0
push str.Wallhack
push str.DirectX_Misc
mov ecx, esi
mov dword [0x10049e50], eax
call fcn.10002cb0
push 0
push str.NoDXFog
push str.DirectX_Misc
mov ecx, esi
mov dword [0x1004b228], eax
call fcn.10002cb0
push 0
push str.Gamma
push str.DirectX_Misc
mov ecx, esi
mov dword [0x10049bd8], eax
call fcn.10002cb0
push 0
push str.Hotkeys
push str.DirectX_Misc
mov ecx, esi
mov dword [0x1004b234], eax
call fcn.10002cb0
push 0
push str.Achievements
push str.SilentHill3
mov ecx, esi
mov dword [0x1004b468], eax
call fcn.10002cb0
push 0
push str.WishHouse
push str.SilentHill3
mov ecx, esi
mov dword [0x1004a0ac], eax
call fcn.10002cb0
push 0
mov dword [0x1004a768], eax
push str.SubwayTypo
push str.SilentHill3
mov ecx, esi
call fcn.10002cb0
push 0
push str.MissingSewerText
push str.SilentHill3
mov ecx, esi
mov dword [0x100496f8], eax
call fcn.10002cb0
push 0
push str.ApartmentTypo
push str.SilentHill3
mov ecx, esi
mov dword [0x10049c20], eax
call fcn.10002cb0
push 0
push str.DisableSafeMode
push str.SilentHill3
mov ecx, esi
mov dword [0x1004a758], eax
call fcn.10002cb0
push 0
push str.RemoveCutsceneBorders
push str.SilentHill3
mov ecx, esi
mov dword [0x1004a098], eax
call fcn.10002cb0
push 0
push str.RemoveBlackBars
push str.SilentHill3
mov ecx, esi
mov dword [0x100494a8], eax
call fcn.10002cb0
push 0
push str.UnlockSH2EasterEggs
push str.SilentHill3
mov ecx, esi
mov dword [0x1004a090], eax
call fcn.10002cb0
push 0
push str.FixOptionMenuFreeze
push str.SilentHill3
mov ecx, esi
mov dword [0x10049990], eax
call fcn.10002cb0
push 0
push str.FullscreenPauseMenu
push str.SilentHill3
mov ecx, esi
mov dword [0x10049970], eax
call fcn.10002cb0
push 0
push str.FixFMVs
push str.SilentHill3
mov ecx, esi
mov dword [0x1004b200], eax
call fcn.10002cb0
push 0
push str.FMVFullscreenMode
push str.SilentHill3
mov ecx, esi
mov dword [0x1004afd4], eax
call fcn.10002cb0
push 0
push str.RestoreMissingDialogueSound
push str.SilentHill3
mov ecx, esi
mov dword [0x100494b8], eax
call fcn.10002cb0
push 0
push str.RestoreBetaSound
push str.SilentHill3
mov ecx, esi
mov dword [0x100499a4], eax
call fcn.10002cb0
push 0
push str.NewSaveSystem
push str.SilentHill3
mov ecx, esi
mov dword [0x1004a734], eax
call fcn.10002cb0
push 0
push str.ActionLevel
push str.SilentHill3
mov ecx, esi
mov dword [0x1004a77c], eax
call fcn.10002cb0
push 3
push str.RiddleLevel
push str.SilentHill3
mov ecx, esi
mov dword [0x1004b47c], eax
call fcn.10002cb0
push 0
push str.UnlockExtraMenuOptions
push str.SilentHill3
mov ecx, esi
mov dword [0x1004afbc], eax
call fcn.10002cb0
push 0
push str.UnlockEverything
push str.SilentHill3
mov ecx, esi
mov dword [0x1004a080], eax
call fcn.10002cb0
push 0
push str.TrialSkip
push str.SilentHill3
mov ecx, esi
mov dword [0x1004a2c4], eax
call fcn.10002cb0
push 0
push str.SkipTrialPicture
push str.SilentHill3
mov ecx, esi
mov dword [0x1004a76c], eax
call fcn.10002cb0
cmp dword [0x1004995c], 0x100
mov dword [0x1004a764], eax
jne 0x1000d90a
mov dword [0x1004995c], 0
cmp dword [0x10049c40], 0x40
jne 0x1000d91d
mov dword [0x10049c40], 0
cmp dword [0x1004b47c], 0xd
jbe 0x1000d930
mov dword [0x1004b47c], 0
cmp dword [0x1004afbc], 3
jbe 0x1000d943
mov dword [0x1004afbc], 3
cmp dword [0x1004a080], 1
jbe 0x1000d956
mov dword [0x1004a080], 0
cmp dword [0x1004a2c4], 1
jne 0x1000d969
mov dword [0x1004a080], 0
push 0x280
push str.CreditWidth
push str.Pictures
mov ecx, esi
call fcn.10002cb0
push 0x1e0
push str.CreditHeight
push str.Pictures
mov ecx, esi
mov dword [0x1004a778], eax
call fcn.10002cb0
push 0
push str.CreditIn43
push str.Pictures
mov ecx, esi
mov dword [0x1004ada4], eax
call fcn.10002cb0
push 0x200
push str.KcetWidth
push str.Pictures
mov ecx, esi
mov dword [0x1004998c], eax
call fcn.10002cb0
push 0x200
push str.KcetHeight
push str.Pictures
mov ecx, esi
mov dword [0x1004a730], eax
call fcn.10002cb0
push 0x200
push str.KonamiWidth
push str.Pictures
mov ecx, esi
mov dword [0x1004afc8], eax
call fcn.10002cb0
push 0x200
push str.KonamiHeight
push str.Pictures
mov ecx, esi
mov dword [0x10049c08], eax
call fcn.10002cb0
push 0
push str.LogosIn43
push str.Pictures
mov ecx, esi
mov dword [0x10049c1c], eax
call fcn.10002cb0
push 0
push str.RedirectRegistry
push str.Registry
mov ecx, esi
mov dword [0x1004b204], eax
call fcn.10002cb0
push 0x20a
push esi
mov dword [0x10049c38], eax
mov byte [esi + 0x208], 0
call fcn.10015db0
add esp, 8
cmp dword [0x1004afc4], 1
jne 0x1000da85
mov dword [0x1004a774], 1
mov dword [0x100499a8], 0
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionEx]
push 0x1000000
push 0
push 0x1004b23c
call esi
push 0x1000000
push 0
push 0x1004a740
call esi
push 0x1000000
push 0
push 0x1004a500
call esi
push 0x1004ada8
call edi
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 [0x10049c24], eax
call esi
mov dword [0x10049994], eax
mov eax, dword [0x100494bc]
test eax, eax
jne 0x1000daf0
push 0x1003e040
jmp 0x1000db44
cmp eax, 1
jne 0x1000db0a
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessAffinityMask]
push str.Singlecore
jmp 0x1000db44
cmp eax, 2
jne 0x1000db16
push str.Multicore__1_
jmp 0x1000db44
cmp eax, 3
jne 0x1000db22
push str.Multicore__2_
jmp 0x1000db44
cmp eax, 4
jne 0x1000db2e
push str.Multicore__3_
jmp 0x1000db44
cmp eax, 5
jne 0x1000db3a
push str.Multicore__4_
jmp 0x1000db44
cmp eax, 6
jne 0x1000db53
push str.Multicore__5_
push 0xf
push 0x10049bdc
call fcn.1001d8ae
add esp, 0xc
xor ecx, ecx
call fcn.10007d10
jmp 0x1000dca2
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]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
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]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
test eax, eax
jne 0x1000dca2
xor esi, esi
mov ecx, 1
mov ebx, 0x10049264
lock cmpxchg dword [ebx], ecx
test eax, eax
je 0x1000dbdd
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
nop dword [eax]
cmp esi, 0x20
jae 0x1000dbc9
push 0
jmp 0x1000dbcb
push 1
call edi
inc esi
mov ecx, 1
xor eax, eax
lock cmpxchg dword [ebx], ecx
test eax, eax
jne 0x1000dbc0
cmp dword [0x10049268], 0
je 0x1000dc9e
xor ecx, ecx
call fcn.10001ce0
test eax, eax
jne 0x1000dc9e
mov eax, dword [0x10049260]
mov dword [0x10049260], 0
test eax, eax
je 0x1000dc24
mov edi, dword [sym.imp.KERNEL32.dll_VirtualFree]
mov esi, dword [eax]
push 0x8000
push 0
push eax
call edi
mov eax, esi
test esi, esi
jne 0x1000dc12
push dword [0x1004b484]
push 0
push dword [0x10049268]
call dword [sym.imp.KERNEL32.dll_HeapSize]
mov edx, dword [0x1004b484]
mov ecx, eax
cmp ecx, 0xffffffff
je 0x1000dc5b
test ecx, ecx
je 0x1000dc5b
mov eax, edx
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x1000dc50
push edx
push 0
push dword [0x10049268]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [0x10049268]
call dword [sym.imp.KERNEL32.dll_HeapDestroy]
mov dword [0x10049268], 0
mov dword [0x1004b484], 0
mov dword [0x1004b488], 0
mov dword [0x1004b48c], 0
xor ecx, ecx
xchg dword [ebx], ecx
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10015c53
mov esp, ebp
pop ebp
ret 0xc