Function at 0x10001600
Capabilities:
Get common file path
Link many functions at runtime
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10013e67
mov eax, dword fs:[0]
push eax
sub esp, 0x828
mov eax, dword [0x1001c040]
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
cmp dword [ebp + 0xc], 1
mov ebx, dword [ebp + 8]
jne 0x10001984
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.ntdll.dll
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1000165f
push str.RtlImageNtHeader
push eax
call edi
mov dword [0x1001d424], eax
push str.Kernel32.dll
call esi
test eax, eax
je 0x10001692
push str.SetProcessMitigationPolicy
push eax
call edi
mov dword [0x1001d444], eax
test eax, eax
je 0x10001692
push 4
lea ecx, [ebp - 0x834]
mov dword [ebp - 0x834], 3
push ecx
push 3
call eax
push 0x58
call fcn.10002441
mov esi, eax
mov dword [ebp - 0x834], esi
push 0x58
push 0
push esi
mov dword [ebp - 4], 0
call fcn.10003cf0
add esp, 0x10
mov ecx, esi
call fcn.10001b80
mov dword [0x1001d428], eax
cmp byte [eax + 0x55], 1
jne 0x100016d2
push 0x100010e0
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.10003cf0
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.10003cf0
add esp, 0x18
lea eax, [ebp - 0x218]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x10001968
cmp eax, 0xd8
ja 0x10001968
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x10001748
push 0x10
push str.d3d8
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 - 0x218]
push 0x5c
push eax
call fcn.10003641
add esp, 8
test eax, eax
je 0x10001762
xor ecx, ecx
mov word [eax], cx
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.10003cf0
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x628]
push 0x104
push eax
call fcn.10005480
push str.d3d8R.dll
lea eax, [ebp - 0x628]
push 0x104
push eax
call fcn.100054e4
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileW]
lea eax, [ebp - 0x628]
add esp, 0x24
push 0
push 0x80
push 3
push 0
push 1
push 0
push eax
call esi
cmp eax, 0xffffffff
je 0x100017d7
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [0x1001d434], 1
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.10005480
push str.Silent_Hill_3_PC_Fix.dll
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.100054e4
add esp, 0x18
lea eax, [ebp - 0x420]
push 0
push 0x80
push 3
push 0
push 1
push 0
push eax
call esi
mov esi, dword [sym.imp.USER32.dll_MessageBoxW]
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, 0xffffffff
je 0x10001854
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x420]
push eax
call ebx
test eax, eax
jne 0x10001854
push 0x10
push str.d3d8
push str.Failed_to_load_game_mod_dll_
push eax
call esi
push 0x208
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.10003cf0
add esp, 0xc
lea eax, [ebp - 0x830]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x10001950
cmp eax, 0xf5
ja 0x10001950
push 0x10019ed8
lea eax, [ebp - 0x830]
push 0x104
push eax
call fcn.100054e4
add esp, 0xc
lea eax, [ebp - 0x628]
cmp byte [0x1001d434], 1
je 0x100018bd
lea eax, [ebp - 0x830]
push eax
call ebx
mov dword [0x1001d448], eax
test eax, eax
jne 0x100018e0
push 0x10
push str.d3d8
push str.Failed_to_load_d3d8.dll_
push eax
call esi
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x10019f20
push eax
call edi
push 0x10019f4c
push dword [0x1001d448]
mov dword [0x1001d43c], eax
call edi
push 0x10019f60
push dword [0x1001d448]
mov dword [0x1001d438], eax
call edi
push 0x10019f78
push dword [0x1001d448]
mov dword [0x1001d42c], eax
call edi
push 0x10019f88
push dword [0x1001d448]
mov dword [0x1001d440], eax
call edi
mov dword [0x1001d430], eax
test eax, eax
jne 0x10001984
push 0x10
push str.d3d8
push str.Failed_to_get_Direct3DCreate8_in_d3d8.dll_
push eax
call esi
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x10
push str.d3d8
push str.Failed_to_get_System_Directory_
push 0
call esi
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x10
push str.d3d8
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]
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.10002433
mov esp, ebp
pop ebp
ret 0xc