Function at 0x4018f0
Capabilities:
Get process heap flags
Get process heap force flags
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x482a05
mov eax, dword fs:[0]
push eax
sub esp, 0xf0
mov eax, dword [0x4a7008]
xor eax, esp
mov dword [esp + 0xe8], eax
push ebx
push esi
push edi
mov eax, dword [0x4a7008]
xor eax, esp
push eax
lea eax, [esp + 0x100]
mov dword fs:[0], eax
mov edi, ecx
call fcn.00402050
sub esp, 0x18
lea eax, [edi + 0x40]
mov ecx, esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.004034d0
call fcn.00401370
mov ecx, eax
call fcn.004698a0
sub esp, 0x18
mov ecx, esp
push 0x14
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.Creating_main_window
mov byte [ecx], 0
call fcn.00403610
call fcn.00401370
mov ecx, eax
call fcn.00469c80
call dword [sym.imp.USER32.dll_SetProcessDPIAware]
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call esi
push 1
mov ebx, eax
call esi
push 0xa
push str.Build_1.01
lea ecx, [edi + 0x70]
mov esi, eax
call fcn.00403610
push ecx
lea eax, [esp + 0x48]
mov ecx, edi
push eax
call fcn.00401460
push 0xa
push str._prefs.ini
lea ecx, [esp + 0x4c]
mov dword [esp + 0x110], 0
call fcn.004033e0
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x4c]
mov dword [esp + 0x30], 0xf
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
call fcn.004034d0
cmp dword [esp + 0x28], 0x10
lea eax, [esp + 0x14]
push 0
cmovae eax, dword [esp + 0x18]
push 0x80
push 3
push 0
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
je 0x401bb5
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x28], 0x10
jb 0x401a51
push dword [esp + 0x14]
call fcn.0046fdb4
add esp, 4
push 0x58
lea eax, [esp + 0x60]
mov dword [esp + 0x2c], 0xf
push 0
push eax
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
call fcn.00479b40
add esp, 0xc
mov dword [esp + 0x5c], vtable.IniLoader.0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x94], 0xf
mov dword [esp + 0x90], 0
mov byte [esp + 0x80], 0
mov dword [esp + 0xac], 0xf
mov dword [esp + 0xa8], 0
mov byte [esp + 0x98], 0
mov byte [esp + 0xb0], 0
push 0xffffffffffffffff
mov byte [esp + 0x10c], 1
lea eax, [esp + 0x48]
push 0
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], 0
mov byte [esp + 0x38], 0
call fcn.004034d0
mov byte [esp + 0x108], 2
lea eax, [esp + 0x2c]
cmp dword [esp + 0x40], 0x10
lea ecx, [esp + 0x5c]
cmovae eax, dword [esp + 0x2c]
push eax
push str.prefs
call fcn.00462af0
cmp dword [esp + 0x40], 0x10
jb 0x401b5a
push dword [esp + 0x2c]
call fcn.0046fdb4
add esp, 4
push 0x3f
push str.windowed
lea ecx, [esp + 0x64]
call fcn.00463a60
push eax
lea eax, [esp + 0xbc]
push eax
call fcn.00470fa0
add esp, 0xc
lea eax, [esp + 0xb4]
push eax
call fcn.0046ff0d
add esp, 4
test eax, eax
setne al
mov byte [esp + 0x10], al
test al, al
je 0x401ba2
mov ebx, 0x780
mov esi, 0x438
lea ecx, [esp + 0x5c]
mov byte [esp + 0x108], 0
call fcn.004632d0
jmp 0x401be2
cmp dword [esp + 0x28], 0x10
jb 0x401bc8
push dword [esp + 0x14]
call fcn.0046fdb4
add esp, 4
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
mov byte [esp + 0x10], 0
sub esp, 0xc
push dword [esp + 0x1c]
push esi
push ebx
sub esp, 0xc
call fcn.0045fb60
add esp, 0x24
mov dword [0x4f19c4], eax
test eax, eax
mov edx, str..._srcGame.cpp
setne cl
push 0x5b
call fcn.004665a0
sub esp, 0x14
mov ecx, esp
push 0xe
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.window_created
mov byte [ecx], 0
call fcn.00403610
call fcn.00401370
mov ecx, eax
call fcn.00469c80
sub esp, 0x18
mov ecx, esp
push 0x17
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.setting_window_focus...
mov byte [ecx], 0
call fcn.00403610
call fcn.00401370
mov ecx, eax
call fcn.00469c80
push dword [0x4f19c4]
call dword [sym.imp.USER32.dll_SetFocus]
test eax, eax
jne 0x401c8c
push 0x61
mov edx, str..._srcGame.cpp
mov ecx, str.Failed_to_set_windoww_focus
call fcn.00466630
add esp, 4
sub esp, 0x18
mov ecx, esp
push 0x12
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.updating_window...
mov byte [ecx], 0
call fcn.00403610
call fcn.00401370
mov ecx, eax
call fcn.00469c80
push dword [0x4f19c4]
call dword [sym.imp.USER32.dll_UpdateWindow]
sub esp, 0x18
mov ecx, esp
push 0x11
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.showing_window...
mov byte [ecx], 0
call fcn.00403610
call fcn.00401370
mov ecx, eax
call fcn.00469c80
push 1
push dword [0x4f19c4]
call dword [sym.imp.USER32.dll_ShowWindow]
sub esp, 0xc
mov ecx, edi
push esi
push ebx
call fcn.004026e0
mov ecx, 0x4a8310
mov dword [0x4ae0f0], 0xfa0
mov byte [0x4ae0f4], 1
call fcn.00463f00
mov ebx, dword [0x4f271c]
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], 0x4a8310
push dword [ebx + 4]
push ebx
call fcn.00404820
mov edx, dword [0x4f2720]
mov ecx, 0x15555554
sub ecx, edx
mov esi, eax
cmp ecx, 1
jae 0x401d63
push str.list_T__too_long
call fcn.0046f219
inc edx
sub esp, 0x18
mov dword [0x4f2720], edx
mov ecx, esp
mov dword [ebx + 4], esi
mov eax, dword [esi + 4]
push 9
push str.data_gfx_
mov dword [eax], esi
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
mov byte [ecx], 0
call fcn.00403610
mov eax, dword [0x4d1b34]
test al, 1
jne 0x401dc8
push 0x30
or eax, 1
push 0
push 0x4afe50
mov dword [0x4d1b34], eax
call fcn.00479b40
add esp, 0xc
call fcn.00464ca0
push 0x48cbd0
call fcn.0046fb6c
add esp, 4
mov ecx, 0x4afe50
call fcn.00465410
push ecx
call fcn.00401770
mov ecx, eax
call fcn.0046a670
call fcn.00402b80
call fcn.004697c0
mov eax, dword [0x4d1b00]
test al, 1
jne 0x401e2d
or eax, 1
mov dword [0x4d1b00], eax
push 0x54
push 0
push 0x4d15f0
mov byte [esp + 0x114], 3
call fcn.00479b40
add esp, 0xc
call fcn.0043ee50
push 0x48cc70
call fcn.0046fb6c
add esp, 4
mov byte [esp + 0x108], 0
mov ecx, 0x4d15f0
call fcn.0043f080
mov eax, dword [0x4d1ba4]
test al, 1
jne 0x401e7e
or eax, 1
mov dword [0x4d1ba4], eax
push 0x120
push 0
push 0x4afd28
mov byte [esp + 0x114], 4
call fcn.00479b40
add esp, 0xc
call fcn.00418740
push 0x48cc90
call fcn.0046fb6c
add esp, 4
mov byte [esp + 0x108], 0
sub esp, 0x18
mov ecx, esp
push 4
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.game
mov byte [ecx], 0
call fcn.00403610
mov ecx, 0x4afd28
call fcn.0046ce10
mov ecx, 0x4afd28
call fcn.00418f10
mov eax, dword [0x4afcf8]
test al, 1
jne 0x401efb
or eax, 1
mov dword [0x4afcf8], eax
push 0x230
push 0
push 0x4b0000
mov byte [esp + 0x114], 5
call fcn.00479b40
add esp, 0xc
call fcn.004115f0
push 0x48cd50
call fcn.0046fb6c
add esp, 4
mov byte [esp + 0x108], 0
mov ecx, 0x4b0000
call fcn.004117a0
mov eax, dword [0x4d1b60]
test al, 1
jne 0x401f49
or eax, 1
mov dword [0x4d1b60], eax
push 0x3c
push 0
push 0x4afe80
mov byte [esp + 0x114], 6
call fcn.00479b40
add esp, 0xc
call fcn.00424e40
push 0x48cdf0
call fcn.0046fb6c
add esp, 4
mov byte [esp + 0x108], 0
mov eax, dword [0x4d1af8]
test al, 1
jne 0x401f90
or eax, 1
mov dword [0x4d1af8], eax
push 0x134
push 0
push 0x4afec0
mov byte [esp + 0x114], 7
call fcn.00479b40
add esp, 0xc
call fcn.0042a1d0
push 0x48ce00
call fcn.0046fb6c
add esp, 4
mov byte [esp + 0x108], 0
mov eax, dword [0x4d1644]
test al, 1
jne 0x401fd7
or eax, 1
mov dword [0x4d1644], eax
push 0x218
push 0
push 0x4d1850
mov byte [esp + 0x114], 8
call fcn.00479b40
add esp, 0xc
call fcn.00420fc0
push 0x48cca0
call fcn.0046fb6c
add esp, 4
mov byte [esp + 0x108], 0
mov ecx, 0x4d1850
call fcn.004211d0
sub esp, 0x18
mov ecx, esp
push 8
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.mainmenu
mov byte [ecx], 0
call fcn.00403610
mov ecx, edi
call fcn.0046ac60
cmp dword [esp + 0x58], 0x10
mov byte [edi + 4], 1
jb 0x402021
push dword [esp + 0x44]
call fcn.0046fdb4
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x100]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.0046f27e
mov esp, ebp
pop ebp
ret