Function at 0x1403df0
Capabilities:
Accept command line arguments
Check mutex and terminate process on windows
Check mutex on windows
Initialize winsock library
Link many functions at runtime
Set environment variable
Terminate process

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x144aab0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x730
push esi
push edi
mov dword [ebp - 0x2c], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
call dword [eax]
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x1585ec4
push str.kernel32.dll
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
test eax, eax
jne 0x1403eb5
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._nomutex
mov eax, dword [eax + 8]
call eax
test eax, eax
jne 0x1403eb5
push str.ValveHalfLifeLauncherMutex
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0
push eax
mov dword [ebp - 0x2c], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x1403eb5
cmp eax, 0x80
je 0x1403eb5
push 0x10
push str.Error
push str.Could_not_launch_game._nOnly_one_instance_of_this_game_can_be_run_at_a_time.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x1404a89
lea eax, [ebp - 0x740]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
call dword [eax]
push 0x104
lea eax, [ebp - 0x1a0]
push eax
push 0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov cl, byte [ebp - 0x1a0]
lea eax, [ebp - 0x1a0]
mov edi, eax
mov dword [ebp - 0x24], edi
test cl, cl
je 0x1403f19
nop
cmp cl, 0x2f
je 0x1403f0d
cmp byte [eax], 0x5c
je 0x1403f0d
inc eax
jmp 0x1403f10
inc eax
mov edi, eax
mov cl, byte [eax]
test cl, cl
jne 0x1403f00
mov dword [ebp - 0x24], edi
lea eax, [ebp - 0x1a0]
mov esi, edi
sub esi, eax
push esi
push eax
lea eax, [ebp - 0x5b0]
push eax
call fcn.01435640
mov byte [ebp + esi - 0x5b0], 0
add esp, 0xc
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x1403f41
sub esi, ecx
lea eax, [esi - 1]
mov edx, eax
test edx, edx
je 0x1403f6a
mov cl, byte [edx + edi]
cmp cl, 0x2e
je 0x1403f6a
cmp cl, 0x2f
je 0x1403f6a
cmp cl, 0x5c
je 0x1403f6a
sub edx, 1
jne 0x1403f53
cmp byte [edx + edi], 0x2e
cmove esi, edx
dec esi
test eax, eax
js 0x1403f9a
nop word [eax + eax]
mov cl, byte [eax + edi]
cmp cl, 0x2f
je 0x140402b
cmp cl, 0x5c
je 0x140402b
sub eax, 1
jns 0x1403f80
xor eax, eax
sub esi, eax
add eax, edi
inc esi
push esi
push eax
lea eax, [ebp - 0x2a8]
push eax
call fcn.01435640
mov eax, dword [vtable.CCommandLine.0]
add esp, 0xc
mov ecx, 0x1590188
mov byte [ebp + esi - 0x2a8], 0
mov eax, dword [eax + 8]
push 0
push str._game
call eax
test eax, eax
jne 0x140405b
lea eax, [ebp - 0x2a8]
push str.svencoop
push eax
call fcn.01431385
add esp, 8
test eax, eax
jne 0x1404007
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str.svencoop
push str._game
call dword [eax + 0x10]
lea eax, [ebp - 0x2a8]
push 0x1585f78
push eax
call fcn.01431385
add esp, 8
mov ecx, 0x1590188
test eax, eax
jne 0x1404047
push str.valve
jmp 0x140404e
test eax, eax
js 0x1403f9a
cmp cl, 0x2f
je 0x1404041
cmp cl, 0x5c
jne 0x1403f9a
inc eax
jmp 0x1403f9c
lea eax, [ebp - 0x2a8]
push eax
mov eax, dword [vtable.CCommandLine.0]
push str._game
call dword [eax + 0x10]
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0
push eax
mov eax, dword [vtable.CCommandLine.0]
xorps xmm0, xmm0
push str._game
mov ecx, 0x1590188
movups xmmword [ebp - 0x4c], xmm0
movups xmmword [ebp - 0x3c], xmm0
call dword [eax + 8]
mov eax, dword [ebp - 0x20]
mov ecx, str.valve
test eax, eax
push 0x1f
cmovne ecx, eax
lea eax, [ebp - 0x4c]
push ecx
push eax
call fcn.01435640
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov byte [ebp - 0x2d], 0
test eax, eax
je 0x14040d1
push 5
push str.czero
push eax
call fcn.01439907
add esp, 0xc
test eax, eax
jne 0x14040d1
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._forcevalve
call dword [eax + 0x10]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push 0
push str.CrashInitializingVideoMode
mov eax, dword [eax + 8]
call eax
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
test eax, eax
je 0x1404201
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push 0
push str.CrashInitializingVideoMode
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push str.hw.dll
push str.EngineDLL
mov eax, dword [eax + 0x10]
call eax
cmp byte [eax], 0
je 0x1404201
mov ecx, str.hw.dll
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1404150
test dl, dl
je 0x140414c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1404150
add eax, 2
add ecx, 2
test dl, dl
jne 0x1404130
xor eax, eax
jmp 0x1404155
sbb eax, eax
or eax, 1
test eax, eax
je 0x1404201
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push 0
push str.EngineD3D
mov eax, dword [eax + 8]
call eax
test eax, eax
mov ecx, 0x15905c4
mov eax, dword [vtable.CRegistry.0]
je 0x1404199
push 0
push str.EngineD3D
call dword [eax + 0xc]
push 0x31
push str.Video_mode_change_failure
push str.The_game_has_detected_that_the_previous_attempt_to_start_in_D3D_video_mode_failed._nThe_game_will_now_run_attempt_to_run_in_openGL_mode.
jmp 0x14041b2
push str.sw.dll
push str.EngineDLL
call dword [eax + 0x14]
push 0x31
push str.Video_mode_change_failure
push str.The_game_has_detected_that_the_previous_attempt_to_start_in_openGL_video_mode_failed._nThe_game_will_now_run_in_software_mode.
push 0
call esi
cmp eax, 1
jne 0x1403eae
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push 0x280
push str.ScreenWidth
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push 0x1e0
push str.ScreenHeight
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push 0x20
push str.ScreenBPP
call dword [eax + 0xc]
push str.filesystem_stdio.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1404a4c
push 0x1453dd4
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
push str.VFileSystem009
call eax
mov edi, eax
add esp, 8
mov esi, 0xc
mov eax, dword [edi]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x44]
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x140425f
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1404240
mov ecx, dword [0x15bbec8]
mov dword [0x15bbed0], edi
jmp 0x140426d
mov ecx, edi
mov edi, dword [0x15bbed0]
mov dword [0x15bbec8], ecx
test edi, edi
je 0x1404277
mov eax, dword [edi]
mov ecx, edi
jmp 0x1404279
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [0x15bbed0]
push str.ROOT
test esi, esi
je 0x140429a
mov esi, dword [esi]
call fcn.01412f00
mov ecx, dword [0x15bbed0]
jmp 0x14042ac
mov eax, dword [0x15bbec8]
mov esi, dword [eax]
call fcn.01412f00
mov ecx, dword [0x15bbec8]
push eax
call dword [esi + 0x10]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push str.hw.dll
push str.EngineDLL
mov eax, dword [eax + 0x10]
call eax
push str.svencoop.exe
push dword [ebp - 0x24]
mov esi, eax
call fcn.01431385
add esp, 8
test eax, eax
jne 0x14042e6
mov esi, str.hw.dll
jmp 0x1404357
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push 0
push str._soft
mov eax, dword [eax + 8]
call eax
test eax, eax
jne 0x1404352
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._software
mov eax, dword [eax + 8]
call eax
test eax, eax
jne 0x1404352
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push 0x1585ea0
mov eax, dword [eax + 8]
call eax
test eax, eax
jne 0x140434b
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._d3d
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x1404357
mov esi, str.hw.dll
jmp 0x1404357
mov esi, str.sw.dll
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push esi
push str.EngineDLL
call dword [eax + 0x14]
push 0x800
push 0
push 0x15bd560
call fcn.0142abb0
mov ecx, dword [0x15bbed0]
add esp, 0xc
push 0
push 0x15862b8
push esi
test ecx, ecx
jne 0x1404396
mov ecx, dword [0x15bbec8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov edi, eax
test edi, edi
je 0x14043fe
push 0x44
lea eax, [ebp - 0x98]
push 0
push eax
call fcn.0142abb0
mov ecx, dword [0x15bbed0]
lea edx, [ebp - 0x98]
add esp, 0xc
push edi
push 0x44
push edx
test ecx, ecx
je 0x14043d1
mov eax, dword [ecx]
call dword [eax + 0x58]
jmp 0x14043dc
mov ecx, dword [0x15bbec8]
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, dword [0x15bbed0]
push edi
test ecx, ecx
jne 0x14043ed
mov ecx, dword [0x15bbec8]
mov eax, dword [ecx]
call dword [eax + 0x2c]
xor eax, eax
cmp dword [ebp - 0x58], 0x12345678
sete al
push esi
test eax, eax
jne 0x14049f7
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x14049c2
push 0x1453dd4
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x140498d
push 0
push str.VENGINE_LAUNCHER_API_VERSION002
call eax
mov edi, eax
add esp, 8
test edi, edi
je 0x1404958
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x5b0]
push eax
lea eax, [ebp - 0x4c]
xor edx, edx
push eax
call fcn.01408210
add esp, 8
push 0x1453dd4
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, dword [edi]
mov ecx, 0x1590188
push eax
mov eax, dword [vtable.CCommandLine.0]
push sym.MetaHook.exe_CreateInterface
push 0x15bd560
mov eax, dword [eax + 4]
call eax
push eax
call fcn.01412f00
push eax
push dword [ebx + 8]
mov eax, dword [esi + 4]
mov ecx, edi
call eax
mov esi, dword [0x15bcf5c]
mov edx, eax
mov dword [ebp - 0x1c], edx
test esi, esi
je 0x14044d5
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
nop word [eax + eax]
mov eax, dword [esi + 0x3c]
sub eax, 2
je 0x14044c2
sub eax, 1
je 0x14044c2
sub eax, 1
jne 0x14044ce
mov ecx, dword [esi + 0x38]
push edx
mov eax, dword [ecx]
call dword [eax + 0x14]
mov edx, dword [ebp - 0x1c]
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x14044b0
mov ecx, dword [0x15bcf54]
test ecx, ecx
je 0x14044f4
nop
mov esi, dword [ecx + 0x14]
call fcn.0140a4c0
mov ecx, esi
test esi, esi
jne 0x14044e0
mov dword [0x15bcf54], esi
mov eax, dword [0x15bbef4]
test eax, eax
je 0x1404503
mov dword [eax], 0
push 0x10
push dword [0x15bbef8]
xor edx, edx
xor ecx, ecx
push dword [0x15bcf60]
call fcn.01403880
add esp, 0xc
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [0x15bcfcc], 0
je 0x1404562
push 0x1585d90
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
je 0x1404562
push str.LdrUnregisterDllNotification
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1404562
push dword [0x15bcfcc]
call eax
mov dword [0x15bcfcc], 0
jmp 0x140458e
cmp dword [0x15bbec4], 0
je 0x140458e
call fcn.01401610
mov edx, 0x1403ab0
mov ecx, 0x15bbec4
call fcn.01401e50
call fcn.014016a0
mov dword [0x15bbec4], 0
mov edi, dword [0x15bcf5c]
test edi, edi
je 0x14045db
mov esi, edi
mov edi, dword [edi + 0x40]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x14045bb
mov eax, dword [esi + 0x3c]
sub eax, 2
je 0x14045b6
sub eax, 1
je 0x14045b6
sub eax, 1
jne 0x14045bb
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
je 0x14045c9
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push ecx
mov ecx, esi
call fcn.014065b0
test edi, edi
jne 0x1404598
mov dword [0x15bcf5c], edi
mov eax, dword [0x15bbf38]
test eax, eax
je 0x14045fc
push 0xac
push eax
call fcn.014281b5
add esp, 8
mov dword [0x15bbf38], 0
mov eax, dword [0x15bbf3c]
test eax, eax
je 0x140461d
push 0x218
push eax
call fcn.014281b5
add esp, 8
mov dword [0x15bbf3c], 0
mov edi, dword [0x15bcfa8]
mov esi, dword [0x15bcfa4]
mov dword [0x15bcf88], 0
cmp esi, edi
je 0x1404660
push 0xc
push dword [esi]
call fcn.014281b5
add esi, 4
add esp, 8
cmp esi, edi
jne 0x1404637
mov edi, dword [0x15bcfa8]
mov esi, dword [0x15bcfa4]
cmp esi, edi
je 0x1404660
mov dword [0x15bcfa8], esi
call fcn.014080f0
push 0x15bbf48
push str.PATH
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push 0x15bcfd0
call fcn.01429123
mov eax, dword [0x15bcf8c]
add esp, 4
cmp eax, dword [0x15bcf90]
je 0x1404694
mov dword [0x15bcf90], eax
push 0x15bcfd0
call fcn.0142913f
mov eax, dword [ebp - 0x1c]
add esp, 4
test eax, eax
je 0x1404927
cmp eax, 2
jg 0x1404927
mov byte [ebp - 0x11], 0
sub eax, 1
je 0x1404743
sub eax, 1
jne 0x1404747
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push 0x280
push str.ScreenWidth
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push 0x1e0
push str.ScreenHeight
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push 0x10
push str.ScreenBPP
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
push str.sw.dll
push str.EngineDLL
call dword [eax + 0x14]
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
push 0x31
push str.Video_mode_change_failure
push str.The_specified_video_mode_is_not_supported._nThe_game_will_now_run_in_software_mode.
push 0
call esi
cmp eax, 1
setne byte [ebp - 0x11]
jmp 0x140474d
mov byte [ebp - 0x11], 1
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push 0x1586254
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._startwindowed
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._windowed
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._window
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._full
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push 0x1586284
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._soft
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._software
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push 0x1585ea0
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._d3d
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push 0x1586290
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._width
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push 0x158629c
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._height
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._novid
call dword [eax + 0xc]
push str._game
push 0x15bd560
call fcn.0142a7d0
add esp, 8
test eax, eax
je 0x1404883
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str._game
call dword [eax + 0xc]
push str.load
push 0x15bd560
call fcn.0142a7d0
add esp, 8
test eax, eax
je 0x14048ab
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push str.load
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590188
push 0
push 0x15bd560
call dword [eax + 0x10]
cmp byte [ebp - 0x11], 0
je 0x14048f6
mov dword [ebp - 4], 3
mov ecx, dword [0x15bbed0]
test ecx, ecx
jne 0x14048dc
mov ecx, dword [0x15bbec8]
mov eax, dword [ecx]
call dword [eax + 8]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 4], 0xffffffff
jmp 0x1404201
mov dword [ebp - 4], 2
mov ecx, dword [0x15bbed0]
test ecx, ecx
jne 0x140490d
mov ecx, dword [0x15bbec8]
mov eax, dword [ecx]
call dword [eax + 8]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 4], 0xffffffff
jmp 0x1404a5c
mov dword [ebp - 4], 1
mov ecx, dword [0x15bbed0]
test ecx, ecx
jne 0x140493e
mov ecx, dword [0x15bbec8]
mov eax, dword [ecx]
call dword [eax + 8]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 4], 0xffffffff
jmp 0x1404a5c
push esi
lea eax, [ebp - 0x4a8]
push str.Could_not_get_EngineAPI_from_engine_:__s.
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x4a8]
push 0x10
push str.Fatal_Error
push eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call eax
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push esi
lea eax, [ebp - 0x4a8]
push str.Could_not_get_factory_from_engine_:__s.
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x4a8]
push 0x10
push str.Fatal_Error
push eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call eax
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push esi
lea eax, [ebp - 0x4a8]
push str.Could_not_load_engine_:__s.
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x4a8]
push 0x10
push str.Fatal_Error
push eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call eax
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea eax, [ebp - 0x4a8]
push str.This_build_of_metahook_does_not_support_blob_engine_:__s._nPlease_use_metahook_blob.exe_instead.
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x4a8]
push 0x10
push str.Fatal_Error
push eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call eax
mov dword [ebp - 4], 0
mov ecx, dword [0x15bbed0]
test ecx, ecx
jne 0x1404a3a
mov ecx, dword [0x15bbec8]
mov eax, dword [ecx]
call dword [eax + 8]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x1404a89
push 0x10
push str.Fatal_Error
push str.Could_not_load_filesystem_dll._nFileSystem_crashed_during_construction.
push 0
call esi
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905c4
call dword [eax + 4]
mov esi, dword [ebp - 0x2c]
test esi, esi
je 0x1404a7e
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 1
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10