Function at 0x4063f0
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4be31b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xed0
push ebx
push ebp
push esi
mov dword [esp + 0x10], ecx
push edi
mov ebp, str.Cgrd.pac
mov ebx, str.Dgrd.pac
mov edi, str.Egrd.pac
mov esi, str.Fgrd.pac
mov edx, str.Ggrd.pac
mov ecx, str.Hgrd.pac
mov eax, str.grd.pac
mov dword [esp + 0x68], str.script__s.txt
mov dword [esp + 0x6c], str.script__s.sct
mov dword [esp + 0x70], str.srp_10.pac
mov dword [esp + 0x74], str.srp_9.pac
mov dword [esp + 0x78], str.srp_8.pac
mov dword [esp + 0x7c], str.srp_7.pac
mov dword [esp + 0x80], str.srp_6.pac
mov dword [esp + 0x84], str.srp_5.pac
mov dword [esp + 0x88], str.srp_4.pac
mov dword [esp + 0x8c], str.srp_3.pac
mov dword [esp + 0x90], str.srp_2.pac
mov dword [esp + 0x94], str.srp.uif
mov dword [esp + 0x98], str.grp__s.bmp
mov dword [esp + 0x9c], str.grp__s.grp
mov dword [esp + 0xa0], str.grd_2.pac
mov dword [esp + 0xa4], str.Agrd.pac
mov dword [esp + 0xa8], str.Bgrd.pac
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], str.chr__s.tga
mov dword [esp + 0xcc], str.chr__s.grp
mov dword [esp + 0xd0], str.grd_2.pac
mov dword [esp + 0xd4], str.Agrd.pac
mov dword [esp + 0xd8], str.Bgrd.pac
mov dword [esp + 0xdc], ebp
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe8], esi
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], str.system__s.tga
mov dword [esp + 0xfc], str.system__s.grp
mov dword [esp + 0x100], str.grd_2.pac
mov dword [esp + 0x104], str.Agrd.pac
mov dword [esp + 0x108], str.Bgrd.pac
mov dword [esp + 0x10c], ebp
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], edi
mov dword [esp + 0x118], esi
mov dword [esp + 0x11c], edx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], str.effect__s.tga
mov dword [esp + 0x12c], str.effect__s.grp
mov dword [esp + 0x130], str.grd_2.pac
mov dword [esp + 0x134], str.Agrd.pac
mov dword [esp + 0x138], str.Bgrd.pac
mov dword [esp + 0x13c], ebp
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], esi
mov dword [esp + 0x14c], edx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
mov dword [esp + 0x158], str.effect__s.tga
mov dword [esp + 0x15c], str.effect__s.grp
mov dword [esp + 0x160], str.grd_2.pac
mov dword [esp + 0x164], str.Agrd.pac
mov dword [esp + 0x168], str.Bgrd.pac
mov dword [esp + 0x16c], ebp
mov dword [esp + 0x170], ebx
mov dword [esp + 0x174], edi
mov dword [esp + 0x178], esi
mov dword [esp + 0x17c], edx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], str.voice__s.wav
mov dword [esp + 0x18c], str.voice__s.ogg
mov dword [esp + 0x190], str.vic_10.pac
mov dword [esp + 0x194], str.vic_9.pac
mov dword [esp + 0x198], str.vic_8.pac
mov dword [esp + 0x19c], str.vic_7.pac
mov dword [esp + 0x1a0], str.vic_6.pac
mov dword [esp + 0x1a4], str.vic_5.pac
mov dword [esp + 0x1a8], str.vic_4.pac
mov dword [esp + 0x1ac], str.vic_3.pac
mov dword [esp + 0x1b0], str.vic_2.pac
mov dword [esp + 0x1b4], str.vic.pac
mov dword [esp + 0x1b8], str.se__s.wav
mov dword [esp + 0x1bc], str.se__s.ogg
mov dword [esp + 0x1c0], str.se_10.pac
mov dword [esp + 0x1c4], str.se_9.pac
mov dword [esp + 0x1c8], str.se_8.pac
mov dword [esp + 0x1cc], str.se_7.pac
mov dword [esp + 0x1d0], str.se_6.pac
mov dword [esp + 0x1d4], str.se_5.pac
mov dword [esp + 0x1d8], str.se_4.pac
mov dword [esp + 0x1dc], str.se_3.pac
mov dword [esp + 0x1e0], str.se_2.pac
mov dword [esp + 0x1e4], str.se.pac
mov dword [esp + 0x1e8], str.sse__s.wav
mov dword [esp + 0x1ec], str.sse__s.ogg
mov dword [esp + 0x1f0], str.sse_10.pac
mov dword [esp + 0x1f4], str.sse_9.pac
mov dword [esp + 0x1f8], str.sse_8.pac
mov dword [esp + 0x1fc], str.sse_7.pac
mov dword [esp + 0x200], str.sse_6.pac
mov dword [esp + 0x204], str.sse_5.pac
mov dword [esp + 0x208], str.sse_4.pac
mov dword [esp + 0x20c], str.sse_3.pac
mov dword [esp + 0x210], str.sse_2.pac
mov dword [esp + 0x214], str.sse.pac
mov dword [esp + 0x218], str.mus__s.wav
mov dword [esp + 0x21c], str.mus__s.snd
mov dword [esp + 0x220], str.mus_10.pac
mov dword [esp + 0x224], str.mus_9.pac
mov dword [esp + 0x228], str.mus_8.pac
mov dword [esp + 0x22c], str.mus_7.pac
mov dword [esp + 0x230], str.mus_6.pac
mov dword [esp + 0x234], str.mus_5.pac
mov dword [esp + 0x238], str.mus_4.pac
mov dword [esp + 0x23c], str.mus_3.pac
mov dword [esp + 0x240], str.mus_2.pac
mov dword [esp + 0x244], str.mus.pac
mov dword [esp + 0x248], 0x4d24a0
mov dword [esp + 0x24c], str.movie__s
mov dword [esp + 0x250], str.mov_10.pac
mov dword [esp + 0x254], str.mov_9.pac
mov dword [esp + 0x258], str.mov_8.pac
mov dword [esp + 0x25c], str.mov_7.pac
mov dword [esp + 0x260], str.mov_6.pac
mov dword [esp + 0x264], str.mov_5.pac
mov dword [esp + 0x268], str.mov_4.pac
mov dword [esp + 0x26c], str.mov_3.pac
mov dword [esp + 0x270], str.mov_2.pac
mov dword [esp + 0x274], str.mov.pac
mov dword [esp + 0x278], str.save__s.bmp
mov dword [esp + 0x27c], str.save__s.grp
mov dword [esp + 0x280], str.grd_2.pac
mov dword [esp + 0x284], str.Agrd.pac
mov dword [esp + 0x288], str.Bgrd.pac
mov dword [esp + 0x28c], ebp
mov dword [esp + 0x290], ebx
mov dword [esp + 0x294], edi
mov dword [esp + 0x298], esi
mov dword [esp + 0x29c], edx
mov dword [esp + 0x2a0], ecx
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x2a8], str._s_s.bmp
mov dword [esp + 0x2ac], str._s_s.grp
mov dword [esp + 0x2b0], str.grd_2.pac
mov dword [esp + 0x2b4], str.Agrd.pac
mov dword [esp + 0x2b8], str.Bgrd.pac
mov dword [esp + 0x2bc], ebp
mov dword [esp + 0x2c0], ebx
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x320], ebx
mov dword [esp + 0x334], eax
mov dword [esp + 0x350], ebx
mov dword [esp + 0x364], eax
mov dword [esp + 0x380], ebx
mov dword [esp + 0x394], eax
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x330], ecx
mov dword [esp + 0x360], ecx
mov dword [esp + 0x390], ecx
xor ebx, ebx
mov eax, 1
lea ecx, [esp + 0x10]
mov dword [esp + 0x2c4], edi
mov dword [esp + 0x2c8], esi
mov dword [esp + 0x2cc], edx
mov dword [esp + 0x2d8], str._s_s
mov dword [esp + 0x2dc], str._s_s
mov dword [esp + 0x2e0], str._ssave10__s
mov dword [esp + 0x2e4], str._ssave09__s
mov dword [esp + 0x2e8], str._ssave08__s
mov dword [esp + 0x2ec], str._ssave07__s
mov dword [esp + 0x2f0], str._ssave06__s
mov dword [esp + 0x2f4], str._ssave05__s
mov dword [esp + 0x2f8], str._ssave04__s
mov dword [esp + 0x2fc], str._ssave03__s
mov dword [esp + 0x300], str._ssave02__s
mov dword [esp + 0x304], str._ssave__s
mov dword [esp + 0x308], str.mask__s.bmp
mov dword [esp + 0x30c], str.mask__s.grp
mov dword [esp + 0x310], str.grd_2.pac
mov dword [esp + 0x314], str.Agrd.pac
mov dword [esp + 0x318], str.Bgrd.pac
mov dword [esp + 0x31c], ebp
mov dword [esp + 0x324], edi
mov dword [esp + 0x328], esi
mov dword [esp + 0x32c], edx
mov dword [esp + 0x338], 0x4d2310
mov dword [esp + 0x33c], str.photo__s.grp
mov dword [esp + 0x340], str.grd_2.pac
mov dword [esp + 0x344], str.Agrd.pac
mov dword [esp + 0x348], str.Bgrd.pac
mov dword [esp + 0x34c], ebp
mov dword [esp + 0x354], edi
mov dword [esp + 0x358], esi
mov dword [esp + 0x35c], edx
mov dword [esp + 0x368], str.save__s.bmp
mov dword [esp + 0x36c], str.save__s.cap
mov dword [esp + 0x370], str.grd_2.pac
mov dword [esp + 0x374], str.Agrd.pac
mov dword [esp + 0x378], str.Bgrd.pac
mov dword [esp + 0x37c], ebp
mov dword [esp + 0x384], edi
mov dword [esp + 0x388], esi
mov dword [esp + 0x38c], edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
call fcn.00407710
mov esi, dword [esp + 0xef0]
mov dword [esp + 0xee8], ebx
cmp esi, ebx
je 0x407020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x407020
mov eax, dword [esp + 0xef4]
xor ebp, ebp
lea eax, [eax + eax*2]
shl eax, 4
mov dword [esp + 0x1c], eax
lea edi, [esp + eax + 0x68]
mov dword [esp + 0x20], edi
mov eax, dword [edi]
push esi
lea ecx, [esp + 0x39c]
push eax
push ecx
call fcn.004b093f
add esp, 0xc
cmp ebp, 0xb
ja case.default.0x406c88
xor edx, edx
mov dl, byte [ebp + 0x40705c]
jmp dword [edx*4 + 0x407054]
lea eax, [esp + 0x398]
push eax
call fcn.00402ec0
add esp, 4
test eax, eax
jne 0x406d61
jmp case.default.0x406c88
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x398]
lea ecx, [eax + 0x4c]
add eax, 0x44
push ecx
push eax
push esi
push edx
lea ecx, [esp + 0x20]
call fcn.00407720
test eax, eax
jne 0x406dbc
inc ebp
add edi, 4
cmp ebp, 0xc
jl 0x406c67
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x54], ebx
je 0x407020
mov eax, dword [esp + 0xef4]
cmp dword [esp + eax*4 + 0x24], ebx
je 0x407020
xor ebp, ebp
cmp eax, 0xa
jne 0x406e0c
mov edi, str.movie
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xae0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0xae0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x9a0]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x406e56
cmp dword [esp + 0x9a0], 0x10
jne 0x406e56
mov ebp, 1
jmp 0x406e56
lea edi, [esp + 0x398]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x14]
repne scasb al, byte es:[edi]
not ecx
lea esi, [edx + 4]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x18], esi
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0xee8], 0xffffffff
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [edx + 0x44], ebx
lea ecx, [esp + 0x10]
mov dword [edx + 0x4c], ebx
mov dword [edx + 0x48], ebx
mov dword [edx + 0x50], ebp
call fcn.0049cb30
mov eax, 1
jmp 0x407036
mov ecx, dword [esp + 0x14]
lea edi, [esp + 0x398]
xor eax, eax
mov dword [esp + 0xee8], 0xffffffff
lea edx, [ecx + 4]
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]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x50], ebp
lea ecx, [esp + 0x10]
call fcn.0049cb30
mov eax, 1
jmp 0x407036
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], 2
lea edi, [esp + eax + 0x70]
mov ecx, dword [edi]
push esi
lea edx, [esp + 0x39c]
push ecx
push edx
call fcn.004b093f
lea eax, [esp + 0x3a4]
push eax
call fcn.00402ec0
mov ebp, eax
add esp, 0x10
cmp ebp, ebx
jne 0x406e5d
mov eax, dword [esp + 0x18]
add edi, 4
inc eax
cmp eax, 0xc
mov dword [esp + 0x18], eax
jl 0x406e1c
jmp 0x406e5d
mov esi, dword [esp + 0xef0]
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x798]
push ecx
mov ecx, edi
call fcn.00405ff0
test eax, eax
je 0x406fc6
mov esi, edi
mov edi, dword [esp + 0x20]
xor ebp, ebp
mov edx, dword [esp + 0xef0]
mov eax, dword [edi]
push edx
lea ecx, [esp + 0x8a0]
push eax
push ecx
call fcn.004b093f
add esp, 0xc
lea edx, [esp + 0x89c]
lea eax, [esi + 0x9c]
lea ecx, [esp + 0x398]
push edx
push eax
lea eax, [esp + 0x7a0]
push eax
push str._s_s__s
push ecx
call fcn.004b093f
add esp, 0x14
cmp ebp, 0xb
ja case.default.0x406ed4
xor edx, edx
mov dl, byte [ebp + 0x407070]
jmp dword [edx*4 + 0x407068]
lea eax, [esp + 0x398]
push eax
call fcn.00402ec0
add esp, 4
test eax, eax
jne 0x406f28
jmp case.default.0x406ed4
mov eax, dword [esp + 0xef0]
lea ecx, [esi + 0x4c]
lea edx, [esi + 0x44]
push ecx
push edx
lea ecx, [esp + 0x3a0]
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00407720
test eax, eax
jne 0x406f7d
inc ebp
add edi, 4
cmp ebp, 0xc
jl 0x406e80
jmp 0x407020
lea edi, [esp + 0x398]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esi + 4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0xee8], 0xffffffff
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [eax + 0x44], ebx
lea ecx, [esp + 0x10]
mov dword [eax + 0x4c], ebx
mov dword [eax + 0x48], ebx
mov dword [eax + 0x50], ebp
call fcn.0049cb30
mov eax, 1
jmp 0x407036
lea edi, [esp + 0x398]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esi + 4]
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]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x50], ebp
lea ecx, [esp + 0x10]
mov dword [esp + 0xee8], 0xffffffff
call fcn.0049cb30
mov eax, 1
jmp 0x407036
cmp ebp, ebx
jne 0x407020
call fcn.00403210
push ebx
push 0x4d2080
push 0x4d22b0
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [esp + 0xef8], ebx
je 0x407020
xor ebp, ebp
mov edx, dword [esp + 0xef4]
push ebx
push edx
push esi
mov ecx, edi
call fcn.004063f0
test eax, eax
jne 0x406fab
inc ebp
cmp ebp, 4
jl 0x406fec
push ebx
push 0x4d2080
push 0x4d2270
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
lea ecx, [esp + 0x10]
mov dword [esp + 0xee8], 0xffffffff
call fcn.0049cb30
xor eax, eax
mov ecx, dword [esp + 0xee0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xedc
ret 0xc