Function at 0x401990
Capabilities:
Hide graphical window
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x125c
call fcn.00413690
mov eax, dword [0x41f288]
xor eax, ebp
mov dword [ebp - 0x40], eax
push 0x421388
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x401a9b
push str.engineInit
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x422388], eax
push str.setScreenBounds
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x42238c], eax
push str.setPerfLevel
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4223a4], eax
push str.setDeviceEquipId
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x422398], eax
push str.setDeviceVersionAndInfo
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x422394], eax
push str.setDevicePlatform
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x422390], eax
push str.setDeviceNetType
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4223a8], eax
push str.engineTick
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x42239c], eax
push str.engineShutdown
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4223a0], eax
push str.ieKeyDown
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x421318], eax
push str.gameInit
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x42131c], eax
cmp dword [ebp - 4], 0
jne 0x401ad8
push 0x421388
push str.Unable_to_load_game_library:__s.__Please_make_sure_it_exists_and_the_latest_DirectX_is_installed.
lea edx, [ebp - 0x1040]
push edx
call fcn.00405de4
add esp, 0xc
push 0x30
push 0x41cd6c
lea eax, [ebp - 0x1040]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
or eax, 0xffffffff
jmp 0x401e62
cmp dword [0x422388], 0
je 0x401b05
cmp dword [0x42239c], 0
je 0x401b05
cmp dword [0x4223a0], 0
je 0x401b05
cmp dword [0x42131c], 0
je 0x401b05
cmp dword [0x421318], 0
jne 0x401b3c
push 0x421388
push str.Missing_functions_export_in_game_library:__s.__Please_make_sure_that_it_exists_and_the_latest_DirectX_is_installed.
lea ecx, [ebp - 0x1040]
push ecx
call fcn.00405de4
add esp, 0xc
push 0x30
push str.Error
lea edx, [ebp - 0x1040]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
or eax, 0xffffffff
jmp 0x401e62
mov dword [ebp - 0x117c], str.parent
mov dword [ebp - 0x38], 0
push 0x2c
push 0
lea eax, [ebp - 0x34]
push eax
call fcn.0040d8d0
add esp, 0xc
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x1060], eax
mov ecx, dword [ebp - 0x117c]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x38], 0x30
mov dword [ebp - 0x30], 0x4018c0
mov edx, dword [ebp - 0x1060]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], 6
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
mov dword [ebp - 0x1064], 0x6000000
mov edx, dword [ebp - 0x1064]
or edx, 0xcf0000
mov dword [ebp - 0x1064], edx
mov dword [ebp - 0x106c], 0x40100
push 0
push 0
push 0
push 0
mov eax, dword [0x420594]
add eax, 0x22
push eax
mov ecx, dword [0x420590]
push ecx
push 0
push 0
mov edx, dword [ebp - 0x1064]
push edx
push str.title
mov eax, dword [ebp - 0x117c]
push eax
mov ecx, dword [ebp - 0x106c]
push ecx
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [ebp - 0x3c], eax
push 0xa
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
fild dword [0x420594]
push ecx
fstp dword [esp]
fild dword [0x420590]
push ecx
fstp dword [esp]
call dword [0x42238c]
add esp, 8
mov ecx, dword [0x420598]
push ecx
call dword [0x4223a4]
add esp, 4
mov dword [ebp - 0x1218], 0x94
lea edx, [ebp - 0x1218]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [ebp - 0x120c]
mov dword [ebp - 0x1068], eax
push 0xff
call dword [0x422390]
add esp, 4
push 2
call dword [0x4223a8]
add esp, 4
mov ecx, dword [ebp - 0x1068]
push ecx
push 0x41ce04
lea edx, [ebp - 0x1258]
push edx
call fcn.00405de4
add esp, 0xc
mov eax, dword [ebp - 0x1214]
push eax
push 0x41ce08
lea ecx, [ebp - 0x1170]
push ecx
call fcn.00405de4
add esp, 0xc
lea edx, [ebp - 0x1170]
push edx
lea eax, [ebp - 0x1258]
push eax
call dword [0x422394]
add esp, 8
mov dword [ebp - 0x1178], 0
push 0x288
call fcn.004060ec
add esp, 4
mov dword [ebp - 8], eax
mov dword [ebp - 0x1174], 0x288
lea ecx, [ebp - 0x1174]
push ecx
mov edx, dword [ebp - 8]
push edx
call sub.IPHLPAPI.DLL_GetAdaptersInfo
cmp eax, 0x6f
jne 0x401d32
mov eax, dword [ebp - 8]
push eax
call fcn.0040600f
add esp, 4
mov ecx, dword [ebp - 0x1174]
push ecx
call fcn.004060ec
add esp, 4
mov dword [ebp - 8], eax
lea edx, [ebp - 0x1174]
push edx
mov eax, dword [ebp - 8]
push eax
call sub.IPHLPAPI.DLL_GetAdaptersInfo
mov dword [ebp - 0x1178], eax
cmp dword [ebp - 0x1178], 0
jne 0x401d61
mov ecx, dword [ebp - 8]
add ecx, 8
push ecx
call dword [0x422398]
add esp, 4
cmp dword [ebp - 8], 0
je 0x401d7f
mov edx, dword [ebp - 8]
mov dword [ebp - 0x125c], edx
mov eax, dword [ebp - 0x125c]
push eax
call fcn.00406a68
add esp, 4
mov dword [ebp - 8], 0
push 1
push 0
push 1
mov ecx, 0x4223d0
call fcn.00401fb0
push eax
mov ecx, 0x4223ec
call fcn.00401fb0
push eax
push 0
mov ecx, dword [0x420594]
push ecx
mov edx, dword [0x420590]
push edx
push 0
push 0
mov eax, dword [ebp - 0x3c]
push eax
call dword [0x422388]
add esp, 0x2c
test eax, eax
jne 0x401dd1
mov eax, 1
jmp 0x401e62
push 0
push 0x2710
push 0
mov ecx, dword [ebp - 0x3c]
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
xor edx, edx
mov dword [ebp - 0x105c], edx
mov dword [ebp - 0x1058], edx
mov dword [ebp - 0x1054], edx
mov dword [ebp - 0x1050], edx
mov dword [ebp - 0x104c], edx
mov dword [ebp - 0x1048], edx
mov dword [ebp - 0x1044], edx
cmp dword [ebp - 0x1058], 0x12
je 0x401e56
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x105c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x401e4e
lea ecx, [ebp - 0x105c]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [ebp - 0x105c]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x401e54
call dword [0x42239c]
jmp 0x401e10
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
mov ecx, dword [ebp - 0x40]
xor ecx, ebp
call fcn.00405d78
mov esp, ebp
pop ebp
ret