Function at 0x405e30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa08
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x28c8]
test eax, eax
je 0x405e86
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
mov al, byte [0x47b121]
jne 0x405e60
test al, al
jmp 0x405e7c
test al, al
jne 0x405e6d
mov byte [0x47b121], 1
jmp 0x405e86
mov eax, dword [esi + 0x28c8]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x405e86
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov al, byte [esi + 0x28c0]
test al, al
jne 0x405e9d
mov eax, 0x80004005
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.004055f0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
fild qword [esp + 0x10]
fild qword [esi + 0x1e8]
fdivp st(1)
fstp qword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
fld qword [esi + 0x208]
fcomp qword [0x46f2b0]
mov ebp, eax
mov dword [esp + 0x30], ebp
fnstsw ax
and eax, 0x4100
jne 0x4061b9
fld qword [esi + 0x210]
fcomp qword [0x46f2b0]
fnstsw ax
test ah, 0x44
jp 0x405f0d
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esi + 0x210], ecx
mov dword [esi + 0x214], edx
jmp 0x4061b9
fld qword [esp + 0x10]
fsub qword [esi + 0x210]
fcomp qword [esi + 0x208]
fnstsw ax
and eax, 0x4100
jne 0x4061b9
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x210], eax
mov eax, dword [esi + 0x28c]
cmp eax, 1
mov dword [esi + 0x214], ecx
jle 0x4061b9
lea eax, [esi + 0x2548]
lea edx, [esp + 0x110]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x405f5c
mov ecx, esi
call fcn.0040be00
lea edi, [esi + 0x2548]
lea eax, [esp + 0x110]
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x405fa2
test cl, cl
je 0x405f9e
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x405fa2
add eax, 2
add edi, 2
test cl, cl
jne 0x405f7a
xor eax, eax
jmp 0x405fa7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4061b9
mov al, byte [esi + 0x2548]
lea edi, [esi + 0x2548]
test al, al
je 0x4061b9
lea eax, [esp + 0x28]
lea ecx, [esp + 0x110]
push eax
push ecx
mov ecx, esi
call fcn.00402510
lea edx, [esp + 0x3c]
mov ecx, esi
push edx
push edi
mov dword [esp + 0x4c], eax
call fcn.00402510
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x1e0]
xor ebx, ebx
test eax, eax
jle 0x406160
xor edi, edi
mov ecx, dword [esi + 0x1dc]
lea eax, [esp + 0x18]
add ecx, edi
push eax
push ecx
mov ecx, esi
call fcn.00402510
mov ebp, eax
mov eax, dword [esi + 0x1dc]
lea edx, [esp + 0x38]
lea ecx, [edi + eax + 0x104]
push edx
push ecx
mov ecx, esi
call fcn.00402510
mov edx, dword [esp + 0x28]
mov dword [esp + 0x34], eax
cmp edx, dword [esp + 0x18]
jne 0x406075
mov ecx, dword [esp + 0x44]
mov eax, edx
push eax
push ebp
push ecx
call fcn.0046e100
add esp, 0xc
test eax, eax
jne 0x406075
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jne 0x406075
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x44]
push edx
push eax
call fcn.0046e100
add esp, 0xc
test eax, eax
je 0x40608f
mov eax, dword [esi + 0x1e0]
inc ebx
add edi, 0x240
cmp ebx, eax
jl 0x405ffe
jmp 0x40615c
mov edx, dword [esi + 0x1dc]
lea ecx, [ebx + ebx*8]
shl ecx, 6
add ecx, edx
mov eax, dword [ecx + 0x208]
mov dword [esi + 0x70], eax
mov edx, dword [ecx + 0x20c]
mov dword [esi + 0x74], edx
mov eax, dword [ecx + 0x210]
mov dword [esi + 0x78], eax
mov edx, dword [ecx + 0x214]
mov dword [esi + 0x7c], edx
mov eax, dword [ecx + 0x218]
mov dword [esi + 0x80], eax
mov edx, dword [ecx + 0x21c]
mov dword [esi + 0x84], edx
mov eax, dword [ecx + 0x220]
mov dword [esi + 0x58], eax
mov edx, dword [ecx + 0x224]
mov dword [esi + 0x5c], edx
mov eax, dword [ecx + 0x228]
mov dword [esi + 0x60], eax
mov edx, dword [ecx + 0x22c]
mov dword [esi + 0x64], edx
fld qword [ecx + 0x230]
fst qword [esp + 0x10]
fstp qword [esi + 0x68]
fld qword [ecx + 0x238]
fcomp qword [0x46f2b0]
fnstsw ax
test ah, 0x44
jp 0x40613a
fld qword [0x46f290]
fld qword [esi + 0x100]
call fcn.00461ba0
fmul qword [esp + 0x10]
fstp qword [esi + 0x88]
jmp 0x406152
mov eax, dword [ecx + 0x238]
mov dword [esi + 0x88], eax
mov ecx, dword [ecx + 0x23c]
mov dword [esi + 0x8c], ecx
mov dword [esi + 0xa8], 1
mov ebp, dword [esp + 0x30]
cmp ebx, dword [esi + 0x1e0]
jne 0x40616f
mov ecx, esi
call fcn.00401aa0
mov edx, dword [esi + 0x264c]
lea eax, [esi + 0x2548]
push edx
push 1
push eax
mov ecx, esi
call fcn.00404110
mov ecx, esi
call fcn.004055f0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
fild qword [esp + 0x10]
fild qword [esi + 0x1e8]
fdivp st(1)
fstp qword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x1f0], eax
mov dword [esi + 0x1f4], ecx
fld qword [esp + 0x10]
fsub qword [esi + 0x1f0]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esi + 0x1f4], eax
mov eax, dword [esi + 0x220]
inc eax
mov dword [esi + 0x1f0], edx
fstp qword [esi + 0x1f8]
fld qword [esp + 0x10]
fsub qword [esi + 0x200]
mov dword [esi + 0x220], eax
mov ecx, eax
mov dword [esp + 0x18], ecx
fcom qword [0x46f2a0]
fnstsw ax
and eax, 0x4100
jne 0x40622f
fild dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esi + 0x200], edx
mov dword [esi + 0x204], eax
mov dword [esi + 0x220], 0
fdiv st(1)
fstp qword [esi + 0x228]
mov ecx, esi
fstp st(0)
call fcn.00407d50
mov eax, dword [esi + 0x118]
test eax, eax
jne 0x406248
mov dword [esi + 0x118], ebp
mov ecx, dword [esi + 0xa8]
mov eax, dword [esi + 0xac]
cmp ecx, eax
jne 0x4062a9
mov eax, dword [esi + 0x11c]
test eax, eax
jne 0x40626a
mov dword [esi + 0x11c], ebp
jmp 0x4062a9
mov edx, ebp
sub edx, eax
mov eax, dword [esi + 0x120]
cmp edx, eax
jbe 0x4062a9
cmp ecx, 6
je 0x4062a9
mov al, byte [esi + 0x114]
test al, al
jne 0x4062a9
mov al, byte [esi + 0x112]
mov dword [esi + 0xa8], 6
test al, al
sete al
mov byte [esi + 0x112], al
mov byte [esi + 0x113], 1
mov eax, dword [esi + 0x124]
test eax, eax
jne 0x4062b9
mov dword [esi + 0x124], ebp
mov eax, dword [esi + 0x12c]
test eax, eax
jne 0x4062c9
mov dword [esi + 0x12c], ebp
mov eax, dword [esi + 0x138]
test eax, eax
jne 0x4062d9
mov dword [esi + 0x138], ebp
mov al, byte [esi + 0x110]
test al, al
je 0x40630f
cmp dword [esi + 0x158], 0x64
jne 0x40630f
mov edx, dword [esi + 0x118]
mov eax, dword [esi + 0x134]
mov ecx, ebp
sub ecx, edx
cmp ecx, eax
jbe 0x40630f
push 0
mov byte [esi + 0x110], 0
call dword [sym.imp.USER32.dll_ShowCursor]
mov eax, dword [esi + 0x2898]
push eax
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jl 0x4074af
fld qword [esi + 0xe8]
push 0x44fa0000
push 0x3dcccccd
sub esp, 8
lea edi, [esi + 0x237c]
fstp dword [esp + 4]
fld qword [esi + 0xe0]
fmul qword [esi + 0xe8]
fmul dword [0x46f298]
fstp dword [esp]
push edi
call fcn.00410083
mov eax, dword [esi + 0x2898]
push edi
push 3
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [esi + 0x2898]
lea ecx, [esi + 0x23fc]
push ecx
push 1
mov edx, dword [eax]
push eax
call dword [edx + 0x2c]
mov eax, dword [esi + 0x1c4]
test eax, eax
jle 0x406392
mov ecx, esi
call fcn.00409850
jmp 0x4063c4
mov eax, dword [esi + 0x28bc]
push 0xe5e5e5
push eax
mov edx, dword [eax]
call dword [edx + 0x58]
mov eax, dword [esi + 0x2898]
push 0
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x8c]
mov eax, dword [esi + 0x28bc]
push 1
push eax
mov edx, dword [eax]
call dword [edx + 0x54]
mov al, byte [esi + 0x1d5]
mov ebx, 0xa
test al, al
je 0x4063ff
push 1
mov ecx, esi
call fcn.0040ad00
mov eax, dword [esi + 0x1c4]
test eax, eax
jle 0x4063f4
push 0
push 0x3f000000
mov ecx, esi
call fcn.00408f70
push 0
mov ecx, esi
call fcn.0040b070
jmp 0x40646b
fld qword [esi + 0xf0]
fcomp qword [0x46f2b0]
fnstsw ax
and eax, 0x4100
jne 0x40643f
mov eax, dword [esi + 0xa8]
push 1
fld qword [esi + 0xf0]
push ecx
cmp eax, ebx
mov ecx, esi
jne 0x406434
fdiv qword [esi + 0xf8]
fstp dword [esp]
jmp 0x406466
fdiv qword [esi + 0x100]
fstp dword [esp]
jmp 0x406466
mov al, byte [esi + 0x1d6]
test al, al
jne 0x40645d
mov al, byte [esi + 0x1d3]
test al, al
jne 0x40645d
mov al, byte [esi + 0x1d4]
test al, al
je 0x40646b
push 0
push 0x3f000000
mov ecx, esi
call fcn.00408f70
mov eax, dword [esi + 0x28a0]
lea edx, [esp + 0x18]
push edx
push 0x470d10
mov ecx, dword [eax]
push eax
call dword [ecx]
test eax, eax
jl 0x4074de
xor eax, eax
lea edx, [esp + 0x10]
mov dword [esp + 0xc8], eax
push edx
mov dword [esp + 0xd0], eax
lea edx, [esp + 0xa0]
mov dword [esp + 0xd4], eax
push edx
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x20]
lea edx, [esp + 0xd0]
mov dword [esp + 0xd0], 0x1000
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x5c]
test eax, eax
jl 0x4074de
mov eax, dword [esi + 0x148]
mov edi, 0xb
cmp eax, 3
jne 0x4064ef
mov ecx, 4
jmp 0x406532
cmp eax, 2
jne 0x4064fb
mov ecx, 4
jmp 0x406532
cmp eax, 1
jne 0x406507
mov ecx, 3
jmp 0x406532
cmp eax, 8
jne 0x406513
mov ecx, 2
jmp 0x406532
cmp eax, 4
jne 0x40651f
mov ecx, 2
jmp 0x406532
cmp eax, 0x12
jne 0x40652b
mov ecx, 1
jmp 0x406532
xor ecx, ecx
cmp eax, edi
sete cl
mov eax, dword [esi + 0x2658]
cmp eax, 0xffffffff
jne 0x406545
mov edx, dword [esi + 0x14c]
jmp 0x406547
mov edx, eax
mov eax, dword [esi + 0x1c8]
mov dword [esp + 0x1c], edx
imul eax, edx
imul eax, edx
imul eax, ecx
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x1c4]
test eax, eax
jle 0x406a68
mov eax, 9
mov dword [esp + 0xe8], 2
mov dword [esp + 0xa4], eax
mov dword [esp + 0xbc], eax
mov eax, dword [esi + 0x158]
mov dword [esp + 0xec], 0x13
cmp eax, 0x64
mov dword [esp + 0xf0], 0x22
mov dword [esp + 0xf4], 0x32
mov dword [esp + 0xf8], 0x41
mov dword [esp + 0xfc], 0x51
mov dword [esp + 0x100], 0x61
mov dword [esp + 0x104], 0x72
mov dword [esp + 0x108], 0x81
mov dword [esp + 0x10c], 0x91
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], edi
jge 0x406693
lea ecx, [eax + eax*2]
push 0x28
shl ecx, 5
add ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
push 0x70
shr eax, 0x1f
push ebx
push ebx
add edx, eax
push 0x57
push 0
mov ecx, esi
mov edi, edx
call fcn.00407980
add edi, 7
push 0x13
push edi
push 0x24
push ebx
push 0x7f
push 0
mov ecx, esi
call fcn.00407980
push 0x13
push 8
add edi, 0xa
push 0x24
push edi
push 0x7f
push 0x68
mov ecx, esi
call fcn.00407980
lea ecx, [ebp + 0x1f4]
mov dword [esi + 0x12c], ecx
jmp 0x4066c5
mov al, byte [esi + 0x2654]
test al, al
jne 0x4066c5
mov ecx, dword [esi + 0x12c]
mov eax, dword [esi + 0x130]
mov edx, ebp
sub edx, ecx
cmp edx, eax
jae 0x4066c5
push 0x34
push 0x34
push ebx
push ebx
push 0xcc
push 0x2f
mov ecx, esi
call fcn.00407980
mov eax, dword [esi + 0x28ac]
cmp eax, 0x100
jb 0x406861
cmp dword [esi + 0x158], 0x64
jne 0x406861
mov edi, dword [esi + 0x138]
mov edx, dword [esi + 0x13c]
mov ecx, ebp
sub ecx, edi
cmp ecx, edx
jae 0x406861
mov ebx, dword [esi + 0x28b0]
lea ebp, [eax - 0x30]
sub ebx, 0x1e
mov dword [esp + 0x18], ebp
push 0x1e
add ebp, 0xffffffe4
lea edi, [ebx - 0x21]
push 0x47
push edi
push ebp
push 0xe2
push 0xb9
mov ecx, esi
call fcn.00407980
mov eax, dword [esi + 0xb4]
cmp eax, 5
ja case.default.0x406733
jmp dword [eax*4 + 0x4074e8]
push 0x1b
add edi, 0xffffffe5
push 0x47
push edi
push ebp
push 0x12
jmp 0x40679c
push 0x1c
add edi, 0xffffffe4
push 0x47
push edi
push ebp
push 0x2d
jmp 0x40679c
push 0x1d
add edi, 0xffffffe3
push 0x47
push edi
push ebp
push 0x49
jmp 0x40679c
push 0x1e
add edi, 0xffffffe2
push 0x47
push edi
push ebp
push 0x66
jmp 0x40679c
push 0x1e
add edi, 0xffffffe2
push 0x47
push edi
push ebp
push 0x84
jmp 0x40679c
push 0x1f
add edi, 0xffffffe1
push 0x47
push edi
push ebp
push 0xa2
jmp 0x40679c
push 0x21
add edi, 0xffffffdf
push 0x47
push edi
push ebp
push 0xc1
mov ecx, esi
push 0xb9
call fcn.00407980
mov edx, dword [esi + 0xe4]
mov eax, dword [esi + 0xe0]
push 0x40420000
push 0
push edx
push eax
call fcn.00407510
fadd qword [0x46f2a0]
call fcn.00462530
push eax
lea ecx, [esp + 0xdc]
push 0x475e48
push ecx
call fcn.0046120f
mov al, byte [esp + 0xe4]
add esp, 0x1c
xor edx, edx
test al, al
je 0x40680a
mov cl, al
lea edi, [esp + 0xc8]
movsx ecx, cl
mov ebp, dword [esp + ecx*4 - 0x20]
mov cl, byte [edi + 1]
add edx, ebp
inc edi
test cl, cl
jne 0x4067f9
mov edi, dword [esp + 0x18]
sub edi, edx
test al, al
je 0x406844
lea ebp, [esp + 0xc8]
movsx edx, al
push 0x1a
push 0x10
mov eax, dword [esp + edx*4 + 0x30]
push ebx
push edi
push 0
push eax
mov ecx, esi
call fcn.00407980
movsx ecx, byte [ebp]
mov eax, dword [esp + ecx*4 - 0x20]
add edi, eax
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x40681b
push 0x1a
push 0x24
add edi, 3
push ebx
push edi
push 0x1d
push 1
mov ecx, esi
call fcn.00407980
mov ebp, dword [esp + 0x30]
mov ebx, 0xa
cmp dword [esi + 0x158], 0x64
jne 0x406921
mov al, byte [esi + 0x1d2]
test al, al
je 0x406921
fld qword [esi + 0x228]
fadd qword [0x46f2a0]
call fcn.00462530
push eax
lea edx, [esp + 0x114]
push 0x475e48
push edx
call fcn.0046120f
mov al, byte [esp + 0x11c]
add esp, 0xc
xor edx, edx
test al, al
je 0x4068ca
mov cl, al
lea edi, [esp + 0x110]
movsx ecx, cl
mov ebp, dword [esp + ecx*4 - 0x20]
mov cl, byte [edi + 1]
add edx, ebp
inc edi
test cl, cl
jne 0x4068b9
mov edi, dword [esi + 0x28ac]
sub edi, edx
sub edi, 0x2e
test al, al
je 0x406909
lea ebp, [esp + 0x110]
movsx edx, al
push 0x1a
push 0x10
mov eax, dword [esp + edx*4 + 0x30]
push ebx
push edi
push 0
push eax
mov ecx, esi
call fcn.00407980
movsx ecx, byte [ebp]
mov eax, dword [esp + ecx*4 - 0x20]
add edi, eax
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x4068e0
push 0x1a
push 0x24
add edi, 3
push ebx
push edi
push 0x1d
push 0x26
mov ecx, esi
call fcn.00407980
mov ebp, dword [esp + 0x30]
mov edx, dword [0x4750a4]
mov eax, 0x64
and edx, 3
mov dword [0x4750a4], edx
mov ecx, dword [esi + 0x158]
cmp ecx, eax
jge 0x40694e
test edx, edx
jne 0x40694e
mov edx, 1
mov dword [0x4750a4], edx
mov cl, byte [esi + 0x1d2]
test cl, cl
je 0x406968
cmp edx, 1
jne 0x406968
mov edx, 2
mov dword [0x4750a4], edx
cmp dword [esi + 0x158], eax
jne 0x406994
mov edi, dword [esi + 0x138]
mov ecx, dword [esi + 0x13c]
mov eax, ebp
sub eax, edi
cmp eax, ecx
jae 0x406994
cmp edx, 2
jne 0x406994
mov edx, 3
mov dword [0x4750a4], edx
and edx, 3
mov ecx, ebx
cmp edx, 3
mov eax, ebx
ja case.default.0x4069a0
jmp dword [edx*4 + 0x407500]
mov ecx, ebx
mov eax, ebx
mov edx, dword [esi + 0x28ac]
lea edi, [ecx + 0x8f]
cmp edi, edx
jle 0x4069c1
lea ecx, [edx - 0x8f]
test eax, eax
jge 0x406a03
xor eax, eax
jmp 0x406a13
mov edx, dword [esi + 0x28ac]
mov eax, ebx
lea ecx, [edx - 0x99]
test ecx, ecx
jge case.default.0x4069a0
xor ecx, ecx
jmp 0x4069c1
mov edx, dword [esi + 0x28ac]
mov eax, dword [esi + 0x28b0]
sub eax, 0x24
lea ecx, [edx - 0x99]
jmp 0x4069d7
mov eax, dword [esi + 0x28b0]
mov ecx, ebx
sub eax, 0x24
jmp case.default.0x4069a0
mov edi, dword [esi + 0x28b0]
lea ebx, [eax + 0x1a]
cmp ebx, edi
jle 0x406a13
lea eax, [edi - 0x1a]
cmp edx, 0x100
jae 0x406a2c
mov eax, dword [esi + 0x28b0]
lea ecx, [edx - 0x8f]
shr ecx, 1
sub eax, 0x24
push 0x1a
push 0x8f
push eax
push ecx
push 0x92
push 0
mov ecx, esi
call fcn.00407980
mov edx, dword [esi + 0x124]
mov eax, dword [esi + 0x128]
mov ecx, ebp
sub ecx, edx
cmp ecx, eax
jbe 0x406a68
mov dword [esi + 0x124], ebp
mov eax, dword [0x4750a4]
inc eax
mov dword [0x4750a4], eax
mov al, byte [esi + 0x1d3]
test al, al
jne 0x406a7c
mov al, byte [esi + 0x1d4]
test al, al
je 0x406a91
mov cl, byte [esi + 0x1d4]
xor edx, edx
test cl, cl
setne dl
push edx
mov ecx, esi
call fcn.00407530
mov eax, dword [esi + 0x2898]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov al, byte [esi + 0x1d6]
test al, al
je 0x4074af
lea edx, [esi + 0x2548]
lea eax, [esp + 0x218]
push edx
push 0x4757e0
push eax
call fcn.0046120f
add esp, 0xc
xor edi, edi
lea ecx, [esp + 0x218]
push edi
push ecx
push 0x14
push 0x14
mov ecx, esi
call fcn.00408f10
push 0x47afb0
lea edx, [esp + 0x21c]
push 0x4757e0
push edx
call fcn.0046120f
add esp, 0xc
lea eax, [esp + 0x218]
mov ecx, esi
push edi
push eax
push 0x28
push 0x14
call fcn.00408f10
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x3c]
push ecx
mov ecx, dword [esi + 0x38]
push edx
push eax
push ecx
lea edx, [esp + 0x228]
push str.____Coordinate___.2f___.2f
push edx
call fcn.0046120f
add esp, 0x18
lea eax, [esp + 0x218]
mov ecx, esi
push edi
push eax
push 0x50
push 0x14
call fcn.00408f10
mov ecx, dword [esi + 0xe4]
mov edx, dword [esi + 0xe0]
push ecx
push edx
lea eax, [esp + 0x220]
push str.____Field_of_View___.2f
push eax
call fcn.0046120f
add esp, 0x10
lea ecx, [esp + 0x218]
push edi
push ecx
push 0x64
push 0x14
mov ecx, esi
call fcn.00408f10
mov edx, dword [esi + 0x54]
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
push edx
mov edx, dword [esi + 0x48]
push eax
push ecx
push edx
lea eax, [esp + 0x228]
push str.____Rotate___10.5f___10.5f
push eax
call fcn.0046120f
add esp, 0x18
lea ecx, [esp + 0x218]
push edi
push ecx
push 0x78
push 0x14
mov ecx, esi
call fcn.00408f10
mov eax, dword [esi + 0x1c8]
xor ebx, ebx
cmp eax, edi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x28], edi
jle 0x406bfc
lea ebp, [esi + 0x2ac]
mov eax, dword [ebp]
test eax, eax
je 0x406be7
mov edx, dword [eax]
push eax
inc ebx
call dword [edx + 0x60]
test eax, eax
je 0x406be7
inc dword [esp + 0x28]
mov eax, dword [esi + 0x1c8]
inc edi
add ebp, 4
cmp edi, eax
jl 0x406bd1
mov dword [esp + 0x88], ebx
mov ebp, dword [esi + 0x2660]
mov edx, 0x47b134
cmp ebp, 8
jbe 0x406c1d
mov eax, dword [esi + 0x2668]
add eax, 0xa38
mov dword [esp + 0x70], eax
jmp 0x406c21
mov dword [esp + 0x70], edx
cmp ebp, 8
jbe 0x406c78
mov eax, dword [esi + 0x2668]
lea edi, [esi + 0x26a4]
add eax, 0xa38
mov bl, byte [edi]
mov cl, bl
cmp bl, byte [eax]
jne 0x406c5b
test cl, cl
je 0x406c57
mov bl, byte [edi + 1]
mov cl, bl
cmp bl, byte [eax + 1]
jne 0x406c5b
add edi, 2
add eax, 2
test cl, cl
jne 0x406c37
xor eax, eax
jmp 0x406c60
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406c6e
mov dword [esp + 0x4c], 0x475df0
jmp 0x406c7c
mov dword [esp + 0x4c], str.___9
jmp 0x406c7c
mov dword [esp + 0x4c], edx
cmp ebp, 7
jbe 0x406c95
mov eax, dword [esi + 0x2668]
add eax, 0x8f8
mov dword [esp + 0x98], eax
jmp 0x406c9c
mov dword [esp + 0x98], edx
cmp ebp, 7
jbe 0x406cf3
mov eax, dword [esi + 0x2668]
lea edi, [esi + 0x26a4]
add eax, 0x8f8
mov bl, byte [edi]
mov cl, bl
cmp bl, byte [eax]
jne 0x406cd6
test cl, cl
je 0x406cd2
mov bl, byte [edi + 1]
mov cl, bl
cmp bl, byte [eax + 1]
jne 0x406cd6
add edi, 2
add eax, 2
test cl, cl
jne 0x406cb2
xor eax, eax
jmp 0x406cdb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406ce9
mov dword [esp + 0x64], 0x475de4
jmp 0x406cf7
mov dword [esp + 0x64], str.___8
jmp 0x406cf7
mov dword [esp + 0x64], edx
cmp ebp, 6
jbe 0x406d10
mov eax, dword [esi + 0x2668]
add eax, 0x7b8
mov dword [esp + 0x94], eax
jmp 0x406d17
mov dword [esp + 0x94], edx
cmp ebp, 6
jbe 0x406d6e
mov eax, dword [esi + 0x2668]
lea edi, [esi + 0x26a4]
add eax, 0x7b8
mov bl, byte [edi]
mov cl, bl
cmp bl, byte [eax]
jne 0x406d51
test cl, cl
je 0x406d4d
mov bl, byte [edi + 1]
mov cl, bl
cmp bl, byte [eax + 1]
jne 0x406d51
add edi, 2
add eax, 2
test cl, cl
jne 0x406d2d
xor eax, eax
jmp 0x406d56
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406d64
mov dword [esp + 0x50], 0x475dd8
jmp 0x406d72
mov dword [esp + 0x50], str.___7
jmp 0x406d72
mov dword [esp + 0x50], edx
cmp ebp, 5
jbe 0x406d8b
mov eax, dword [esi + 0x2668]
add eax, 0x678
mov dword [esp + 0x8c], eax
jmp 0x406d92
mov dword [esp + 0x8c], edx
cmp ebp, 5
jbe 0x406de9
mov eax, dword [esi + 0x2668]
lea edi, [esi + 0x26a4]
add eax, 0x678
mov bl, byte [edi]
mov cl, bl
cmp bl, byte [eax]
jne 0x406dcc
test cl, cl
je 0x406dc8
mov bl, byte [edi + 1]
mov cl, bl
cmp bl, byte [eax + 1]
jne 0x406dcc
add edi, 2
add eax, 2
test cl, cl
jne 0x406da8
xor eax, eax
jmp 0x406dd1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406ddf
mov dword [esp + 0x60], 0x475dcc
jmp 0x406ded
mov dword [esp + 0x60], str.___6
jmp 0x406ded
mov dword [esp + 0x60], edx
cmp ebp, 4
jbe 0x406e03
mov eax, dword [esi + 0x2668]
add eax, 0x538
mov dword [esp + 0x6c], eax
jmp 0x406e07
mov dword [esp + 0x6c], edx
cmp ebp, 4
jbe 0x406e5e
mov eax, dword [esi + 0x2668]
lea edi, [esi + 0x26a4]
add eax, 0x538
mov bl, byte [edi]
mov cl, bl
cmp bl, byte [eax]
jne 0x406e41
test cl, cl
je 0x406e3d
mov bl, byte [edi + 1]
mov cl, bl
cmp bl, byte [eax + 1]
jne 0x406e41
add edi, 2
add eax, 2
test cl, cl
jne 0x406e1d
xor eax, eax
jmp 0x406e46
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406e54
mov dword [esp + 0x58], 0x475dc0
jmp 0x406e62
mov dword [esp + 0x58], str.___5
jmp 0x406e62
mov dword [esp + 0x58], edx
cmp ebp, 3
jbe 0x406e78
mov eax, dword [esi + 0x2668]
add eax, 0x3f8
mov dword [esp + 0x68], eax
jmp 0x406e7c
mov dword [esp + 0x68], edx
cmp ebp, 3
jbe 0x406ed3
mov eax, dword [esi + 0x2668]
lea edi, [esi + 0x26a4]
add eax, 0x3f8
mov bl, byte [edi]
mov cl, bl
cmp bl, byte [eax]
jne 0x406eb6
test cl, cl
je 0x406eb2
mov bl, byte [edi + 1]
mov cl, bl
cmp bl, byte [eax + 1]
jne 0x406eb6
add edi, 2
add eax, 2
test cl, cl
jne 0x406e92
xor eax, eax
jmp 0x406ebb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406ec9
mov dword [esp + 0x48], 0x475db4
jmp 0x406ed7
mov dword [esp + 0x48], str.___4
jmp 0x406ed7
mov dword [esp + 0x48], edx
cmp ebp, 2
jbe 0x406eed
mov eax, dword [esi + 0x2668]
add eax, 0x2b8
mov dword [esp + 0x78], eax
jmp 0x406ef1
mov dword [esp + 0x78], edx
cmp ebp, 2
jbe 0x406f48
mov eax, dword [esi + 0x2668]
lea edi, [esi + 0x26a4]
add eax, 0x2b8
mov bl, byte [edi]
mov cl, bl
cmp bl, byte [eax]
jne 0x406f2b
test cl, cl
je 0x406f27
mov bl, byte [edi + 1]
mov cl, bl
cmp bl, byte [eax + 1]
jne 0x406f2b
add edi, 2
add eax, 2
test cl, cl
jne 0x406f07
xor eax, eax
jmp 0x406f30
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406f3e
mov dword [esp + 0x54], 0x475da8
jmp 0x406f4c
mov dword [esp + 0x54], str.___3
jmp 0x406f4c
mov dword [esp + 0x54], edx
cmp ebp, 1
jbe 0x406f65
mov eax, dword [esi + 0x2668]
add eax, 0x178
mov dword [esp + 0x84], eax
jmp 0x406f6c
mov dword [esp + 0x84], edx
cmp ebp, 1
jbe 0x406fc3
mov eax, dword [esi + 0x2668]
lea edi, [esi + 0x26a4]
add eax, 0x178
mov bl, byte [edi]
mov cl, bl
cmp bl, byte [eax]
jne 0x406fa6
test cl, cl
je 0x406fa2
mov bl, byte [edi + 1]
mov cl, bl
cmp bl, byte [eax + 1]
jne 0x406fa6
add edi, 2
add eax, 2
test cl, cl
jne 0x406f82
xor eax, eax
jmp 0x406fab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406fb9
mov dword [esp + 0x5c], 0x475d9c
jmp 0x406fc7
mov dword [esp + 0x5c], str.___2
jmp 0x406fc7
mov dword [esp + 0x5c], edx
test ebp, ebp
jbe 0x406fdd
mov eax, dword [esi + 0x2668]
add eax, 0x38
mov dword [esp + 0x80], eax
jmp 0x406fe4
mov dword [esp + 0x80], edx
test ebp, ebp
jbe 0x407032
mov eax, dword [esi + 0x2668]
lea edi, [esi + 0x26a4]
add eax, 0x38
mov dl, byte [edi]
mov bl, byte [eax]
mov cl, dl
cmp dl, bl
jne 0x40701f
test cl, cl
je 0x40701b
mov dl, byte [edi + 1]
mov bl, byte [eax + 1]
mov cl, dl
cmp dl, bl
jne 0x40701f
add edi, 2
add eax, 2
test cl, cl
jne 0x406ff7
xor eax, eax
jmp 0x407024
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov edx, 0x475d90
je 0x407032
mov edx, str.___1
mov al, byte [esi + 0x1d5]
mov ebx, 0x475d84
test al, al
mov edi, 0x475d80
mov dword [esp + 0x7c], ebx
jne 0x40704e
mov dword [esp + 0x7c], edi
mov al, byte [esi + 0x1d4]
mov cl, byte [esi + 0x1d3]
or al, cl
mov dword [esp + 0x90], ebx
jne 0x40706c
mov dword [esp + 0x90], edi
mov al, byte [esi + 0x1d8]
mov dword [esp + 0x40], ebx
test al, al
jne 0x40707e
mov dword [esp + 0x40], edi
mov eax, dword [esp + 0x1c]
mov ebp, 0x475d7c
cmp eax, 0x100
jne 0x407098
mov dword [esp + 0x1c], 0x475d78
jmp 0x4070cd
cmp eax, 0x200
jne 0x4070a9
mov dword [esp + 0x1c], 0x475d74
jmp 0x4070cd
cmp eax, 0x400
jne 0x4070ba
mov dword [esp + 0x1c], str.1024
jmp 0x4070cd
cmp eax, 0x800
mov dword [esp + 0x1c], str.2048
je 0x4070cd
mov dword [esp + 0x1c], ebp
mov eax, dword [esi + 0x148]
cmp eax, 3
jne 0x4070e2
mov dword [esp + 0x2c], str.32_bit
jmp 0x407120
cmp eax, 1
jne 0x4070f1
mov dword [esp + 0x2c], str.24_bit
jmp 0x407120
cmp eax, 4
jne 0x407100
mov dword [esp + 0x2c], str.16_bit
jmp 0x407120
cmp eax, 0x12
jne 0x40710f
mov dword [esp + 0x2c], str.DXT1_compression
jmp 0x407120
cmp eax, 0xb
mov dword [esp + 0x2c], str.8_bit_B_W
je 0x407120
mov dword [esp + 0x2c], ebp
mov eax, dword [esi + 0x140]
cmp eax, 1
jne 0x407135
mov dword [esp + 0x24], str.POINT
jmp 0x4071a8
cmp eax, 2
jne 0x407144
mov dword [esp + 0x24], str.LINEAR
jmp 0x4071a8
cmp eax, 3
jne 0x4071a4
cmp dword [esi + 0x144], 2
jne 0x40715c
mov dword [esp + 0x24], str.2X_ANISOTROPIC
jmp 0x4071a8
cmp eax, 3
jne 0x4071a4
cmp dword [esi + 0x144], 4
jne 0x407174
mov dword [esp + 0x24], str.4X_ANISOTROPIC
jmp 0x4071a8
cmp eax, 3
jne 0x4071a4
cmp dword [esi + 0x144], 8
jne 0x40718c
mov dword [esp + 0x24], str.8X_ANISOTROPIC
jmp 0x4071a8
cmp eax, 3
jne 0x4071a4
mov eax, dword [esi + 0x144]
mov dword [esp + 0x24], str.16X_ANISOTROPIC
cmp eax, 0x10
je 0x4071a8
mov dword [esp + 0x24], ebp
mov eax, dword [esi + 0xa8]
mov dword [esp + 0x34], ebx
cmp eax, 6
je 0x4071bb
mov dword [esp + 0x34], edi
cmp eax, 3
jne 0x4071ca
mov dword [esp + 0x20], str.Absolute
jmp 0x40721b
cmp eax, 8
jne 0x4071d9
mov dword [esp + 0x20], str.Zooming
jmp 0x40721b
cmp eax, 6
jne 0x4071e8
mov dword [esp + 0x20], str.Automatic
jmp 0x40721b
cmp eax, 4
jne 0x4071f7
mov dword [esp + 0x20], str.Relative_X
jmp 0x40721b
cmp eax, 5
jne 0x407206
mov dword [esp + 0x20], str.Relative_X_Y
jmp 0x40721b
cmp eax, 7
mov dword [esp + 0x20], str.Game_Style
je 0x40721b
mov dword [esp + 0x20], str._Wait_
mov al, byte [esi + 0x1d1]
mov dword [esp + 0x38], ebx
test al, al
jne 0x40722d
mov dword [esp + 0x38], edi
mov al, byte [esi + 0x1d0]
mov dword [esp + 0x3c], ebx
test al, al
jne 0x40723f
mov dword [esp + 0x3c], edi
mov al, byte [esi + 0x1d2]
mov dword [esp + 0x44], ebx
test al, al
jne 0x407251
mov dword [esp + 0x44], edi
mov al, byte [esi + 0x238]
mov dword [esp + 0x18], ebx
test al, al
jne 0x407263
mov dword [esp + 0x18], edi
mov cl, byte [esi + 0x243d]
test cl, cl
jne 0x407274
mov ebp, str.DEFAULT
jmp 0x407290
mov eax, dword [esi + 0x2440]
cmp eax, 0x10
jne 0x407286
mov ebp, 0x475c80
jmp 0x407290
cmp eax, 0x20
jne 0x407290
mov ebp, 0x475c7c
test cl, cl
jne 0x407296
mov edi, ebx
mov ebx, dword [esp + 0x70]
push 0
push ebx
mov ebx, dword [esp + 0x54]
push ebx
mov ebx, dword [esp + 0xa4]
push ebx
mov ebx, dword [esp + 0x74]
push ebx
mov ebx, dword [esp + 0xa8]
push ebx
mov ebx, dword [esp + 0x68]
push ebx
mov ebx, dword [esp + 0xa8]
push ebx
mov ebx, dword [esp + 0x80]
push ebx
mov ebx, dword [esp + 0x90]
push ebx
mov ebx, dword [esp + 0x80]
push ebx
mov ebx, dword [esp + 0x94]
push ebx
mov ebx, dword [esp + 0x78]
push ebx
mov ebx, dword [esp + 0xac]
push ebx
mov ebx, dword [esp + 0x8c]
push ebx
mov ebx, dword [esp + 0xc0]
mov eax, dword [esp + 0xd8]
push ebx
mov ebx, dword [esp + 0x9c]
mov ecx, eax
push ebx
mov ebx, dword [esp + 0xc4]
push ebx
mov ebx, dword [esp + 0xbc]
push edx
mov edx, eax
sub edx, ebx
shr edx, 0x14
push edx
mov edx, dword [esp + 0x60]
mov ebx, edx
sub eax, edx
shr ecx, 0x14
shr ebx, 0x14
push ecx
push ebx
mov ebx, dword [esp + 0xcc]
mov edx, dword [esp + 0x80]
shr ebx, 0x14
push ebx
push ecx
mov ecx, dword [esi + 0x14c]
mov ebx, dword [esi + 0x11c]
shr eax, 0x14
push eax
mov eax, dword [esi + 0x2830]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esi + 0x1c8]
push edx
mov edx, dword [esp + 0xec]
push eax
mov eax, dword [esp + 0x104]
push ecx
mov ecx, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0x98]
push eax
mov eax, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esi + 0x120]
push eax
push ecx
add edx, ebx
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
sub edx, ecx
mov ecx, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0xcc]
push eax
mov eax, dword [esp + 0xd4]
push ecx
mov ecx, dword [esp + 0xe0]
push edx
mov edx, dword [esp + 0xb8]
push eax
mov eax, dword [esi + 0x28d8]
push ecx
mov ecx, dword [esi + 0x28d4]
push edx
push ebp
push eax
push ecx
push edi
lea edx, [esp + 0x2d4]
push str.Key_Definitions:_n_n_____Left_Mouse_Button__Space____Go_to_the_nearest_area_n_____Mouse__Cursor_Keys____Navigate_n_____Mouse_Wheel__Page_Up_Down____Zoom_n_____Home____Stop_Rotation_n_____Enter____Select___Next_n_____F5____Save_as_screen_saver_n_n_____N_____Next_Device_n_____W_____Windowed___s__n_____S_____Screen_Dimentions___d_x__d__n_____B_____Screen_Bits_per_pixel___s__n_____V_____Vertical_Sync___s__n_____R_____Show_Frame_Rate___s__n_____D_____Surface_Dithering___s__n_____G_____Screen_Dithering___s__n_____C_____Rotate_Mode___s__n_____A_____Toggle_auto_rotate___s____d__n_____F_____Sampler_Filter___s__n_____M_____Texture_Format___s__n_____T_____Texture_Size___s__n_____U_____Use_Mipmaps___s__n_____F1____Help___s__n_____F9____Display_Thumbnails___s__n_n____Surfaces____d_total___d_allocated___d_lost__n____Original_Texture_Size___d_n____Maximum_Texture_Size___d_n____Used_Texture_Memory___ld_MB_of__ld_MB__should_be__ld_MB__n____Available_Texture_Memory___ld_MB_of__ld_MB__should_be__ld_MB__n_n____Device_Drivers:_n_______s__s_n_______s__s_n_______s__s_n_______s__s_n_______s__s_n_______s__s_n_______s__s_n_______s__s_n_______s__s_n_n
push edx
call fcn.0046120f
add esp, 0xc4
lea eax, [esp + 0x218]
mov ecx, esi
push 0
push eax
push 0xa0
push 0x14
call fcn.00408f10
mov eax, dword [esi + 0x28d8]
push 0
cdq
sub eax, edx
push 0x475808
sar eax, 1
sub eax, 0xb
mov ecx, esi
push eax
mov eax, dword [esi + 0x28d4]
cdq
sub eax, edx
sar eax, 1
sub eax, 7
push eax
call fcn.00408f10
fld qword [esi + 0x38]
fadd qword [0x46f2c0]
fmul qword [0x46f2d8]
fadd qword [0x46f2a0]
call fcn.00462530
push eax
lea ecx, [esp + 0x21c]
push 0x475610
push ecx
call fcn.0046120f
mov eax, dword [esi + 0x28d8]
add esp, 0xc
lea edx, [esp + 0x218]
mov ecx, esi
push 0
push edx
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [esi + 0x28d4]
cdq
sub eax, edx
sar eax, 1
sub eax, 7
push eax
call fcn.00408f10
mov bl, byte [esi + 0x238]
mov eax, dword [esi + 0x28bc]
xor edx, edx
mov ecx, dword [eax]
test bl, bl
sete dl
push edx
push eax
call dword [ecx + 0x4c]
cmp eax, 0x887601c2
je 0x4074d7
cmp eax, 0x887601ae
jne 0x4074de
mov ecx, esi
call fcn.00409c50
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret