Function at 0x4030b0
Capabilities:
Inspect section memory permissions

Disassembly:
mov eax, dword [0x45a610]
sub esp, 0x100
push ebx
push ebp
xor ebp, ebp
mov ebx, dword [esp + 0x10c]
mov dword [eax + 0x46c], ebp
mov ecx, dword [0x45a610]
push esi
push edi
mov dword [ecx + 0x474], 0xffffff
mov edx, dword [0x45a610]
push str._nSCRIPTTITLE
push ebx
mov dword [edx + 0x470], ebp
mov eax, dword [0x45a610]
mov dword [eax + 0x478], ebp
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x40316d
mov edi, str._nSCRIPTTITLE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x40316d
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
mov edx, dword [0x45a610]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
add edx, 0x308
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.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4031e5
mov edi, str._nREGISTRYKEY
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x4031e5
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
mov edx, dword [0x45a610]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
add edx, 0x480
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.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403252
mov edi, str._nUSEMOUSEMODE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x403252
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
lea edx, [esp + 0x20]
push str.DirectInput
push edx
call fcn.00452210
add esp, 0x18
test eax, eax
jne 0x403252
mov eax, dword [0x45a610]
mov dword [eax + 0x440], 2
push str._nUSEKEYBORDMODE
push ebx
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4032bf
mov edi, str._nUSEKEYBORDMODE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x4032bf
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
lea edx, [esp + 0x20]
push str.DirectInput
push edx
call fcn.00452210
add esp, 0x18
test eax, eax
jne 0x4032bf
mov eax, dword [0x45a610]
mov dword [eax + 0x444], 0x200
push str._nUSEJOYSTICKMODE
push ebx
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x40332c
mov edi, str._nUSEJOYSTICKMODE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x40332c
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
lea edx, [esp + 0x20]
push str.DirectInput
push edx
call fcn.00452210
add esp, 0x18
test eax, eax
jne 0x40332c
mov eax, dword [0x45a610]
mov dword [eax + 0x448], 0x20000
push str._nUSESOUNDMODE
push ebx
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4033a4
mov edi, str._nUSESOUNDMODE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x4033a4
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
mov edx, dword [0x45a610]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
add edx, 0x3ac
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.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403465
mov edi, str._nUSEMUSICMODE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x403465
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
lea edx, [esp + 0x20]
push 0x455088
push edx
call fcn.00446820
add esp, 0x18
test eax, eax
je 0x403419
mov eax, dword [0x45a610]
mov dword [eax + 0x3a8], 2
lea ecx, [esp + 0x10]
push str.CDDA
push ecx
call fcn.00446820
add esp, 8
test eax, eax
je 0x40343f
mov edx, dword [0x45a610]
mov dword [edx + 0x3a8], 8
lea eax, [esp + 0x10]
push str.MIDI
push eax
call fcn.00446820
add esp, 8
test eax, eax
je 0x403465
mov ecx, dword [0x45a610]
mov dword [ecx + 0x3a8], 0x10
push str._nUSEDRAWMODE
push ebx
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4034dc
mov edi, str._nUSEDRAWMODE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x4034dc
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00403050
mov eax, dword [0x45a610]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
add esp, 0x10
lea edx, [eax + 0x3ec]
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.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403542
mov edi, str._nGAMEFLAME
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x403542
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
lea edx, [esp + 0x20]
push edx
call fcn.00439bc0
add esp, 0x14
cmp eax, ebp
jle 0x403538
push eax
jmp 0x40353a
push 0x3c
call fcn.004047e0
add esp, 4
push str._nWINDOWWIDTH
push ebx
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4035ba
mov edi, str._nWINDOWWIDTH
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x4035a3
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00403050
lea ecx, [esp + 0x20]
push ecx
call fcn.00439bc0
mov edx, dword [0x45a610]
add esp, 0x14
mov dword [edx + 0x2bc], eax
mov eax, dword [0x45a610]
cmp dword [eax + 0x2bc], ebp
jne 0x4035ba
mov dword [eax + 0x2bc], 0x280
push str._nWINDOWHEIGHT
push ebx
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403632
mov edi, str._nWINDOWHEIGHT
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x40361b
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00403050
lea ecx, [esp + 0x20]
push ecx
call fcn.00439bc0
mov edx, dword [0x45a610]
add esp, 0x14
mov dword [edx + 0x2c0], eax
mov eax, dword [0x45a610]
cmp dword [eax + 0x2c0], ebp
jne 0x403632
mov dword [eax + 0x2c0], 0x1e0
push str._nWINDOWPOSX
push ebx
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403748
mov edi, str._nWINDOWPOSX
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x403748
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00403050
lea ecx, [esp + 0x20]
push str.Default
push ecx
call fcn.00452210
add esp, 0x18
test eax, eax
jne 0x4036a9
mov edx, dword [0x45a610]
mov dword [edx + 0x2cc], ebp
jmp 0x403748
lea eax, [esp + 0x10]
push str.Middle
push eax
call fcn.00452210
add esp, 8
test eax, eax
jne 0x4036da
mov ecx, dword [0x45a610]
mov eax, dword [ecx + 0x130]
mov edi, dword [ecx + 0x2bc]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
jmp 0x403742
lea ecx, [esp + 0x10]
push str.Right
push ecx
call fcn.00452210
add esp, 8
test eax, eax
jne 0x40370b
mov eax, dword [0x45a610]
mov edx, dword [eax + 0x130]
mov ecx, dword [eax + 0x2bc]
sub edx, ecx
mov dword [eax + 0x2cc], edx
jmp 0x403748
lea eax, [esp + 0x10]
push str.Left
push eax
call fcn.00452210
add esp, 8
test eax, eax
jne 0x40372f
mov ecx, dword [0x45a610]
mov dword [ecx + 0x2cc], ebp
jmp 0x403748
lea edx, [esp + 0x10]
push edx
call fcn.00439bc0
mov ecx, dword [0x45a610]
add esp, 4
mov dword [ecx + 0x2cc], eax
push str._nWINDOWPOSY
push ebx
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x403863
mov edi, str._nWINDOWPOSY
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebp
jbe 0x403863
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00403050
lea eax, [esp + 0x20]
push str.Default
push eax
call fcn.00452210
add esp, 0x18
test eax, eax
jne 0x4037bf
mov ecx, dword [0x45a610]
mov dword [ecx + 0x2d0], ebp
jmp 0x403863
lea edx, [esp + 0x10]
push str.Middle
push edx
call fcn.00452210
add esp, 8
test eax, eax
jne 0x4037f6
mov ecx, dword [0x45a610]
mov eax, dword [ecx + 0x134]
mov edi, dword [ecx + 0x2c0]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 0x2d0], eax
jmp 0x403863
lea eax, [esp + 0x10]
push str.Bottom
push eax
call fcn.00452210
add esp, 8
test eax, eax
jne 0x403827
mov eax, dword [0x45a610]
mov ecx, dword [eax + 0x134]
mov edx, dword [eax + 0x2c0]
sub ecx, edx
mov dword [eax + 0x2d0], ecx
jmp 0x403863
lea edx, [esp + 0x10]
push 0x45547c
push edx
call fcn.00452210
add esp, 8
test eax, eax
jne 0x40384a
mov eax, dword [0x45a610]
mov dword [eax + 0x2d0], ebp
jmp 0x403863
lea ecx, [esp + 0x10]
push ecx
call fcn.00439bc0
mov edx, dword [0x45a610]
add esp, 4
mov dword [edx + 0x2d0], eax
mov eax, dword [esp + 0x114]
push str._nWINSTYLE
push eax
call fcn.00446820
mov esi, eax
add esp, 8
test esi, esi
mov ebx, 0x10000000
mov ebp, 0x80000000
je 0x4039d4
mov edi, str._nWINSTYLE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
test eax, eax
jbe 0x4039d4
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
lea edx, [esp + 0x20]
push str.DEFAULT
push edx
call fcn.00452210
add esp, 0x18
test eax, eax
jne 0x4038ee
mov eax, dword [0x45a610]
mov dword [eax + 0x2ec], 0x90ca0000
jmp 0x4039d4
mov ecx, dword [0x45a610]
lea edx, [esp + 0x10]
push str.WS_POPUP
push edx
mov dword [ecx + 0x2ec], ebx
call fcn.00446820
add esp, 8
test eax, eax
je 0x40391b
mov eax, dword [0x45a610]
or dword [eax + 0x2ec], ebp
lea eax, [esp + 0x10]
push str.WS_CAPTION
push eax
call fcn.00446820
add esp, 8
test eax, eax
je 0x403940
mov eax, dword [0x45a610]
or dword [eax + 0x2ec], 0xc00000
lea ecx, [esp + 0x10]
push str.WS_BORDER
push ecx
call fcn.00446820
add esp, 8
test eax, eax
je 0x403965
mov eax, dword [0x45a610]
or dword [eax + 0x2ec], 0x800000
lea edx, [esp + 0x10]
push str.WS_MINIMIZEBOX
push edx
call fcn.00446820
add esp, 8
test eax, eax
je 0x40398a
mov eax, dword [0x45a610]
or dword [eax + 0x2ec], 0x20000
lea eax, [esp + 0x10]
push str.WS_MINIMIZE
push eax
call fcn.00446820
add esp, 8
test eax, eax
je 0x4039af
mov eax, dword [0x45a610]
or dword [eax + 0x2ec], 0x20000000
lea ecx, [esp + 0x10]
push str.WS_MINIMIZE
push ecx
call fcn.00446820
add esp, 8
test eax, eax
je 0x4039d4
mov eax, dword [0x45a610]
or dword [eax + 0x2ec], 0x80000
mov edx, dword [esp + 0x114]
push str._nFULLSTYLE
push edx
call fcn.00446820
mov esi, eax
add esp, 8
test esi, esi
je 0x403a7b
mov edi, str._nFULLSTYLE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
test eax, eax
jbe 0x403a7b
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00403050
lea ecx, [esp + 0x20]
push str.DEFAULT
push ecx
call fcn.00452210
add esp, 0x18
test eax, eax
jne 0x403a4f
mov edx, dword [0x45a610]
mov dword [edx + 0x2f0], 0x90ca0000
jmp 0x403a7b
mov eax, dword [0x45a610]
lea ecx, [esp + 0x10]
push str.WS_POPUP
push ecx
mov dword [eax + 0x2f0], ebx
call fcn.00446820
add esp, 8
test eax, eax
je 0x403a7b
mov eax, dword [0x45a610]
or dword [eax + 0x2f0], ebp
mov edx, dword [esp + 0x114]
push str._nWINDOWMENU
push edx
call fcn.00446820
mov esi, eax
add esp, 8
test esi, esi
je 0x403b12
mov edi, str._nWINDOWMENU
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
xor ebx, ebx
add esp, 8
cmp eax, ebx
jbe 0x403b14
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00403050
lea ecx, [esp + 0x20]
push str.DEFAULT
push ecx
call fcn.00452210
add esp, 0x18
test eax, eax
jne 0x403af0
mov edx, dword [0x45a610]
mov dword [edx + 0x438], ebx
jmp 0x403afb
mov eax, dword [0x45a610]
mov dword [eax + 0x438], ebx
mov ecx, dword [0x45a610]
mov edx, dword [ecx + 0x438]
push edx
call fcn.00401d80
add esp, 4
jmp 0x403b14
xor ebx, ebx
mov ebp, dword [esp + 0x114]
push str._nDRAWFLAG
push ebp
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403c21
mov edi, str._nDRAWFLAG
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebx
jbe 0x403c21
mov ecx, dword [0x45a610]
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
mov dword [ecx + 0x42c], ebx
call fcn.00403050
lea eax, [esp + 0x20]
push str.WINDOW
push eax
call fcn.00446820
add esp, 0x18
test eax, eax
je 0x403b99
mov eax, dword [0x45a610]
or dword [eax + 0x42c], 1
lea ecx, [esp + 0x10]
push str.FULLSCREEN
push ecx
call fcn.00446820
add esp, 8
test eax, eax
je 0x403bbb
mov eax, dword [0x45a610]
or dword [eax + 0x42c], 2
lea edx, [esp + 0x10]
push str.VIDEOMEMORY
push edx
call fcn.00446820
add esp, 8
test eax, eax
je 0x403bdd
mov eax, dword [0x45a610]
or dword [eax + 0x42c], 4
lea eax, [esp + 0x10]
push str.FLIP
push eax
call fcn.00446820
add esp, 8
test eax, eax
je 0x403bff
mov eax, dword [0x45a610]
or dword [eax + 0x42c], 8
lea ecx, [esp + 0x10]
push str.SYSTEMCURSOL
push ecx
call fcn.00446820
add esp, 8
test eax, eax
je 0x403c21
mov eax, dword [0x45a610]
or dword [eax + 0x42c], 0x10
push str._nCONFIGFLAG
push ebp
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403d03
mov edi, str._nCONFIGFLAG
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebx
jbe 0x403d03
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00403050
lea eax, [esp + 0x20]
push str.CDROMCHECK
push eax
call fcn.00446820
add esp, 0x18
test eax, eax
je 0x403c93
mov eax, dword [0x45a610]
or dword [eax + 0x398], 1
lea ecx, [esp + 0x10]
push str.OTHERRUN
push ecx
call fcn.00446820
add esp, 8
test eax, eax
je 0x403cb9
mov edx, dword [0x45a610]
mov dword [edx + 0x208], 1
lea eax, [esp + 0x10]
push str.INITRUN
push eax
call fcn.00446820
add esp, 8
test eax, eax
je 0x403cde
mov eax, dword [0x45a610]
or dword [eax + 0x398], 0x40000000
lea ecx, [esp + 0x10]
push str.UNACTIVERUN
push ecx
call fcn.00446820
add esp, 8
test eax, eax
je 0x403d03
mov eax, dword [0x45a610]
or dword [eax + 0x398], 0x20000000
push str._nMENUFLAG
push ebp
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403e0d
mov edi, str._nMENUFLAG
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebx
jbe 0x403e0d
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00403050
lea eax, [esp + 0x20]
push str.SETNAME
push eax
call fcn.00446820
add esp, 0x18
test eax, eax
je 0x403d75
mov eax, dword [0x45a610]
or dword [eax + 0x398], 0x10
lea ecx, [esp + 0x10]
push str.SETAUTO
push ecx
call fcn.00446820
add esp, 8
test eax, eax
je 0x403d97
mov eax, dword [0x45a610]
or dword [eax + 0x398], 0x20
lea edx, [esp + 0x10]
push str.CURSOLCHANGEOFF
push edx
call fcn.00446820
add esp, 8
test eax, eax
je 0x403dc1
mov eax, dword [0x45a610]
mov ecx, dword [eax + 0x398]
or ch, 1
mov dword [eax + 0x398], ecx
lea eax, [esp + 0x10]
push str.READEDSKIP
push eax
call fcn.00446820
add esp, 8
test eax, eax
jne 0x403deb
mov eax, dword [0x45a610]
mov ecx, dword [eax + 0x398]
or cl, 0x80
mov dword [eax + 0x398], ecx
lea ecx, [esp + 0x10]
push str.VOICESKIP
push ecx
call fcn.00446820
add esp, 8
test eax, eax
jne 0x403e0d
mov eax, dword [0x45a610]
or dword [eax + 0x398], 0x40
push str._nDEFAULT_SYSTEMCURSOL
push ebp
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403f00
mov edi, str._nDEFAULT_SYSTEMCURSOL
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebx
jbe 0x403f00
push eax
push esi
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00403050
lea eax, [esp + 0x20]
push 0x45532c
push eax
call fcn.00452210
add esp, 0x18
test eax, eax
jne 0x403e81
mov ecx, dword [0x45a610]
mov dword [ecx + 0x460], ebx
jmp 0x403f00
lea edx, [esp + 0x10]
push str.FALSE
push edx
call fcn.00452210
add esp, 8
test eax, eax
jne 0x403ea4
mov eax, dword [0x45a610]
mov dword [eax + 0x460], ebx
jmp 0x403f00
lea ecx, [esp + 0x10]
push 0x455320
push ecx
call fcn.00452210
add esp, 8
test eax, eax
jne 0x403ecc
mov edx, dword [0x45a610]
mov dword [edx + 0x460], 1
jmp 0x403f00
lea eax, [esp + 0x10]
push str.TRUE
push eax
call fcn.00452210
add esp, 8
test eax, eax
jne 0x403ef4
mov ecx, dword [0x45a610]
mov dword [ecx + 0x460], 1
jmp 0x403f00
mov edx, dword [0x45a610]
mov dword [edx + 0x460], ebx
push str._nDEFAULT_WINDOWMODE
push ebp
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403f9a
mov edi, str._nDEFAULT_WINDOWMODE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebx
jbe 0x403f9a
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00403050
lea ecx, [esp + 0x20]
push str.WINDOW
push ecx
call fcn.00452210
add esp, 0x18
test eax, eax
je 0x403f8a
lea eax, [esp + 0x10]
push str.FULLSCREEN
push eax
call fcn.00452210
add esp, 8
test eax, eax
jne 0x403f8a
mov ecx, dword [0x45a610]
mov dword [ecx + 0x45c], 2
jmp 0x403f9a
mov edx, dword [0x45a610]
mov dword [edx + 0x45c], 1
push str._nDEFAULT_USEBITCOUNT
push ebp
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebx
je case.0x404043.8
mov edi, str._nDEFAULT_USEBITCOUNT
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebx
jbe case.0x404043.8
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00403050
lea ecx, [esp + 0x20]
push str.DEFAULT
push ecx
call fcn.00452210
add esp, 0x18
test eax, eax
jne 0x40400e
mov edx, dword [0x45a610]
mov dword [edx + 0x430], 0x18
jmp case.0x404043.8
lea eax, [esp + 0x10]
push eax
call fcn.00439bc0
mov ecx, dword [0x45a610]
add esp, 4
mov dword [ecx + 0x430], eax
mov ecx, dword [0x45a610]
mov eax, dword [ecx + 0x430]
add eax, 0xfffffff8
cmp eax, 0x18
ja case.0x404043.9
xor edx, edx
mov dl, byte [eax + 0x404318]
jmp dword [edx*4 + 0x404310]
mov dword [ecx + 0x430], 0x18
push str._nSTARTSCRIPT
push ebp
call fcn.00446820
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x4040cc
mov edi, str._nSTARTSCRIPT
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebx
jbe 0x4040cc
push eax
push esi
lea eax, [esp + 0x18]
push 0x100
push eax
call fcn.00403050
mov ecx, dword [0x45a610]
lea edi, [esp + 0x20]
xor eax, eax
add esp, 0x10
lea edx, [ecx + 0x5c0]
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.00446820
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x40413e
mov edi, str._nSAVEFILEKEY
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
cmp eax, ebx
jbe 0x40413e
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
mov edx, dword [0x45a610]
mov eax, dword [esp + 0x20]
add esp, 0x10
add edx, 0x388
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]
mov ebx, 0x600
push str._nCDROMCHECKFILE
push ebp
call fcn.00446820
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4041c9
mov edi, str._nCDROMCHECKFILE
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ebp, ecx
push ebp
call fcn.0043a650
add esp, 8
test eax, eax
jbe 0x4041be
push eax
push ebp
lea edx, [esp + 0x18]
push 0x100
push edx
call fcn.00403050
mov eax, dword [0x45a610]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
add esp, 0x10
lea edx, [ebx + eax]
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, 0x6c0
jl 0x40414a
mov ebx, dword [esp + 0x114]
push str._nDATADIRECTORY
push ebx
call fcn.00446820
mov esi, eax
add esp, 8
test esi, esi
je 0x404248
mov edi, str._nDATADIRECTORY
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
add esp, 8
test eax, eax
jbe 0x404248
push eax
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
mov edx, dword [0x45a610]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
add edx, 0x700
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.00446820
mov esi, eax
add esp, 8
test esi, esi
je 0x404304
mov edi, str._nDATAROMPATH
or ecx, 0xffffffff
xor eax, eax
push 0x455580
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
push esi
call fcn.0043a650
mov edi, eax
add esp, 8
test edi, edi
jbe 0x404304
push edi
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
lea edx, [esp + 0x20]
push edx
call fcn.00439e40
add esp, 0x14
test eax, eax
jbe 0x4042c3
cmp eax, 2
ja 0x4042c3
mov eax, dword [0x45a610]
pop edi
pop esi
pop ebp
mov byte [eax + 0x6c0], 0
pop ebx
add esp, 0x100
ret
push edi
push esi
lea ecx, [esp + 0x18]
push 0x100
push ecx
call fcn.00403050
mov edx, dword [0x45a610]
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
add edx, 0x6c0
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