Function at 0x1403dc0
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 0x144a990
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, 0x1590180
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 0x1403e85
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._nomutex
mov eax, dword [eax + 8]
call eax
test eax, eax
jne 0x1403e85
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 0x1403e85
cmp eax, 0x80
je 0x1403e85
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 0x1404a59
lea eax, [ebp - 0x740]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
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 0x1403ee9
nop
cmp cl, 0x2f
je 0x1403edd
cmp byte [eax], 0x5c
je 0x1403edd
inc eax
jmp 0x1403ee0
inc eax
mov edi, eax
mov cl, byte [eax]
test cl, cl
jne 0x1403ed0
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.01435550
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 0x1403f11
sub esi, ecx
lea eax, [esi - 1]
mov edx, eax
test edx, edx
je 0x1403f3a
mov cl, byte [edx + edi]
cmp cl, 0x2e
je 0x1403f3a
cmp cl, 0x2f
je 0x1403f3a
cmp cl, 0x5c
je 0x1403f3a
sub edx, 1
jne 0x1403f23
cmp byte [edx + edi], 0x2e
cmove esi, edx
dec esi
test eax, eax
js 0x1403f6a
nop word [eax + eax]
mov cl, byte [eax + edi]
cmp cl, 0x2f
je 0x1403ffb
cmp cl, 0x5c
je 0x1403ffb
sub eax, 1
jns 0x1403f50
xor eax, eax
sub esi, eax
add eax, edi
inc esi
push esi
push eax
lea eax, [ebp - 0x2a8]
push eax
call fcn.01435550
mov eax, dword [vtable.CCommandLine.0]
add esp, 0xc
mov ecx, 0x1590180
mov byte [ebp + esi - 0x2a8], 0
mov eax, dword [eax + 8]
push 0
push str._game
call eax
test eax, eax
jne 0x140402b
lea eax, [ebp - 0x2a8]
push str.svencoop
push eax
call fcn.01431295
add esp, 8
test eax, eax
jne 0x1403fd7
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str.svencoop
push str._game
call dword [eax + 0x10]
lea eax, [ebp - 0x2a8]
push 0x1585f78
push eax
call fcn.01431295
add esp, 8
mov ecx, 0x1590180
test eax, eax
jne 0x1404017
push str.valve
jmp 0x140401e
test eax, eax
js 0x1403f6a
cmp cl, 0x2f
je 0x1404011
cmp cl, 0x5c
jne 0x1403f6a
inc eax
jmp 0x1403f6c
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, 0x1590180
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.01435550
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov byte [ebp - 0x2d], 0
test eax, eax
je 0x14040a1
push 5
push str.czero
push eax
call fcn.01439817
add esp, 0xc
test eax, eax
jne 0x14040a1
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._forcevalve
call dword [eax + 0x10]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
push 0
push str.CrashInitializingVideoMode
mov eax, dword [eax + 8]
call eax
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
test eax, eax
je 0x14041d1
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
push 0
push str.CrashInitializingVideoMode
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
push str.hw.dll
push str.EngineDLL
mov eax, dword [eax + 0x10]
call eax
cmp byte [eax], 0
je 0x14041d1
mov ecx, str.hw.dll
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1404120
test dl, dl
je 0x140411c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1404120
add eax, 2
add ecx, 2
test dl, dl
jne 0x1404100
xor eax, eax
jmp 0x1404125
sbb eax, eax
or eax, 1
test eax, eax
je 0x14041d1
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
push 0
push str.EngineD3D
mov eax, dword [eax + 8]
call eax
test eax, eax
mov ecx, 0x15905bc
mov eax, dword [vtable.CRegistry.0]
je 0x1404169
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 0x1404182
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 0x1403e7e
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
push 0x280
push str.ScreenWidth
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
push 0x1e0
push str.ScreenHeight
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
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 0x1404a1c
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 0x140422f
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1404210
mov ecx, dword [0x15bbec8]
mov dword [0x15bbed0], edi
jmp 0x140423d
mov ecx, edi
mov edi, dword [0x15bbed0]
mov dword [0x15bbec8], ecx
test edi, edi
je 0x1404247
mov eax, dword [edi]
mov ecx, edi
jmp 0x1404249
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [0x15bbed0]
push str.ROOT
test esi, esi
je 0x140426a
mov esi, dword [esi]
call fcn.01412e70
mov ecx, dword [0x15bbed0]
jmp 0x140427c
mov eax, dword [0x15bbec8]
mov esi, dword [eax]
call fcn.01412e70
mov ecx, dword [0x15bbec8]
push eax
call dword [esi + 0x10]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
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.01431295
add esp, 8
test eax, eax
jne 0x14042b6
mov esi, str.hw.dll
jmp 0x1404327
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push 0
push str._soft
mov eax, dword [eax + 8]
call eax
test eax, eax
jne 0x1404322
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._software
mov eax, dword [eax + 8]
call eax
test eax, eax
jne 0x1404322
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push 0x1585ea0
mov eax, dword [eax + 8]
call eax
test eax, eax
jne 0x140431b
push eax
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._d3d
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x1404327
mov esi, str.hw.dll
jmp 0x1404327
mov esi, str.sw.dll
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
push esi
push str.EngineDLL
call dword [eax + 0x14]
push 0x800
push 0
push 0x15bd560
call fcn.0142aac0
mov ecx, dword [0x15bbed0]
add esp, 0xc
push 0
push 0x15862b8
push esi
test ecx, ecx
jne 0x1404366
mov ecx, dword [0x15bbec8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov edi, eax
test edi, edi
je 0x14043ce
push 0x44
lea eax, [ebp - 0x98]
push 0
push eax
call fcn.0142aac0
mov ecx, dword [0x15bbed0]
lea edx, [ebp - 0x98]
add esp, 0xc
push edi
push 0x44
push edx
test ecx, ecx
je 0x14043a1
mov eax, dword [ecx]
call dword [eax + 0x58]
jmp 0x14043ac
mov ecx, dword [0x15bbec8]
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, dword [0x15bbed0]
push edi
test ecx, ecx
jne 0x14043bd
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 0x14049c7
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x1404992
push 0x1453dd4
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x140495d
push 0
push str.VENGINE_LAUNCHER_API_VERSION002
call eax
mov edi, eax
add esp, 8
test edi, edi
je 0x1404928
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x5b0]
push eax
lea eax, [ebp - 0x4c]
xor edx, edx
push eax
call fcn.014081f0
add esp, 8
push 0x1453dd4
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, dword [edi]
mov ecx, 0x1590180
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.01412e70
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 0x14044a5
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
nop word [eax + eax]
mov eax, dword [esi + 0x3c]
sub eax, 2
je 0x1404492
sub eax, 1
je 0x1404492
sub eax, 1
jne 0x140449e
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 0x1404480
mov ecx, dword [0x15bcf54]
test ecx, ecx
je 0x14044c4
nop
mov esi, dword [ecx + 0x14]
call fcn.0140a480
mov ecx, esi
test esi, esi
jne 0x14044b0
mov dword [0x15bcf54], esi
mov eax, dword [0x15bbef4]
test eax, eax
je 0x14044d3
mov dword [eax], 0
push 0x10
push dword [0x15bbef8]
xor edx, edx
xor ecx, ecx
push dword [0x15bcf60]
call fcn.01403850
add esp, 0xc
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [0x15bcfcc], 0
je 0x1404532
push 0x1585d90
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
je 0x1404532
push str.LdrUnregisterDllNotification
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1404532
push dword [0x15bcfcc]
call eax
mov dword [0x15bcfcc], 0
jmp 0x140455e
cmp dword [0x15bbec4], 0
je 0x140455e
call fcn.01401610
mov edx, 0x1403a80
mov ecx, 0x15bbec4
call fcn.01401e40
call fcn.014016a0
mov dword [0x15bbec4], 0
mov edi, dword [0x15bcf5c]
test edi, edi
je 0x14045ab
mov esi, edi
mov edi, dword [edi + 0x40]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x140458b
mov eax, dword [esi + 0x3c]
sub eax, 2
je 0x1404586
sub eax, 1
je 0x1404586
sub eax, 1
jne 0x140458b
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
je 0x1404599
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push ecx
mov ecx, esi
call fcn.01406580
test edi, edi
jne 0x1404568
mov dword [0x15bcf5c], edi
mov eax, dword [0x15bbf38]
test eax, eax
je 0x14045cc
push 0xac
push eax
call fcn.014280c5
add esp, 8
mov dword [0x15bbf38], 0
mov eax, dword [0x15bbf3c]
test eax, eax
je 0x14045ed
push 0x218
push eax
call fcn.014280c5
add esp, 8
mov dword [0x15bbf3c], 0
mov edi, dword [0x15bcfa8]
mov esi, dword [0x15bcfa4]
mov dword [0x15bcf88], 0
cmp esi, edi
je 0x1404630
push 0xc
push dword [esi]
call fcn.014280c5
add esi, 4
add esp, 8
cmp esi, edi
jne 0x1404607
mov edi, dword [0x15bcfa8]
mov esi, dword [0x15bcfa4]
cmp esi, edi
je 0x1404630
mov dword [0x15bcfa8], esi
call fcn.014080c0
push 0x15bbf48
push str.PATH
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push 0x15bcfd0
call fcn.01429033
mov eax, dword [0x15bcf8c]
add esp, 4
cmp eax, dword [0x15bcf90]
je 0x1404664
mov dword [0x15bcf90], eax
push 0x15bcfd0
call fcn.0142904f
mov eax, dword [ebp - 0x1c]
add esp, 4
test eax, eax
je 0x14048f7
cmp eax, 2
jg 0x14048f7
mov byte [ebp - 0x11], 0
sub eax, 1
je 0x1404713
sub eax, 1
jne 0x1404717
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
push 0x280
push str.ScreenWidth
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
push 0x1e0
push str.ScreenHeight
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
push 0x10
push str.ScreenBPP
call dword [eax + 0xc]
mov eax, dword [vtable.CRegistry.0]
mov ecx, 0x15905bc
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 0x140471d
mov byte [ebp - 0x11], 1
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push 0x1586254
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._startwindowed
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._windowed
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._window
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._full
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push 0x1586284
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._soft
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._software
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push 0x1585ea0
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._d3d
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push 0x1586290
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._width
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push 0x158629c
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._height
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._novid
call dword [eax + 0xc]
push str._game
push 0x15bd560
call fcn.0142a6e0
add esp, 8
test eax, eax
je 0x1404853
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str._game
call dword [eax + 0xc]
push str.load
push 0x15bd560
call fcn.0142a6e0
add esp, 8
test eax, eax
je 0x140487b
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push str.load
call dword [eax + 0xc]
mov eax, dword [vtable.CCommandLine.0]
mov ecx, 0x1590180
push 0
push 0x15bd560
call dword [eax + 0x10]
cmp byte [ebp - 0x11], 0
je 0x14048c6
mov dword [ebp - 4], 3
mov ecx, dword [0x15bbed0]
test ecx, ecx
jne 0x14048ac
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 0x14041d1
mov dword [ebp - 4], 2
mov ecx, dword [0x15bbed0]
test ecx, ecx
jne 0x14048dd
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 0x1404a2c
mov dword [ebp - 4], 1
mov ecx, dword [0x15bbed0]
test ecx, ecx
jne 0x140490e
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 0x1404a2c
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 0x1404a0a
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 0x1404a59
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, 0x15905bc
call dword [eax + 4]
mov esi, dword [ebp - 0x2c]
test esi, esi
je 0x1404a4e
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