Function at 0x402fe0
Capabilities:
Inspect section memory permissions

Disassembly:
mov eax, dword [0x4595e0]
sub esp, 0x100
push ebx
push ebp
xor ebp, ebp
mov ebx, dword [esp + 0x10c]
mov dword [eax + 0x380], ebp
mov ecx, dword [0x4595e0]
push esi
push edi
mov dword [ecx + 0x388], 0xffffff
mov edx, dword [0x4595e0]
push str._nSCRIPTTITLE
push ebx
mov dword [edx + 0x384], ebp
mov eax, dword [0x4595e0]
mov dword [eax + 0x38c], ebp
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x40309d
mov edi, str._nSCRIPTTITLE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x40309d
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
mov edx, dword [0x4595e0]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
add edx, 0x25c
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str._nREGISTRYKEY
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403115
mov edi, str._nREGISTRYKEY
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x403115
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
mov edx, dword [0x4595e0]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
add edx, 0x394
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str._nUSEMOUSEMODE
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403182
mov edi, str._nUSEMOUSEMODE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x403182
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
lea edx, [esp + 0x20]
push str.DirectInput
push edx
call fcn.00451970
add esp, 0x18
test eax, eax
jne 0x403182
mov eax, dword [0x4595e0]
mov dword [eax + 0x354], 2
push str._nUSEKEYBORDMODE
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4031ef
mov edi, str._nUSEKEYBORDMODE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x4031ef
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
lea edx, [esp + 0x20]
push str.DirectInput
push edx
call fcn.00451970
add esp, 0x18
test eax, eax
jne 0x4031ef
mov eax, dword [0x4595e0]
mov dword [eax + 0x358], 0x200
push str._nUSEJOYSTICKMODE
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x40325c
mov edi, str._nUSEJOYSTICKMODE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x40325c
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
lea edx, [esp + 0x20]
push str.DirectInput
push edx
call fcn.00451970
add esp, 0x18
test eax, eax
jne 0x40325c
mov eax, dword [0x4595e0]
mov dword [eax + 0x35c], 0x20000
push str._nUSESOUNDMODE
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4032d4
mov edi, str._nUSESOUNDMODE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x4032d4
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
mov edx, dword [0x4595e0]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
add edx, 0x2c0
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str._nUSEMUSICMODE
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403395
mov edi, str._nUSEMUSICMODE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x403395
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
lea edx, [esp + 0x20]
push 0x454088
push edx
call fcn.00445f80
add esp, 0x18
test eax, eax
je 0x403349
mov eax, dword [0x4595e0]
mov dword [eax + 0x2bc], 2
lea ecx, [esp + 0x10]
push str.CDDA
push ecx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x40336f
mov edx, dword [0x4595e0]
mov dword [edx + 0x2bc], 8
lea eax, [esp + 0x10]
push str.MIDI
push eax
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403395
mov ecx, dword [0x4595e0]
mov dword [ecx + 0x2bc], 0x10
push str._nUSEDRAWMODE
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x40340c
mov edi, str._nUSEDRAWMODE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x40340c
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00402f80
mov eax, dword [0x4595e0]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
add esp, 0x10
lea edx, [eax + 0x300]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str._nGAMEFLAME
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403472
mov edi, str._nGAMEFLAME
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x403472
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
lea edx, [esp + 0x20]
push edx
call fcn.00439310
add esp, 0x14
cmp eax, ebp
jle 0x403468
push eax
jmp 0x40346a
push 0x3c
call fcn.00404710
add esp, 4
push str._nWINDOWWIDTH
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4034ea
mov edi, str._nWINDOWWIDTH
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x4034d3
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00402f80
lea ecx, [esp + 0x20]
push ecx
call fcn.00439310
mov edx, dword [0x4595e0]
add esp, 0x14
mov dword [edx + 0x210], eax
mov eax, dword [0x4595e0]
cmp dword [eax + 0x210], ebp
jne 0x4034ea
mov dword [eax + 0x210], 0x280
push str._nWINDOWHEIGHT
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403562
mov edi, str._nWINDOWHEIGHT
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x40354b
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00402f80
lea ecx, [esp + 0x20]
push ecx
call fcn.00439310
mov edx, dword [0x4595e0]
add esp, 0x14
mov dword [edx + 0x214], eax
mov eax, dword [0x4595e0]
cmp dword [eax + 0x214], ebp
jne 0x403562
mov dword [eax + 0x214], 0x1e0
push str._nWINDOWPOSX
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403678
mov edi, str._nWINDOWPOSX
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x403678
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00402f80
lea ecx, [esp + 0x20]
push str.Default
push ecx
call fcn.00451970
add esp, 0x18
test eax, eax
jne 0x4035d9
mov edx, dword [0x4595e0]
mov dword [edx + 0x220], ebp
jmp 0x403678
lea eax, [esp + 0x10]
push str.Middle
push eax
call fcn.00451970
add esp, 8
test eax, eax
jne 0x40360a
mov ecx, dword [0x4595e0]
mov eax, dword [ecx + 0x130]
mov edi, dword [ecx + 0x210]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
jmp 0x403672
lea ecx, [esp + 0x10]
push str.Right
push ecx
call fcn.00451970
add esp, 8
test eax, eax
jne 0x40363b
mov eax, dword [0x4595e0]
mov edx, dword [eax + 0x130]
mov ecx, dword [eax + 0x210]
sub edx, ecx
mov dword [eax + 0x220], edx
jmp 0x403678
lea eax, [esp + 0x10]
push str.Left
push eax
call fcn.00451970
add esp, 8
test eax, eax
jne 0x40365f
mov ecx, dword [0x4595e0]
mov dword [ecx + 0x220], ebp
jmp 0x403678
lea edx, [esp + 0x10]
push edx
call fcn.00439310
mov ecx, dword [0x4595e0]
add esp, 4
mov dword [ecx + 0x220], eax
push str._nWINDOWPOSY
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403793
mov edi, str._nWINDOWPOSY
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebp
jbe 0x403793
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00402f80
lea eax, [esp + 0x20]
push str.Default
push eax
call fcn.00451970
add esp, 0x18
test eax, eax
jne 0x4036ef
mov ecx, dword [0x4595e0]
mov dword [ecx + 0x224], ebp
jmp 0x403793
lea edx, [esp + 0x10]
push str.Middle
push edx
call fcn.00451970
add esp, 8
test eax, eax
jne 0x403726
mov ecx, dword [0x4595e0]
mov eax, dword [ecx + 0x134]
mov edi, dword [ecx + 0x214]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 0x224], eax
jmp 0x403793
lea eax, [esp + 0x10]
push str.Bottom
push eax
call fcn.00451970
add esp, 8
test eax, eax
jne 0x403757
mov eax, dword [0x4595e0]
mov ecx, dword [eax + 0x134]
mov edx, dword [eax + 0x214]
sub ecx, edx
mov dword [eax + 0x224], ecx
jmp 0x403793
lea edx, [esp + 0x10]
push 0x454474
push edx
call fcn.00451970
add esp, 8
test eax, eax
jne 0x40377a
mov eax, dword [0x4595e0]
mov dword [eax + 0x224], ebp
jmp 0x403793
lea ecx, [esp + 0x10]
push ecx
call fcn.00439310
mov edx, dword [0x4595e0]
add esp, 4
mov dword [edx + 0x224], eax
mov eax, dword [esp + 0x114]
push str._nWINSTYLE
push eax
call fcn.00445f80
mov esi, eax
add esp, 8
test esi, esi
mov ebx, 0x10000000
mov ebp, 0x80000000
je 0x403904
mov edi, str._nWINSTYLE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
test eax, eax
jbe 0x403904
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
lea edx, [esp + 0x20]
push str.DEFAULT
push edx
call fcn.00451970
add esp, 0x18
test eax, eax
jne 0x40381e
mov eax, dword [0x4595e0]
mov dword [eax + 0x240], 0x90ca0000
jmp 0x403904
mov ecx, dword [0x4595e0]
lea edx, [esp + 0x10]
push str.WS_POPUP
push edx
mov dword [ecx + 0x240], ebx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x40384b
mov eax, dword [0x4595e0]
or dword [eax + 0x240], ebp
lea eax, [esp + 0x10]
push str.WS_CAPTION
push eax
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403870
mov eax, dword [0x4595e0]
or dword [eax + 0x240], 0xc00000
lea ecx, [esp + 0x10]
push str.WS_BORDER
push ecx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403895
mov eax, dword [0x4595e0]
or dword [eax + 0x240], 0x800000
lea edx, [esp + 0x10]
push str.WS_MINIMIZEBOX
push edx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x4038ba
mov eax, dword [0x4595e0]
or dword [eax + 0x240], 0x20000
lea eax, [esp + 0x10]
push str.WS_MINIMIZE
push eax
call fcn.00445f80
add esp, 8
test eax, eax
je 0x4038df
mov eax, dword [0x4595e0]
or dword [eax + 0x240], 0x20000000
lea ecx, [esp + 0x10]
push str.WS_MINIMIZE
push ecx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403904
mov eax, dword [0x4595e0]
or dword [eax + 0x240], 0x80000
mov edx, dword [esp + 0x114]
push str._nFULLSTYLE
push edx
call fcn.00445f80
mov esi, eax
add esp, 8
test esi, esi
je 0x4039ab
mov edi, str._nFULLSTYLE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
test eax, eax
jbe 0x4039ab
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00402f80
lea ecx, [esp + 0x20]
push str.DEFAULT
push ecx
call fcn.00451970
add esp, 0x18
test eax, eax
jne 0x40397f
mov edx, dword [0x4595e0]
mov dword [edx + 0x244], 0x90ca0000
jmp 0x4039ab
mov eax, dword [0x4595e0]
lea ecx, [esp + 0x10]
push str.WS_POPUP
push ecx
mov dword [eax + 0x244], ebx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x4039ab
mov eax, dword [0x4595e0]
or dword [eax + 0x244], ebp
mov edx, dword [esp + 0x114]
push str._nWINDOWMENU
push edx
call fcn.00445f80
mov esi, eax
add esp, 8
test esi, esi
je 0x403a42
mov edi, str._nWINDOWMENU
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
xor ebx, ebx
add esp, 8
cmp eax, ebx
jbe 0x403a44
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00402f80
lea ecx, [esp + 0x20]
push str.DEFAULT
push ecx
call fcn.00451970
add esp, 0x18
test eax, eax
jne 0x403a20
mov edx, dword [0x4595e0]
mov dword [edx + 0x34c], ebx
jmp 0x403a2b
mov eax, dword [0x4595e0]
mov dword [eax + 0x34c], ebx
mov ecx, dword [0x4595e0]
mov edx, dword [ecx + 0x34c]
push edx
call fcn.00401cb0
add esp, 4
jmp 0x403a44
xor ebx, ebx
mov ebp, dword [esp + 0x114]
push str._nDRAWFLAG
push ebp
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403b51
mov edi, str._nDRAWFLAG
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebx
jbe 0x403b51
mov ecx, dword [0x4595e0]
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
mov dword [ecx + 0x340], ebx
call fcn.00402f80
lea eax, [esp + 0x20]
push str.WINDOW
push eax
call fcn.00445f80
add esp, 0x18
test eax, eax
je 0x403ac9
mov eax, dword [0x4595e0]
or dword [eax + 0x340], 1
lea ecx, [esp + 0x10]
push str.FULLSCREEN
push ecx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403aeb
mov eax, dword [0x4595e0]
or dword [eax + 0x340], 2
lea edx, [esp + 0x10]
push str.VIDEOMEMORY
push edx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403b0d
mov eax, dword [0x4595e0]
or dword [eax + 0x340], 4
lea eax, [esp + 0x10]
push str.FLIP
push eax
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403b2f
mov eax, dword [0x4595e0]
or dword [eax + 0x340], 8
lea ecx, [esp + 0x10]
push str.SYSTEMCURSOL
push ecx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403b51
mov eax, dword [0x4595e0]
or dword [eax + 0x340], 0x10
push str._nCONFIGFLAG
push ebp
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403c33
mov edi, str._nCONFIGFLAG
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebx
jbe 0x403c33
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00402f80
lea eax, [esp + 0x20]
push str.CDROMCHECK
push eax
call fcn.00445f80
add esp, 0x18
test eax, eax
je 0x403bc3
mov eax, dword [0x4595e0]
or dword [eax + 0x2ac], 1
lea ecx, [esp + 0x10]
push str.OTHERRUN
push ecx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403be9
mov edx, dword [0x4595e0]
mov dword [edx + 0x19c], 1
lea eax, [esp + 0x10]
push str.INITRUN
push eax
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403c0e
mov eax, dword [0x4595e0]
or dword [eax + 0x2ac], 0x40000000
lea ecx, [esp + 0x10]
push str.UNACTIVERUN
push ecx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403c33
mov eax, dword [0x4595e0]
or dword [eax + 0x2ac], 0x20000000
push str._nMENUFLAG
push ebp
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403d3d
mov edi, str._nMENUFLAG
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebx
jbe 0x403d3d
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00402f80
lea eax, [esp + 0x20]
push str.SETNAME
push eax
call fcn.00445f80
add esp, 0x18
test eax, eax
je 0x403ca5
mov eax, dword [0x4595e0]
or dword [eax + 0x2ac], 0x10
lea ecx, [esp + 0x10]
push str.SETAUTO
push ecx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403cc7
mov eax, dword [0x4595e0]
or dword [eax + 0x2ac], 0x20
lea edx, [esp + 0x10]
push str.CURSOLCHANGEOFF
push edx
call fcn.00445f80
add esp, 8
test eax, eax
je 0x403cf1
mov eax, dword [0x4595e0]
mov ecx, dword [eax + 0x2ac]
or ch, 1
mov dword [eax + 0x2ac], ecx
lea eax, [esp + 0x10]
push str.READEDSKIP
push eax
call fcn.00445f80
add esp, 8
test eax, eax
jne 0x403d1b
mov eax, dword [0x4595e0]
mov ecx, dword [eax + 0x2ac]
or cl, 0x80
mov dword [eax + 0x2ac], ecx
lea ecx, [esp + 0x10]
push str.VOICESKIP
push ecx
call fcn.00445f80
add esp, 8
test eax, eax
jne 0x403d3d
mov eax, dword [0x4595e0]
or dword [eax + 0x2ac], 0x40
push str._nDEFAULT_SYSTEMCURSOL
push ebp
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403e30
mov edi, str._nDEFAULT_SYSTEMCURSOL
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebx
jbe 0x403e30
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00402f80
lea eax, [esp + 0x20]
push 0x454324
push eax
call fcn.00451970
add esp, 0x18
test eax, eax
jne 0x403db1
mov ecx, dword [0x4595e0]
mov dword [ecx + 0x374], ebx
jmp 0x403e30
lea edx, [esp + 0x10]
push str.FALSE
push edx
call fcn.00451970
add esp, 8
test eax, eax
jne 0x403dd4
mov eax, dword [0x4595e0]
mov dword [eax + 0x374], ebx
jmp 0x403e30
lea ecx, [esp + 0x10]
push 0x454318
push ecx
call fcn.00451970
add esp, 8
test eax, eax
jne 0x403dfc
mov edx, dword [0x4595e0]
mov dword [edx + 0x374], 1
jmp 0x403e30
lea eax, [esp + 0x10]
push str.TRUE
push eax
call fcn.00451970
add esp, 8
test eax, eax
jne 0x403e24
mov ecx, dword [0x4595e0]
mov dword [ecx + 0x374], 1
jmp 0x403e30
mov edx, dword [0x4595e0]
mov dword [edx + 0x374], ebx
push str._nDEFAULT_WINDOWMODE
push ebp
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403eca
mov edi, str._nDEFAULT_WINDOWMODE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebx
jbe 0x403eca
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00402f80
lea ecx, [esp + 0x20]
push str.WINDOW
push ecx
call fcn.00451970
add esp, 0x18
test eax, eax
je 0x403eba
lea eax, [esp + 0x10]
push str.FULLSCREEN
push eax
call fcn.00451970
add esp, 8
test eax, eax
jne 0x403eba
mov ecx, dword [0x4595e0]
mov dword [ecx + 0x370], 2
jmp 0x403eca
mov edx, dword [0x4595e0]
mov dword [edx + 0x370], 1
push str._nDEFAULT_USEBITCOUNT
push ebp
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebx
je case.0x403f73.8
mov edi, str._nDEFAULT_USEBITCOUNT
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebx
jbe case.0x403f73.8
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00402f80
lea ecx, [esp + 0x20]
push str.DEFAULT
push ecx
call fcn.00451970
add esp, 0x18
test eax, eax
jne 0x403f3e
mov edx, dword [0x4595e0]
mov dword [edx + 0x344], 0x18
jmp case.0x403f73.8
lea eax, [esp + 0x10]
push eax
call fcn.00439310
mov ecx, dword [0x4595e0]
add esp, 4
mov dword [ecx + 0x344], eax
mov ecx, dword [0x4595e0]
mov eax, dword [ecx + 0x344]
add eax, 0xfffffff8
cmp eax, 0x18
ja case.0x403f73.9
xor edx, edx
mov dl, byte [eax + 0x40424c]
jmp dword [edx*4 + 0x404244]
mov dword [ecx + 0x344], 0x18
push str._nSTARTSCRIPT
push ebp
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403ffc
mov edi, str._nSTARTSCRIPT
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebx
jbe 0x403ffc
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00402f80
mov ecx, dword [0x4595e0]
lea edi, [esp + 0x20]
xor eax, eax
add esp, 0x10
lea edx, [ecx + 0x4d4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str._nSAVEFILEKEY
push ebp
call fcn.00445f80
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x40406e
mov edi, str._nSAVEFILEKEY
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
cmp eax, ebx
jbe 0x40406e
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
mov edx, dword [0x4595e0]
mov eax, dword [esp + 0x20]
add esp, 0x10
add edx, 0x29c
mov dword [edx], eax
mov ecx, dword [esp + 0x14]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x18]
mov dword [edx + 8], eax
mov ecx, dword [esp + 0x1c]
mov dword [edx + 0xc], ecx
mov ebp, dword [esp + 0x114]
xor ebx, ebx
push str._nCDROMCHECKFILE
push ebp
call fcn.00445f80
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4040fe
mov edi, str._nCDROMCHECKFILE
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ebp, ecx
push ebp
call fcn.00439da0
add esp, 8
test eax, eax
jbe 0x4040ef
push eax
push ebp
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00402f80
mov eax, dword [0x4595e0]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
add esp, 0x10
lea edx, [ebx + eax + 0x514]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add ebx, 0x40
cmp ebx, 0xc0
jl 0x404077
mov ebx, dword [esp + 0x114]
push str._nDATADIRECTORY
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
test esi, esi
je 0x40417d
mov edi, str._nDATADIRECTORY
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
add esp, 8
test eax, eax
jbe 0x40417d
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
mov edx, dword [0x4595e0]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
add edx, 0x614
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str._nDATAROMPATH
push ebx
call fcn.00445f80
mov esi, eax
add esp, 8
test esi, esi
je 0x404239
mov edi, str._nDATAROMPATH
or ecx, 0xffffffff
xor eax, eax
push 0x454578
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.00439da0
mov edi, eax
add esp, 8
test edi, edi
jbe 0x404239
push edi
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
lea edx, [esp + 0x20]
push edx
call fcn.00439590
add esp, 0x14
test eax, eax
jbe 0x4041f8
cmp eax, 2
ja 0x4041f8
mov eax, dword [0x4595e0]
pop edi
pop esi
pop ebp
mov byte [eax + 0x5d4], 0
pop ebx
add esp, 0x100
ret
push edi
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00402f80
mov edx, dword [0x4595e0]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
add edx, 0x5d4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret