Function at 0x409230
Capabilities:
Get common file path
Hide graphical window

Disassembly:
mov eax, 0x1198
call fcn.00489630
push ebx
mov eax, 0x4b1de8
push ebp
mov ebp, ecx
mov dword [ebp + 0x18], eax
push esi
mov dword [ebp + 0x1c], eax
push edi
mov dword [ebp + 0x20], eax
xor edi, edi
mov dword [ebp + 0x24], eax
mov dword [esp + 0x11a4], edi
mov dword [ebp + 0x28], eax
lea esi, [ebp + 0x58]
mov ebx, 0x15
mov ecx, esi
call fcn.0040b800
add esi, 0x10
dec ebx
jne 0x409265
lea esi, [ebp + 0x1a8]
mov ecx, esi
call fcn.00413f40
lea ecx, [esi + 0x10]
call fcn.0040b790
lea ecx, [esi + 0x20]
call fcn.0040b7b0
mov ebx, 0x4b1de8
mov dword [esi + 0x34], ebx
lea ecx, [ebp + 0xa18]
mov dword [esi + 0x3c], edi
mov dword [esi + 0x40], edi
mov dword [esi + 0x4c], edi
mov dword [esi + 0x50], 0xffffffff
mov dword [esi + 0x38], edi
call fcn.00407650
lea esi, [ebp + 0xa58]
mov ecx, esi
call fcn.004140b0
lea ecx, [esi + 0x10]
call fcn.004140b0
lea ecx, [ebp + 0xaa8]
call fcn.0042b910
lea ecx, [ebp + 0xac8]
call fcn.00444c20
push edi
push edi
lea ecx, [ebp + 0xae0]
call fcn.004418f0
mov dword [ebp + 0x4b10], 0x498364
mov dword [ebp + 0x4b14], edi
mov dword [ebp + 0x4b24], edi
mov dword [ebp + 0x4b18], 0x498378
mov dword [ebp + 0x4b1c], edi
mov dword [ebp + 0x4b20], edi
mov dword [ebp], 0x498340
mov edx, dword [0x5fd280]
cmp edx, edi
je 0x409348
cmp byte [edx], 0
je 0x409348
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x30]
call fcn.00401800
jmp 0x40934c
mov dword [esp + 0x28], ebx
push 0x4a1684
lea eax, [esp + 0x34]
push eax
push 0x4a09b0
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x38]
call fcn.00406e50
mov ecx, eax
call fcn.00406db0
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x409381
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x409392
push eax
call fcn.00488e76
add esp, 4
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea edx, [esp + 0x1a4]
push edx
push 0x1000
call edi
lea eax, [esp + 0x1a4]
push eax
lea ecx, [esp + 0x38]
call fcn.00401840
mov ecx, dword [esp + 0x34]
push 0x4a09b0
push ecx
lea ecx, [esp + 0x28]
call fcn.00406040
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
push edx
push eax
lea ecx, [esp + 0x1c]
call fcn.00406040
mov ecx, dword [esp + 0x14]
push str..cfg
push ecx
lea ecx, [esp + 0x18]
call fcn.00406040
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], ebx
call fcn.004074f0
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x409414
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x409425
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x409436
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x409447
push eax
call fcn.00488e76
add esp, 4
mov esi, dword [esp + 0x11b4]
mov eax, dword [esi]
push str..cfg
push eax
call fcn.0048a7b0
add esp, 8
test eax, eax
je 0x4094eb
lea ecx, [esp + 0x1a4]
push ecx
push 0x1000
call edi
lea edx, [esp + 0x1a4]
push edx
lea ecx, [esp + 0x24]
call fcn.00401840
mov eax, dword [esp + 0x20]
push 0x4a09b0
push eax
lea ecx, [esp + 0x1c]
call fcn.00406040
mov ecx, dword [esi]
mov edx, dword [esp + 0x14]
push ecx
push edx
lea ecx, [esp + 0x18]
call fcn.00406040
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x28]
call fcn.004074f0
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x4094c9
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x4094da
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x4094eb
push eax
call fcn.00488e76
add esp, 4
mov ecx, str.zLocalSaves
test ecx, ecx
je 0x40951a
mov al, byte [str.zLocalSaves]
test al, al
je 0x40951a
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.zLocalSaves
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x40951e
mov dword [esp + 0x18], ebx
mov edx, str.debug
test edx, edx
je 0x409549
mov al, byte [str.debug]
test al, al
je 0x409549
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x30]
call fcn.00401800
jmp 0x40954d
mov dword [esp + 0x28], ebx
xor esi, esi
push esi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x30]
call fcn.00407510
mov ebx, eax
mov eax, dword [esp + 0x28]
neg ebx
sbb bl, bl
inc bl
cmp eax, 0x4b1de8
je 0x40957f
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, 0x4b1de8
je 0x409593
push eax
call fcn.00488e76
add esp, 4
test bl, bl
je 0x4097ae
lea edx, [esp + 0xa0]
push edx
push esi
push esi
push 5
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
jl 0x409743
lea eax, [esp + 0xa0]
push eax
mov ecx, 0x4b1f14
call fcn.00406190
mov ecx, str.Unknown
test ecx, ecx
je 0x4095f7
mov al, byte [str.Unknown]
test al, al
je 0x4095f7
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Unknown
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x4095ff
mov dword [esp + 0x1c], 0x4b1de8
mov edx, str.Title
test edx, edx
je 0x40962a
mov al, byte [str.Title]
test al, al
je 0x40962a
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x30]
call fcn.00401800
jmp 0x409632
mov dword [esp + 0x28], 0x4b1de8
mov eax, str.common
test eax, eax
je 0x409664
mov al, byte [str.common]
test al, al
je 0x409664
or ecx, 0xffffffff
xor eax, eax
mov edi, str.common
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.common
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x40966c
mov dword [esp + 0x18], 0x4b1de8
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x34]
call fcn.00407530
mov edx, dword [eax]
push edx
push 0x4a09b0
lea ecx, [esp + 0x1c]
call fcn.00406040
mov eax, dword [esp + 0x14]
push str._Saves_
push eax
lea ecx, [esp + 0x18]
call fcn.00406040
lea ecx, [esp + 0x10]
push ecx
mov ecx, 0x4b1f14
call fcn.00406250
mov eax, dword [esp + 0x10]
cmp eax, 0x4b1de8
je 0x4096d0
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, 0x4b1de8
je 0x4096e4
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x20]
cmp eax, 0x4b1de8
je 0x4096f8
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, 0x4b1de8
je 0x40970c
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x28]
cmp eax, 0x4b1de8
je 0x409720
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x1c]
cmp eax, 0x4b1de8
je 0x409734
push eax
call fcn.00488e76
add esp, 4
mov edx, dword [0x4b1f14]
push edx
call fcn.0048ae76
add esp, 4
mov eax, dword [0x4b1f14]
push str.Logs
push eax
lea ecx, [esp + 0x18]
call fcn.00406040
mov ecx, dword [esp + 0x10]
push ecx
call fcn.0048ae76
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, 0x4b1de8
je 0x409778
push eax
call fcn.00488e76
add esp, 4
mov edx, dword [0x4b1f14]
push str.Screens
push edx
lea ecx, [esp + 0x18]
call fcn.00406040
mov eax, dword [esp + 0x10]
push eax
call fcn.0048ae76
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, 0x4b1de8
je 0x4097ae
push eax
call fcn.00488e76
add esp, 4
mov ecx, str.zLocalLogs
test ecx, ecx
je 0x4097dd
mov al, byte [str.zLocalLogs]
test al, al
je 0x4097dd
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.zLocalLogs
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x4097e5
mov dword [esp + 0x18], 0x4b1de8
mov edx, str.debug
test edx, edx
je 0x409810
mov al, byte [str.debug]
test al, al
je 0x409810
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x409818
mov dword [esp + 0x1c], 0x4b1de8
push esi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x30]
call fcn.00407510
mov edi, eax
mov eax, dword [esp + 0x1c]
cmp eax, 0x4b1de8
je 0x409842
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, 0x4b1de8
je 0x409856
push eax
call fcn.00488e76
add esp, 4
cmp edi, esi
push 0x80c
je 0x409896
call fcn.00488e10
add esp, 4
cmp eax, esi
je 0x409887
push 1
push str.Logs
mov ecx, eax
call fcn.004082c0
mov ebx, dword [esp + 0x11a4]
mov dword [0x4b1dfc], eax
jmp 0x4098fb
mov ebx, dword [esp + 0x11a4]
mov dword [0x4b1dfc], esi
jmp 0x4098fb
call fcn.00488e10
mov edi, eax
add esp, 4
cmp edi, esi
je 0x4098d2
mov edx, dword [0x4b1f14]
push str.Logs
push edx
lea ecx, [esp + 0x18]
call fcn.00406040
mov eax, dword [esp + 0x10]
mov ebx, 1
push ebx
push eax
mov ecx, edi
call fcn.004082c0
mov dword [0x4b1dfc], eax
jmp 0x4098df
mov ebx, dword [esp + 0x11a4]
mov dword [0x4b1dfc], esi
test bl, 1
je 0x4098fb
mov eax, dword [esp + 0x10]
and ebx, 0xfffffffe
cmp eax, 0x4b1de8
je 0x4098fb
push eax
call fcn.00488e76
add esp, 4
mov ecx, dword [0x4b1f14]
mov edx, dword [0x4b1dfc]
push ecx
push str.WindowsUserPath_is__s
push edx
call fcn.00408ae0
push 0x10
call fcn.00488e10
add esp, 0x10
cmp eax, esi
je 0x40992f
mov ecx, eax
call fcn.0045fb50
mov dword [0x5fcdd0], eax
jmp 0x409935
mov dword [0x5fcdd0], esi
push 0x1c0
call fcn.00488e10
add esp, 4
cmp eax, esi
je 0x409959
push str.userdata
mov ecx, eax
call fcn.0045eb50
mov dword [0x5fbdcc], eax
jmp 0x40995f
mov dword [0x5fbdcc], esi
push 1
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x4b1de4], eax
add eax, 0xfffffff6
mov dword [0x4b1de0], eax
xor eax, eax
fld dword [eax + 0x49ecfc]
add eax, 4
cmp eax, 0x400
fmul dword [0x49833c]
fstp dword [eax + 0x49f4f8]
fld dword [eax + 0x49f0f8]
fmul dword [0x49833c]
fstp dword [eax + 0x49f8f8]
jl 0x40997c
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x11bc]
and edx, 0xfff7fffd
mov dword [ebp + 0xc], edx
mov eax, edx
mov edx, dword [ecx + 0x220]
xor edx, eax
and edx, 1
xor edx, eax
and edx, 0xffff34a3
or edx, 0x10080
mov eax, str.zDrawUnitInfo
test eax, eax
mov dword [ebp + 0xc], edx
je 0x409a0d
mov al, byte [str.zDrawUnitInfo]
test al, al
je 0x409a0d
or ecx, 0xffffffff
xor eax, eax
mov edi, str.zDrawUnitInfo
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.zDrawUnitInfo
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x409a15
mov dword [esp + 0x18], 0x4b1de8
mov ecx, str.debug
test ecx, ecx
je 0x409a44
mov al, byte [str.debug]
test al, al
je 0x409a44
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.debug
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x409a4c
mov dword [esp + 0x1c], 0x4b1de8
push 1
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x30]
call fcn.00407510
mov ecx, dword [ebp + 0xc]
and eax, 1
shl eax, 0xc
and ecx, 0xffffefff
or eax, ecx
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x1c]
cmp eax, 0x4b1de8
je 0x409a89
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, 0x4b1de8
je 0x409a9d
push eax
call fcn.00488e76
add esp, 4
mov edx, dword [ebp + 0xc]
and edx, 0xfffddbdf
or edx, 0x100000
mov dword [ebp + 0xc], edx
mov dword [ebp + 0xa78], esi
mov dword [ebp + 0xa7c], esi
mov dword [ebp + 0x34], 0x44200000
mov dword [ebp + 0x38], 0x43f00000
mov dword [ebp + 0xa94], esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0xb08], esi
mov dword [ebp + 0xb04], esi
mov dword [ebp + 0xb0c], esi
mov dword [ebp + 0x2c], esi
mov eax, 0x3f800000
mov dword [ebp + 0x54], eax
mov ecx, dword [0x4b1de4]
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x30], ecx
xor eax, eax
mov dword [ebp + 4], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0x3c], 1
lea edi, [ebp + 0xb10]
mov ecx, 0x1000
rep stosd dword es:[edi], eax
xor edx, edx
lea eax, [ebp + 0xa98]
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x11ac]
mov ecx, ebp
mov dword [ebp + 0xa88], eax
call fcn.00411980
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
cmp eax, esi
jge 0x409b72
mov ecx, dword [0x4b1dfc]
cmp ecx, esi
je 0x40a96d
push eax
push 0x4a15fc
push 0xc
push 0x4a15f8
push ecx
call fcn.00408f90
add esp, 0x14
jmp 0x40a96d
push 4
call fcn.00488e10
mov esi, eax
add esp, 4
test esi, esi
je 0x409bd9
lea ecx, [esp + 0x1a4]
push ecx
push 0x1000
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea edx, [esp + 0x1a4]
push edx
lea ecx, [esp + 0x18]
call fcn.00401840
mov eax, dword [esp + 0x14]
push str.Strings.ini
push eax
lea ecx, [esp + 0x18]
or ebx, 2
call fcn.00406040
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
or ebx, 4
mov dword [esi], 0x4b1de8
call fcn.004074f0
mov dword [0x4b1f18], esi
jmp 0x409be3
mov dword [0x4b1f18], 0
test bl, 4
je 0x409bff
mov eax, dword [esp + 0x10]
and ebx, 0xfffffffb
cmp eax, 0x4b1de8
je 0x409bff
push eax
call fcn.00488e76
add esp, 4
test bl, 2
je 0x409c1b
mov eax, dword [esp + 0x14]
and ebx, 0xfffffffd
cmp eax, 0x4b1de8
je 0x409c1b
push eax
call fcn.00488e76
add esp, 4
mov edx, str.Title
test edx, edx
je 0x409c46
mov al, byte [str.Title]
test al, al
je 0x409c46
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x409c4e
mov dword [esp + 0x18], 0x4b1de8
mov eax, str.common
test eax, eax
je 0x409c80
mov al, byte [str.common]
test al, al
je 0x409c80
or ecx, 0xffffffff
xor eax, eax
mov edi, str.common
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.common
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x409c88
mov dword [esp + 0x1c], 0x4b1de8
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x34]
call fcn.00407530
push eax
lea ecx, [ebp + 0x18]
call fcn.004060c0
mov eax, dword [esp + 0x10]
cmp eax, 0x4b1de8
je 0x409cc2
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x1c]
cmp eax, 0x4b1de8
je 0x409cd6
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, 0x4b1de8
je 0x409cea
push eax
call fcn.00488e76
add esp, 4
push 4
call fcn.00488e10
mov esi, eax
add esp, 4
test esi, esi
je 0x409db7
mov edx, str.RegPath
test edx, edx
je 0x409d29
mov al, byte [str.RegPath]
test al, al
je 0x409d29
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x409d31
mov dword [esp + 0x18], 0x4b1de8
mov eax, str.common
or ebx, 8
test eax, eax
je 0x409d66
mov al, byte [str.common]
test al, al
je 0x409d66
or ecx, 0xffffffff
xor eax, eax
mov edi, str.common
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.common
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x409d6e
mov dword [esp + 0x1c], 0x4b1de8
mov ecx, dword [esp + 0x30]
push ecx
push str.SOFTWARESigma_
lea ecx, [esp + 0x18]
or ebx, 0x10
call fcn.00406040
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x20]
or ebx, 0x20
push edx
lea ecx, [esp + 0x34]
or ebx, 0x40
call fcn.00407530
push eax
mov ecx, esi
call fcn.004415d0
mov dword [0x4b4360], esi
jmp 0x409dc1
mov dword [0x4b4360], 0
test bl, 0x40
je 0x409ddd
mov eax, dword [esp + 0x14]
and ebx, 0xffffffbf
cmp eax, 0x4b1de8
je 0x409ddd
push eax
call fcn.00488e76
add esp, 4
test bl, 0x20
je 0x409df9
mov eax, dword [esp + 0x10]
and ebx, 0xffffffdf
cmp eax, 0x4b1de8
je 0x409df9
push eax
call fcn.00488e76
add esp, 4
test bl, 0x10
je 0x409e15
mov eax, dword [esp + 0x1c]
and ebx, 0xffffffef
cmp eax, 0x4b1de8
je 0x409e15
push eax
call fcn.00488e76
add esp, 4
test bl, 8
je 0x409e2e
mov eax, dword [esp + 0x18]
cmp eax, 0x4b1de8
je 0x409e2e
push eax
call fcn.00488e76
add esp, 4
mov eax, str.zNoSysMenu
test eax, eax
je 0x409e60
mov al, byte [str.zNoSysMenu]
test al, al
je 0x409e60
or ecx, 0xffffffff
xor eax, eax
mov edi, str.zNoSysMenu
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.zNoSysMenu
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x409e68
mov dword [esp + 0x18], 0x4b1de8
mov ecx, str.debug
test ecx, ecx
je 0x409e9c
mov al, byte [str.debug]
test al, al
je 0x409e9c
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.debug
lea ecx, [esp + 0x24]
call fcn.00401800
mov esi, 0x4b1de8
jmp 0x409ea5
mov esi, 0x4b1de8
mov dword [esp + 0x1c], esi
push 0
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x30]
call fcn.00407510
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x409ecf
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x409ee0
push eax
call fcn.00488e76
add esp, 4
mov ecx, str.VSync
test ecx, ecx
je 0x409f0f
mov al, byte [str.VSync]
test al, al
je 0x409f0f
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.VSync
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x409f13
mov dword [esp + 0x18], esi
mov edx, str.graph
test edx, edx
je 0x409f3e
mov al, byte [str.graph]
test al, al
je 0x409f3e
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x409f42
mov dword [esp + 0x1c], esi
push 1
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x30]
call fcn.00407510
mov ebx, dword [esp + 0x11bc]
mov edx, dword [ebx + 0x220]
neg eax
sbb eax, eax
and eax, 2
or edx, eax
mov eax, dword [esp + 0x1c]
cmp eax, esi
mov dword [ebx + 0x220], edx
je 0x409f84
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x409f95
push eax
call fcn.00488e76
add esp, 4
mov edx, str.StartDialogIsFull
test edx, edx
je 0x409fc0
mov al, byte [str.StartDialogIsFull]
test al, al
je 0x409fc0
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x409fc4
mov dword [esp + 0x18], esi
mov eax, str.game
test eax, eax
je 0x409ff6
mov al, byte [str.game]
test al, al
je 0x409ff6
or ecx, 0xffffffff
xor eax, eax
mov edi, str.game
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.game
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x409ffa
mov dword [esp + 0x1c], esi
push 0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x30]
call fcn.00407510
mov edx, dword [ebx + 0x220]
neg eax
sbb eax, eax
and eax, 4
or edx, eax
mov eax, dword [esp + 0x1c]
cmp eax, esi
mov dword [ebx + 0x220], edx
je 0x40a035
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x40a046
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [ebx + 0x224]
mov ecx, dword [0x5fbdcc]
push eax
push str.Device
push 1
call fcn.0045ef30
mov dword [ebx + 0x224], eax
mov eax, str.DefaultScreenX
test eax, eax
je 0x40a097
mov al, byte [str.DefaultScreenX]
test al, al
je 0x40a097
or ecx, 0xffffffff
xor eax, eax
mov edi, str.DefaultScreenX
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.DefaultScreenX
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x40a09b
mov dword [esp + 0x18], esi
mov ecx, str.graph
test ecx, ecx
je 0x40a0ca
mov al, byte [str.graph]
test al, al
je 0x40a0ca
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.graph
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x40a0ce
mov dword [esp + 0x1c], esi
mov edx, dword [ebx + 0x228]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x30]
call fcn.00407510
mov ecx, dword [0x5fbdcc]
push eax
push str.ScreenX
push 1
call fcn.0045ef30
mov dword [ebx + 0x228], eax
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x40a112
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x40a123
push eax
call fcn.00488e76
add esp, 4
mov edx, str.DefaultScreenY
test edx, edx
je 0x40a14e
mov al, byte [str.DefaultScreenY]
test al, al
je 0x40a14e
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x40a152
mov dword [esp + 0x18], esi
mov eax, str.graph
test eax, eax
je 0x40a184
mov al, byte [str.graph]
test al, al
je 0x40a184
or ecx, 0xffffffff
xor eax, eax
mov edi, str.graph
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.graph
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x40a188
mov dword [esp + 0x1c], esi
mov ecx, dword [ebx + 0x22c]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x30]
call fcn.00407510
mov ecx, dword [0x5fbdcc]
push eax
push str.ScreenY
push 1
call fcn.0045ef30
mov dword [ebx + 0x22c], eax
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x40a1cc
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x40a1dd
push eax
call fcn.00488e76
add esp, 4
mov ecx, str.DefaultColorBPP
test ecx, ecx
je 0x40a20c
mov al, byte [str.DefaultColorBPP]
test al, al
je 0x40a20c
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.DefaultColorBPP
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x40a210
mov dword [esp + 0x18], esi
mov edx, str.graph
test edx, edx
je 0x40a23b
mov al, byte [str.graph]
test al, al
je 0x40a23b
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x40a23f
mov dword [esp + 0x1c], esi
mov eax, dword [ebx + 0x230]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x30]
call fcn.00407510
mov ecx, dword [0x5fbdcc]
push eax
push 0x4a154c
push 1
call fcn.0045ef30
mov dword [ebx + 0x230], eax
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x40a283
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x40a294
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [ebx + 0x234]
mov ecx, dword [0x5fbdcc]
push eax
push str.FullScreen
push 1
call fcn.0045ef30
or ecx, 0xffffffff
mov dword [ebx + 0x234], eax
mov edi, dword [ebp + 0x18]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0xe34
rep movsb byte es:[edi], byte [esi]
call fcn.00488e10
mov esi, eax
add esp, 4
test esi, esi
je 0x40a306
push ebx
mov ecx, esi
call fcn.004018b0
mov dword [esi + 0xe30], 0x4b1de8
mov dword [esi], 0x498384
mov dword [0x4d4454], esi
jmp 0x40a310
mov dword [0x4d4454], 0
mov ecx, str.StartDialog
test ecx, ecx
je 0x40a33f
mov al, byte [str.StartDialog]
test al, al
je 0x40a33f
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.StartDialog
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x40a347
mov dword [esp + 0x18], 0x4b1de8
mov edx, str.game
test edx, edx
je 0x40a372
mov al, byte [str.game]
test al, al
je 0x40a372
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x40a37a
mov dword [esp + 0x1c], 0x4b1de8
xor esi, esi
push esi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x30]
call fcn.00407510
mov edi, eax
mov eax, dword [esp + 0x1c]
cmp eax, 0x4b1de8
je 0x40a3a6
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, 0x4b1de8
je 0x40a3ba
push eax
call fcn.00488e76
add esp, 4
cmp edi, esi
je 0x40a3df
mov edx, dword [ebp + 0xa88]
push esi
push 0x4042e0
push esi
push str.START_DIALOG
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
test eax, eax
je 0x40a96d
cmp dword [esp + 0x11b0], esi
jne 0x40a460
mov eax, dword [ebp + 0xa88]
push str.AppIcon
push eax
mov dword [esp + 0x58], esi
call dword [sym.imp.USER32.dll_LoadIconA]
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x30]
and cl, 1
neg cl
push 4
mov dword [esp + 0x50], eax
mov dword [esp + 0x60], edx
sbb ecx, ecx
and ecx, str.AppMenu
mov dword [esp + 0x5c], ecx
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0xa88]
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], 3
mov dword [esp + 0x40], 0x4049b0
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
je 0x40a96d
mov eax, dword [0x4d4454]
test byte [eax + 0x38], 0x80
je 0x40a471
mov dword [esp + 0x10], esi
jmp 0x40a48d
mov ecx, dword [0x5fbdcc]
push esi
push str.WindowPositionX
push 1
call fcn.0045ef30
mov dword [esp + 0x10], eax
mov eax, dword [0x4d4454]
test byte [eax + 0x38], 0x80
je 0x40a497
xor ebx, ebx
jmp 0x40a4b1
mov ecx, dword [0x5fbdcc]
push esi
push str.WindowPositionY
push 1
call fcn.0045ef30
mov ebx, eax
mov eax, dword [0x4d4454]
mov dword [0x4b1f20], ebp
test byte [eax + 0x38], 0x80
mov edi, 0x90000000
jne 0x40a4cd
cmp dword [esp + 0x14], esi
jne 0x40a4cd
mov edi, 0x90ca0000
mov edx, dword [eax + 0x244]
fld dword [eax + 0x248]
mov eax, dword [ebp + 0xa88]
mov esi, dword [ebp + 0x18]
push 0
push eax
push 0
mov dword [esp + 0x20], edx
push 0
call fcn.00488e84
fld dword [esp + 0x24]
push eax
call fcn.00488e84
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x44]
push eax
push ebx
push ecx
push edi
push esi
push edx
push 0x40000
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x11b8]
push ecx
push eax
mov dword [ebp + 0xa8c], eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [ebp + 0xa8c]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [ebp + 0xa88]
push str.AppAccel
push eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov ebx, dword [sym.imp.USER32.dll_ShowCursor]
push 0
mov dword [ebp + 0xa90], eax
call ebx
mov ecx, dword [ebp + 0xa8c]
push ecx
mov ecx, dword [0x4d4454]
call fcn.00435520
test eax, eax
je 0x40a58c
mov eax, dword [esp + 0x24]
cmp eax, 0x4b1de8
je 0x40a976
push eax
call fcn.00488e76
add esp, 4
jmp 0x40a976
mov edx, str.FontSizeY
test edx, edx
je 0x40a5b7
mov al, byte [str.FontSizeY]
test al, al
je 0x40a5b7
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x18]
call fcn.00401800
jmp 0x40a5bf
mov dword [esp + 0x10], 0x4b1de8
mov eax, str.graph
test eax, eax
mov esi, 0x4b1de8
je 0x40a5f6
mov al, byte [str.graph]
test al, al
je 0x40a5f6
or ecx, 0xffffffff
xor eax, eax
mov edi, str.graph
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.graph
lea ecx, [esp + 0x1c]
call fcn.00401800
jmp 0x40a5fa
mov dword [esp + 0x14], esi
mov ecx, str.FontSizeX
test ecx, ecx
je 0x40a629
mov al, byte [str.FontSizeX]
test al, al
je 0x40a629
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.FontSizeX
lea ecx, [esp + 0x28]
call fcn.00401800
jmp 0x40a62d
mov dword [esp + 0x20], esi
mov edx, str.graph
test edx, edx
je 0x40a658
mov al, byte [str.graph]
test al, al
je 0x40a658
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x3c]
call fcn.00401800
jmp 0x40a65c
mov dword [esp + 0x34], esi
mov eax, str.Arial
test eax, eax
je 0x40a68e
mov al, byte [str.Arial]
test al, al
je 0x40a68e
or ecx, 0xffffffff
xor eax, eax
mov edi, str.Arial
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Arial
lea ecx, [esp + 0x30]
call fcn.00401800
jmp 0x40a692
mov dword [esp + 0x28], esi
mov ecx, str.Font
test ecx, ecx
je 0x40a6c1
mov al, byte [str.Font]
test al, al
je 0x40a6c1
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Font
lea ecx, [esp + 0x20]
call fcn.00401800
jmp 0x40a6c5
mov dword [esp + 0x18], esi
mov edx, str.graph
test edx, edx
je 0x40a6f0
mov al, byte [str.graph]
test al, al
je 0x40a6f0
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x24]
call fcn.00401800
jmp 0x40a6f4
mov dword [esp + 0x1c], esi
push 8
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
call fcn.00407510
push eax
push 0
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x34]
call fcn.00407510
push eax
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00407530
mov ecx, dword [0x4d4454]
push eax
call fcn.00402be0
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x40a75a
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x40a76b
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x40a77c
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x28]
cmp eax, esi
je 0x40a78d
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, esi
je 0x40a79e
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x40a7af
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x40a7c0
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x40a7d1
push eax
call fcn.00488e76
add esp, 4
mov edx, dword [ebp + 0xa8c]
push edx
call dword [sym.imp.USER32.dll_SetActiveWindow]
mov eax, dword [ebp + 0xa8c]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, dword [ebp + 0xa8c]
push ecx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, ebp
call fcn.0040fd10
lea ecx, [esp + 0x60]
call fcn.00407650
mov edx, str.objects.res
test edx, edx
je 0x40a833
mov al, byte [str.objects.res]
test al, al
je 0x40a833
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x28]
call fcn.00401800
jmp 0x40a837
mov dword [esp + 0x20], esi
mov eax, str.Resource
test eax, eax
je 0x40a869
mov al, byte [str.Resource]
test al, al
je 0x40a869
or ecx, 0xffffffff
xor eax, eax
mov edi, str.Resource
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Resource
lea ecx, [esp + 0x1c]
call fcn.00401800
jmp 0x40a86d
mov dword [esp + 0x14], esi
mov ecx, str.game
test ecx, ecx
je 0x40a89c
mov al, byte [str.game]
test al, al
je 0x40a89c
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.game
lea ecx, [esp + 0x18]
call fcn.00401800
jmp 0x40a8a0
mov dword [esp + 0x10], esi
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x34]
call fcn.00407530
lea esi, [ebp + 0x28]
push eax
mov ecx, esi
call fcn.004060c0
mov eax, dword [esp + 0x2c]
cmp eax, 0x4b1de8
je 0x40a8dc
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x10]
cmp eax, 0x4b1de8
je 0x40a8f0
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, 0x4b1de8
je 0x40a904
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x20]
cmp eax, 0x4b1de8
je 0x40a918
push eax
call fcn.00488e76
add esp, 4
push 0x41544144
push esi
lea ecx, [esp + 0x68]
call fcn.004078d0
test eax, eax
je 0x40a99d
mov eax, dword [0x4b1dfc]
test eax, eax
je 0x40a94b
push 0
push str.resource_file
push 7
push 0x4a15f8
push eax
call fcn.00408f90
add esp, 0x14
lea ecx, [esp + 0x60]
mov dword [esp + 0x60], 0x498314
call fcn.00407690
lea ecx, [esp + 0x6c]
call fcn.004418b0
mov dword [esp + 0x60], 0x498320
lea ecx, [esp + 0x24]
call fcn.004418b0
mov eax, dword [esp + 0x30]
cmp eax, 0x4b1de8
je 0x40b762
push eax
call fcn.00488e76
add esp, 4
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1198
ret 0x14
push 0x420
call fcn.00488e10
xor esi, esi
add esp, 4
cmp eax, esi
je 0x40a9cc
mov edx, dword [ebp + 0xa8c]
push 1
lea ecx, [esp + 0x64]
push ecx
push edx
mov ecx, eax
call fcn.0041f2e0
mov dword [0x4b2f48], eax
jmp 0x40a9d2
mov dword [0x4b2f48], esi
push 0x68
call fcn.00488e10
add esp, 4
cmp eax, esi
je 0x40a9f3
lea ecx, [esp + 0x60]
push ecx
mov ecx, eax
call fcn.00433fc0
mov dword [0x4b4368], eax
jmp 0x40a9f9
mov dword [0x4b4368], esi
mov edx, str.DebugMode
test edx, edx
je 0x40aa24
mov al, byte [str.DebugMode]
test al, al
je 0x40aa24
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00401800
jmp 0x40aa2c
mov dword [esp + 0x14], 0x4b1de8
mov eax, str.game
test eax, eax
je 0x40aa63
mov al, byte [str.game]
test al, al
je 0x40aa63
or ecx, 0xffffffff
xor eax, eax
mov edi, str.game
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.game
lea ecx, [esp + 0x18]
call fcn.00401800
mov esi, 0x4b1de8
jmp 0x40aa6c
mov esi, 0x4b1de8
mov dword [esp + 0x10], esi
push 0
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x30]
call fcn.00407510
mov ecx, dword [0x4b4368]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x40aa9b
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x40aaac
push eax
call fcn.00488e76
add esp, 4
mov edx, str.DrawFPS
test edx, edx
je 0x40aad7
mov al, byte [str.DrawFPS]
test al, al
je 0x40aad7
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00401800
jmp 0x40aadb
mov dword [esp + 0x14], esi
mov eax, str.game
test eax, eax
je 0x40ab0d
mov al, byte [str.game]
test al, al
je 0x40ab0d
or ecx, 0xffffffff
xor eax, eax
mov edi, str.game
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.game
lea ecx, [esp + 0x18]
call fcn.00401800
jmp 0x40ab11
mov dword [esp + 0x10], esi
push 0
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x30]
call fcn.00407510
mov ecx, dword [ebp + 0xc]
and eax, 1
shl eax, 0x11
and ecx, 0xfffdffff
or eax, ecx
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x40ab4b
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x40ab5c
push eax
call fcn.00488e76
add esp, 4
mov edx, str.DrawPresentation
test edx, edx
je 0x40ab87
mov al, byte [str.DrawPresentation]
test al, al
je 0x40ab87
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00401800
jmp 0x40ab8b
mov dword [esp + 0x14], esi
mov eax, str.game
test eax, eax
je 0x40abbd
mov al, byte [str.game]
test al, al
je 0x40abbd
or ecx, 0xffffffff
xor eax, eax
mov edi, str.game
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.game
lea ecx, [esp + 0x18]
call fcn.00401800
jmp 0x40abc1
mov dword [esp + 0x10], esi
push 1
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x30]
call fcn.00407510
mov ecx, dword [ebp + 0xc]
and eax, 1
shl eax, 0x12
and ecx, 0xfffbffff
or eax, ecx
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x40abfb
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x40ac0c
push eax
call fcn.00488e76
add esp, 4
lea edx, [esp + 0x60]
push edx
mov ecx, ebp
call fcn.004123a0
push 1
call ebx
push 0x44
call fcn.00488e10
add esp, 4
test eax, eax
je 0x40ac4e
mov ecx, dword [ebp + 0xb0c]
mov edx, dword [ebp + 0x38]
push ecx
lea ecx, [ebp + 0xb10]
push ecx
mov ecx, dword [ebp + 0x34]
push edx
push ecx
mov ecx, eax
call fcn.00433400
mov dword [0x4b4364], eax
jmp 0x40ac58
mov dword [0x4b4364], 0
lea ecx, [esp + 0x60]
call fcn.00407690
push 0
call dword [sym.imp.USER32.dll_SetCursor]
push 0x108
call fcn.00488e10
mov esi, eax
add esp, 4
test esi, esi
je 0x40acc4
push 0
push ecx
mov ecx, esp
push 0
call fcn.00405940
mov ecx, dword [0x4d4454]
push 0
call fcn.0040b780
fmul dword [0x4982d4]
push ecx
mov ecx, dword [0x4d4454]
fstp dword [esp]
call fcn.00405950
fmul dword [0x4982d4]
mov edx, dword [0x4b1f34]
push ecx
mov ecx, esi
fstp dword [esp]
push edx
call fcn.0044ec50
jmp 0x40acc6
xor eax, eax
mov ecx, eax
mov dword [0x5fbd58], eax
call fcn.0044ed50
mov eax, 0x4a146c
test eax, eax
je 0x40ad09
mov al, byte [0x4a146c]
test al, al
je 0x40ad09
or ecx, 0xffffffff
xor eax, eax
mov edi, 0x4a146c
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x4a146c
lea ecx, [esp + 0x28]
call fcn.00401800
mov esi, 0x4b1de8
jmp 0x40ad12
mov esi, 0x4b1de8
mov dword [esp + 0x20], esi
mov ecx, str.Left
test ecx, ecx
je 0x40ad41
mov al, byte [str.Left]
test al, al
je 0x40ad41
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Left
lea ecx, [esp + 0x1c]
call fcn.00401800
jmp 0x40ad45
mov dword [esp + 0x14], esi
mov edx, str.control
test edx, edx
je 0x40ad70
mov al, byte [str.control]
test al, al
je 0x40ad70
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x18]
call fcn.00401800
jmp 0x40ad74
mov dword [esp + 0x10], esi
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x34]
call fcn.00407530
mov ecx, dword [eax]
movsx edx, byte [ecx]
mov eax, dword [esp + 0x2c]
cmp eax, esi
mov dword [0x4a2b84], edx
je 0x40adad
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x40adbe
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x40adcf
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x40ade0
push eax
call fcn.00488e76
add esp, 4
mov eax, 0x4a1458
test eax, eax
je 0x40ae12
mov al, byte [0x4a1458]
test al, al
je 0x40ae12
or ecx, 0xffffffff
xor eax, eax
mov edi, 0x4a1458
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x4a1458
lea ecx, [esp + 0x28]
call fcn.00401800
jmp 0x40ae16
mov dword [esp + 0x20], esi
mov ecx, 0x4a1454
test ecx, ecx
je 0x40ae45
mov al, byte [0x4a1454]
test al, al
je 0x40ae45
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x4a1454
lea ecx, [esp + 0x1c]
call fcn.00401800
jmp 0x40ae49
mov dword [esp + 0x14], esi
mov edx, str.control
test edx, edx
je 0x40ae74
mov al, byte [str.control]
test al, al
je 0x40ae74
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x18]
call fcn.00401800
jmp 0x40ae78
mov dword [esp + 0x10], esi
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x34]
call fcn.00407530
mov ecx, dword [eax]
movsx edx, byte [ecx]
mov eax, dword [esp + 0x2c]
cmp eax, esi
mov dword [0x4a2b94], edx
je 0x40aeb1
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x40aec2
push eax
call fcn.00488e76
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x40aed3
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x1198
ret 0x14