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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10034f97
mov eax, dword fs:[0]
push eax
sub esp, 0x83c
mov eax, dword [0x10048040]
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]
cmp eax, 1
jne 0x1001257a
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.1001c960
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x1001255f
cmp eax, 0xff
ja 0x1001255f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x100118cd
push 0x10
push 0x100428b4
push str.Failed_to_get_dll_path___2___ERROR_INSUFFICIENT_BUFFER_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x10012683
mov edx, str.SH3Config.exe
lea ecx, [ebp - 0x218]
call fcn.10002970
cmp al, 1
je 0x1001267e
lea eax, [ebp - 0x218]
push eax
push 0x104
push 0x1004ffc8
call fcn.1002201a
add esp, 0xc
push 0x1004ffc8
call dword [sym.imp.SHLWAPI.dll_PathStripPathW]
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.1001c33b
add esp, 8
test eax, eax
je 0x10011923
xor ecx, ecx
mov word [eax], cx
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.1001c960
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.10002650
mov esi, eax
lea eax, [ebp - 0x218]
push eax
push str._s_savedata_
push 0xffffffffffffffff
push 0x104
push 0x1004e710
call fcn.10002650
mov edi, eax
lea eax, [ebp - 0x218]
push eax
push str._sSavedataBackup_
push 0xffffffffffffffff
push 0x104
push 0x1004e268
call fcn.10002650
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 0x1004ec20
call fcn.10002650
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 0x1004e4b8
call fcn.10002650
mov dword [ebp - 0x840], eax
lea eax, [ebp - 0x218]
push eax
push str._sSoundsSH3_AudioHelper.exe
push 0xffffffffffffffff
push 0x104
push 0x1004fd90
call fcn.10002650
mov dword [ebp - 0x844], eax
lea eax, [ebp - 0x218]
push eax
push str._sdatamoviehuxx.000
push 0xffffffffffffffff
push 0x104
push 0x1004ee48
call fcn.10002650
add esp, 0x50
mov dword [ebp - 0x848], eax
lea eax, [ebp - 0x218]
push eax
push str._sdatamoviemuxx.000
push 0xffffffffffffffff
push 0x104
push 0x1004e998
call fcn.10002650
mov dword [ebp - 0x834], eax
lea eax, [ebp - 0x218]
push eax
push str._sdata_arc.arc
push 0xffffffffffffffff
push 0x104
push 0x1004f4f8
call fcn.10002650
mov ebx, eax
lea eax, [ebp - 0x218]
push eax
push str._sSilent_Hill_3_PC_Fix.log
push 0xffffffffffffffff
push 0x104
push 0x1004f2d0
call fcn.10002650
add esp, 0x3c
cmp esi, 0xffffffff
je 0x10012544
cmp edi, 0xffffffff
je 0x10012544
cmp dword [ebp - 0x838], 0xffffffff
je 0x10012544
cmp dword [ebp - 0x83c], 0xffffffff
je 0x10012544
cmp dword [ebp - 0x840], 0xffffffff
je 0x10012544
cmp dword [ebp - 0x844], 0xffffffff
je 0x10012544
cmp dword [ebp - 0x848], 0xffffffff
je 0x10012544
cmp dword [ebp - 0x834], 0xffffffff
je 0x10012544
cmp ebx, 0xffffffff
je 0x10012544
cmp eax, 0xffffffff
je 0x10012544
lea eax, [ebp - 0x218]
push eax
push 0x104
push 0x10050248
call fcn.1002201a
push 0x10042c3c
push 0x104
push 0x10050248
call fcn.1002207e
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 0x10011b68
push 0x10
push 0x100428b4
push 0x10042c40
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x10012683
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 8
call fcn.1001a70e
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.1001a866
push 0x208
mov esi, eax
push 0
push esi
call fcn.1001c960
lea eax, [ebp - 0x420]
mov dword [edi], esi
push eax
push 0x104
push esi
call fcn.1002201a
add esp, 0x20
test eax, eax
jne 0x10011bc8
mov byte [edi + 4], 1
push 0
push 0x10042c94
push 0x10042c94
mov ecx, edi
mov dword [ebp - 4], 0xffffffff
call fcn.10002f70
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeSRWLock]
mov dword [0x10050200], eax
test eax, eax
je 0x10011c29
push 0x1004e4b4
call ebx
mov eax, dword [0x10050200]
cmp eax, 1
jne 0x10011c0f
push 0x1004f2d0
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x10011c1a
cmp eax, 2
jne 0x10011c1a
call dword [sym.imp.KERNEL32.dll_AllocConsole]
push str.Silent_Hill_3_PC_Fix_2.6.6_Started__r_n_r_n
push 0
call fcn.10002ac0
add esp, 8
push 0
push str.BlockThirdPartyDlls
push str.Security
mov ecx, edi
call fcn.10002f70
push 0
push str.LogGameDebugMsg
push 0x10042c94
mov ecx, edi
mov dword [0x1004e490], eax
call fcn.10002f70
push 0
push str.LogMapDebugMsg
push 0x10042c94
mov ecx, edi
mov dword [0x1004f074], eax
call fcn.10002f70
push 0
push str.InstallExceptionHandler
push 0x10042c94
mov ecx, edi
mov dword [0x1004f2b8], eax
call fcn.10002f70
push 0
push str.FixAudio
push str.Audio
mov ecx, edi
mov dword [0x1004f700], eax
call fcn.10002f70
push 0
push str.DoubleADXBufferSize
push str.Audio
mov ecx, edi
mov dword [0x1004f050], eax
call fcn.10002f70
push 8
push str.Language
push str.GameWindow
mov ecx, edi
mov dword [0x1004e6dc], eax
call fcn.10002f70
push 1
push str.RegenerateDisp
push str.GameWindow
mov ecx, edi
mov dword [0x1004e6fc], eax
call fcn.10002f70
push 0
push str.ScreenWidth
push str.GameWindow
mov ecx, edi
mov dword [0x1004ee30], eax
call fcn.10002f70
push 0
push str.ScreenHeight
push str.GameWindow
mov ecx, edi
mov dword [0x1004e47c], eax
call fcn.10002f70
push 0
push str.RenderWidth
push str.GameWindow
mov ecx, edi
mov dword [0x10050454], eax
call fcn.10002f70
push 0
push str.RenderHeight
push str.GameWindow
mov ecx, edi
mov dword [0x1004ffac], eax
call fcn.10002f70
push 0
push str.Windowx
push str.GameWindow
mov ecx, edi
mov dword [0x10050238], eax
call fcn.10002f70
push 0
push str.Windowy
mov dword [0x1004f07c], eax
push str.GameWindow
mov ecx, edi
call fcn.10002f70
push 0
push str.WindowedMode
push str.GameWindow
mov ecx, edi
mov dword [0x10050240], eax
call fcn.10002f70
push 0
push str.Borderless
push str.GameWindow
mov ecx, edi
mov dword [0x10050450], eax
call fcn.10002f70
push 0
push str.ProcessAffinity
push str.GameWindow
mov ecx, edi
mov dword [0x1004ebdc], eax
call fcn.10002f70
push 0
push str.Fix2DElements
push str.Graphics
mov ecx, edi
mov dword [0x1004e488], eax
call fcn.10002f70
push 0
push str.StretchMaps
push str.Graphics
mov ecx, edi
mov dword [0x1004fd80], eax
call fcn.10002f70
push 0
push str.DOFResolution
push str.Graphics
mov ecx, edi
mov dword [0x1004e478], eax
call fcn.10002f70
push 0
push str.ShadowResolution
push str.Graphics
mov ecx, edi
mov dword [0x1004ec18], eax
call fcn.10002f70
push 0
push str.InventoryResolution
push str.Graphics
mov ecx, edi
mov dword [0x1004e92c], eax
call fcn.10002f70
push 0
push str.StatusScreenResolution
push str.Graphics
mov ecx, edi
mov dword [0x1004e6f0], eax
call fcn.10002f70
push 0
push str.FogComplexity
push str.Graphics
mov ecx, edi
mov dword [0x1004e91c], eax
call fcn.10002f70
push 0
push str.IncreaseGameplayFOV
push str.Graphics
mov ecx, edi
mov dword [0x1004e924], eax
call fcn.10002f70
push 0
push str.DecreaseFOVInCutscenes
push str.Graphics
mov ecx, edi
mov dword [0x1004ffc0], eax
call fcn.10002f70
push 0x208
mov dword [0x1004e254], eax
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.1001c960
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.1001c960
add esp, 0x10
lea eax, [ebp - 0x628]
xorps xmm0, xmm0
movsd qword [esp], xmm0
push 0x1003c2a4
push 0x104
push eax
call fcn.100128c0
add esp, 0x14
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.10027be2
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 0x10011f5c
call fcn.10027be2
cmp dword [eax], 0
jne 0x10011f5c
test esi, esi
je 0x10011f5c
cmp esi, 0x103
je 0x10011f5c
lea eax, [ebp - 0x830]
push eax
call fcn.10021da2
fstp dword [ebp - 0x834]
movss xmm0, dword [ebp - 0x834]
add esp, 4
jmp 0x10011f5f
xorps xmm0, xmm0
push 0
push str.FPSModes
push str.Graphics
mov ecx, edi
movss dword [0x1004f2c0], xmm0
call fcn.10002f70
push 0
push str.LimitFPSInStoreroom
push str.Graphics
mov ecx, edi
mov dword [0x1004ebd4], eax
call fcn.10002f70
push 0
push str.HookDX
push str.DirectX
mov ecx, edi
mov dword [0x1004e25c], eax
call fcn.10002f70
push 0
push str.UseDirectX12
push str.DirectX
mov ecx, edi
mov dword [0x1004f754], eax
call fcn.10002f70
push 0
push str.DisableMaximizedWindowedMode
push str.DirectX
mov ecx, edi
mov dword [0x1004ffa4], eax
call fcn.10002f70
push 0
push str.ForceVSync
push str.DirectX
mov ecx, edi
mov dword [0x1004e980], eax
call fcn.10002f70
push 0
push str.AnisotropicTextureFiltering
push str.DirectX
mov ecx, edi
mov dword [0x10050204], eax
call fcn.10002f70
push 0
push str.Wallhack
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1004ee28], eax
call fcn.10002f70
push 0
push str.NoDXFog
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1005020c], eax
call fcn.10002f70
push 0
push str.Gamma
push str.DirectX_Misc
mov ecx, edi
mov dword [0x1004ebb0], eax
call fcn.10002f70
push 0
push str.Hotkeys
push str.DirectX_Misc
mov ecx, edi
mov dword [0x10050218], eax
call fcn.10002f70
push 0
push str.Achievements
push str.SilentHill3
mov ecx, edi
mov dword [0x10050244], eax
call fcn.10002f70
push 0
push str.WishHouse
push str.SilentHill3
mov ecx, edi
mov dword [0x1004f084], eax
call fcn.10002f70
push 0
mov dword [0x1004f748], eax
push str.SubwayTypo
push str.SilentHill3
mov ecx, edi
call fcn.10002f70
push 0
push str.MissingSewerText
push str.SilentHill3
mov ecx, edi
mov dword [0x1004e6c0], eax
call fcn.10002f70
push 0
push str.ApartmentTypo
push str.SilentHill3
mov ecx, edi
mov dword [0x1004ebf8], eax
call fcn.10002f70
push 0
push str.DisableSafeMode
push str.SilentHill3
mov ecx, edi
mov dword [0x1004f738], eax
call fcn.10002f70
push 0
push str.RemoveCutsceneBorders
push str.SilentHill3
mov ecx, edi
mov dword [0x1004f070], eax
call fcn.10002f70
push 0
push str.RemoveBlackBars
push str.SilentHill3
mov ecx, edi
mov dword [0x1004e470], eax
call fcn.10002f70
push 0
push str.UnlockSH2EasterEggs
push str.SilentHill3
mov ecx, edi
mov dword [0x1004f068], eax
call fcn.10002f70
push 0
push str.FixOptionMenuFreeze
push str.SilentHill3
mov ecx, edi
mov dword [0x1004e964], eax
call fcn.10002f70
push 0
push str.FullscreenPauseMenu
push str.SilentHill3
mov ecx, edi
mov dword [0x1004e944], eax
call fcn.10002f70
push 0
push str.FixFMVs
push str.SilentHill3
mov ecx, edi
mov dword [0x100501e4], eax
call fcn.10002f70
push 0
push str.FMVFullscreenMode
push str.SilentHill3
mov ecx, edi
mov dword [0x1004ffb4], eax
call fcn.10002f70
push 0
push str.RestoreMissingDialogueSound
push str.SilentHill3
mov ecx, edi
mov dword [0x1004e484], eax
call fcn.10002f70
push 0
push str.RestoreBetaSound
push str.SilentHill3
mov ecx, edi
mov dword [0x1004e97c], eax
call fcn.10002f70
push 0
push str.NewSaveSystem
push str.SilentHill3
mov ecx, edi
mov dword [0x1004f714], eax
call fcn.10002f70
push 0
push str.ActionLevel
push str.SilentHill3
mov ecx, edi
mov dword [0x1004f75c], eax
call fcn.10002f70
push 3
push str.RiddleLevel
push str.SilentHill3
mov ecx, edi
mov dword [0x10050460], eax
call fcn.10002f70
push 0
push str.UnlockExtraMenuOptions
push str.SilentHill3
mov ecx, edi
mov dword [0x1004ff9c], eax
call fcn.10002f70
push 0
push str.UnlockEverything
push str.SilentHill3
mov ecx, edi
mov dword [0x1004f058], eax
call fcn.10002f70
push 0
push str.TrialSkip
push str.SilentHill3
mov ecx, edi
mov dword [0x1004f29c], eax
call fcn.10002f70
push 0
push str.SkipTrialPicture
push str.SilentHill3
mov ecx, edi
mov dword [0x1004f74c], eax
call fcn.10002f70
push 0
push str.GodMode
push str.Cheats
mov ecx, edi
mov dword [0x1004f744], eax
call fcn.10002f70
push 0
push str.Infinite
push str.Cheats
mov ecx, edi
mov dword [0x1004e474], eax
call fcn.10002f70
push 0
push str.BypassPassword
push str.Cheats
mov ecx, edi
mov dword [0x1004f4f0], eax
call fcn.10002f70
push 0x280
push str.CreditWidth
push str.Pictures
mov ecx, edi
mov dword [0x1004e96c], eax
call fcn.10002f70
push 0x1e0
push str.CreditHeight
push str.Pictures
mov ecx, edi
mov dword [0x1004f758], eax
call fcn.10002f70
push 0
push str.CreditIn43
push str.Pictures
mov ecx, edi
mov dword [0x1004fd84], eax
call fcn.10002f70
push 0x200
push str.KcetWidth
push str.Pictures
mov ecx, edi
mov dword [0x1004e960], eax
call fcn.10002f70
push 0x200
mov dword [0x1004f710], eax
push str.KcetHeight
push str.Pictures
mov ecx, edi
call fcn.10002f70
push 0x200
push str.KonamiWidth
push str.Pictures
mov ecx, edi
mov dword [0x1004ffa8], eax
call fcn.10002f70
push 0x200
push str.KonamiHeight
push str.Pictures
mov ecx, edi
mov dword [0x1004ebe0], eax
call fcn.10002f70
push 0
push str.LogosIn43
push str.Pictures
mov ecx, edi
mov dword [0x1004ebf4], eax
call fcn.10002f70
push 0
push str.RedirectRegistry
push str.Registry
mov ecx, edi
mov dword [0x100501e8], eax
call fcn.10002f70
cmp byte [edi + 4], 1
mov dword [0x1004ec10], eax
jne 0x100123c5
push dword [edi]
mov byte [edi + 4], 0
call fcn.1001a709
add esp, 4
push 8
push edi
call fcn.1001a858
add esp, 8
cmp dword [0x1004e92c], 0x100
jne 0x100123e6
mov dword [0x1004e92c], 0
cmp dword [0x1004ec18], 0x40
jne 0x100123f9
mov dword [0x1004ec18], 0
cmp dword [0x10050460], 0xd
jbe 0x1001240c
mov dword [0x10050460], 0
cmp dword [0x1004ff9c], 3
jbe 0x1001241f
mov dword [0x1004ff9c], 3
cmp dword [0x1004f058], 1
jbe 0x10012432
mov dword [0x1004f058], 0
cmp dword [0x1004f29c], 1
jne 0x10012445
mov dword [0x1004f058], 0
cmp dword [0x1004ffa4], 1
jne 0x10012462
mov dword [0x1004f754], 1
mov dword [0x1004e980], 0
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionEx]
push 0x1000000
push 0
push 0x10050220
call esi
push 0x1000000
push 0
push 0x1004f720
call esi
push 0x1000000
push 0
push 0x1004f4d8
call esi
push 0x1004fd88
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 [0x1004ebfc], eax
call esi
mov dword [0x1004e968], eax
mov eax, dword [0x1004e488]
test eax, eax
jne 0x100124cd
push 0x100435ec
jmp 0x10012521
cmp eax, 1
jne 0x100124e7
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessAffinityMask]
push str.Singlecore
jmp 0x10012521
cmp eax, 2
jne 0x100124f3
push str.Multicore__1_
jmp 0x10012521
cmp eax, 3
jne 0x100124ff
push str.Multicore__2_
jmp 0x10012521
cmp eax, 4
jne 0x1001250b
push str.Multicore__3_
jmp 0x10012521
cmp eax, 5
jne 0x10012517
push str.Multicore__4_
jmp 0x10012521
cmp eax, 6
jne 0x10012530
push str.Multicore__5_
push 0xf
push 0x1004ebb4
call fcn.1002201a
add esp, 0xc
call fcn.10008000
test al, al
jne 0x1001267e
xor eax, eax
jmp 0x10012683
push 0x10
push 0x100428b4
push str.Failed_to_build_strings_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x10012683
push 0x10
push 0x100428b4
push str.Failed_to_get_dll_path___1_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x10012683
test eax, eax
jne 0x1001267e
xor esi, esi
mov ecx, 1
mov ebx, 0x1004e22c
lock cmpxchg dword [ebx], ecx
test eax, eax
je 0x100125bd
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
nop dword [eax]
cmp esi, 0x20
jae 0x100125a9
push 0
jmp 0x100125ab
push 1
call edi
inc esi
mov ecx, 1
xor eax, eax
lock cmpxchg dword [ebx], ecx
test eax, eax
jne 0x100125a0
cmp dword [0x1004e230], 0
je 0x1001267a
xor ecx, ecx
call fcn.10001c60
test eax, eax
jne 0x1001267a
mov eax, dword [0x1004e228]
mov dword [0x1004e228], 0
test eax, eax
je 0x10012604
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 0x100125f2
push dword [0x10050468]
push 0
push dword [0x1004e230]
call dword [sym.imp.KERNEL32.dll_HeapSize]
cmp eax, 0xffffffff
je 0x10012632
test eax, eax
je 0x10012632
push eax
push 0
push dword [0x10050468]
call fcn.10034f00
add esp, 0xc
push dword [0x10050468]
push 0
push dword [0x1004e230]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [0x1004e230]
call dword [sym.imp.KERNEL32.dll_HeapDestroy]
mov dword [0x1004e230], 0
mov dword [0x10050468], 0
mov dword [0x1005046c], 0
mov dword [0x10050470], 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.1001a6fb
mov esp, ebp
pop ebp
ret 0xc