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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x409c80
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb0
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 0x104
call sub.MFC42.DLL_operatornew
mov edi, dword [sym.imp.OPENGL32.dll_glMatrixMode]
add esp, 4
push 0x1701
call edi
xor ebx, ebx
push 0x409f4000
push ebx
push 0x3ff00000
push ebx
push 0x3ff00000
push ebx
push 0x40440000
push ebx
call sub.GLU32.dll_gluPerspective
push 0x1700
call edi
push ebx
push ebx
push 0x3ff00000
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x407f4000
push ebx
push ebx
push ebx
push ebx
push ebx
call sub.GLU32.dll_gluLookAt
mov edi, dword [sym.imp.OPENGL32.dll_glDisable]
push 0xb71
call edi
push 0xb50
call edi
mov edi, dword [sym.imp.OPENGL32.dll_glEnable]
push 0xde1
call edi
push 0xbe2
call edi
push 1
push 1
call dword [sym.imp.OPENGL32.dll_glBlendFunc]
lea eax, [esp + 0x34]
push eax
call sub.MFC42.DLL_CTime::GetTickCount
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.MSVCRT.dll_srand]
mov edi, dword [sym.imp.MSVCRT.dll_clock]
add esp, 4
call edi
call edi
mov dword [esp + 0x1c], eax
mov eax, 0x3d4ccccd
fild dword [esp + 0x1c]
lea ecx, [esp + 0x74]
mov dword [esi + 0xb8], eax
mov dword [esi + 0xbc], eax
fmul dword [0x40a340]
fstp qword [esi + 0xb0]
call fcn.00408700
push 0x83
lea ecx, [esp + 0x78]
mov dword [esp + 0xcc], ebx
call fcn.004087d0
lea ecx, [esp + 0x74]
call fcn.004087b0
push 0xc
mov dword [esi + 0x154], 0x40800000
mov dword [esi + 0xfc], 1
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov byte [esp + 0xc8], 1
je 0x4011d5
push fcn.00404820
push 0x404730
lea edi, [eax + 4]
push 1
push 8
push edi
mov dword [eax], 1
call fcn.0040983a
mov ecx, edi
jmp 0x4011d7
xor ecx, ecx
mov byte [esp + 0xc8], bl
mov dword [esi + 0x100], ecx
call fcn.00404830
push 0x960
mov dword [esi + 0x104], ebx
mov dword [esi + 0xe0], 0x64
mov dword [esi + 0xe4], 0x19
mov dword [esi + 0xe8], 0xc8
mov dword [esi + 0xec], 0x28
mov dword [esi + 0x90], ebx
call sub.MFC42.DLL_operatornew
push 0x5784
mov dword [esi + 0x74], eax
mov dword [esi + 0xc4], ebx
call sub.MFC42.DLL_operatornew
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, ebx
mov byte [esp + 0xc8], 2
je 0x40126f
push fcn.00404720
push 0x404710
lea edi, [eax + 4]
push 0xc8
push 0x70
push edi
mov dword [eax], 0xc8
call fcn.0040983a
jmp 0x401271
xor edi, edi
mov dword [esi + 0x84], edi
mov edi, 0x3f800000
mov dword [esi + 0xf0], edi
push 0x3f4ccccd
mov dword [esi + 0xf4], edi
push 0x3dcccccd
mov byte [esp + 0xd0], bl
mov dword [esi + 0xf8], edi
call fcn.004088f0
fmul dword [esi + 0xf0]
push 0x3f4ccccd
push 0x3dcccccd
fstp dword [esp + 0x30]
call fcn.004088f0
fmul dword [esi + 0xf4]
push 0x3f4ccccd
push 0x3dcccccd
fstp dword [esp + 0x3c]
call fcn.004088f0
fmul dword [esi + 0xf8]
add esp, 0x14
mov dword [esi + 0xc8], 0x3f333333
mov dword [esi + 0xd8], edi
mov dword [esi + 0xcc], 0x40600000
mov dword [esi + 0xd0], 0x3eb33333
mov dword [esi + 0xd4], 0x3f955555
fstp dword [esp + 0x2c]
fild dword [esi + 0xe0]
fstp dword [esp]
fild dword [esi + 0xe4]
push ecx
fstp dword [esp]
call fcn.004088f0
call sub.MSVCRT.dll__ftol
mov edx, dword [esi + 0xcc]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0xd0]
push edx
push eax
call fcn.004088f0
fstp dword [esp + 0x2c]
push 0x42c80000
mov dword [esi + 0xdc], 0x41f00000
call fcn.00408950
fstp dword [esp + 0x58]
push 0x42c80000
call fcn.00408950
fstp dword [esp + 0x60]
push 0x42c80000
call fcn.00408950
fstp dword [esp + 0x68]
push 0x40000000
call fcn.00408950
fstp dword [esp + 0x34]
push 0x3fc00000
call fcn.00408950
fstp dword [esp + 0x3c]
mov ebp, dword [esp + 0x48]
add esp, 0x24
xor edi, edi
push 0x42c80000
call fcn.00408950
fstp dword [esp + 0x30]
push 0x42c80000
call fcn.00408950
fstp dword [esp + 0x38]
push 0x42c80000
call fcn.00408950
mov ecx, dword [esi + 0x84]
mov edx, dword [esp + 0x3c]
fstp dword [ecx + edi + 4]
lea eax, [ecx + edi + 4]
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov edx, dword [esi + 0x84]
mov dword [edx + edi + 0x10], ebx
mov dword [edx + edi + 0x14], ebx
mov dword [edx + edi + 0x18], ebx
lea eax, [edx + edi + 0x10]
mov eax, dword [esi + 0xd4]
push eax
call fcn.00408920
fadd dword [esp + 0x2c]
mov ecx, dword [esi + 0x84]
push 0x8984
fstp dword [ecx + edi + 0x20]
mov edx, dword [esi + 0x84]
mov ecx, dword [esp + 0x34]
lea eax, [edx + edi + 0x30]
mov edx, dword [esp + 0x3c]
mov dword [eax], ecx
mov dword [eax + 4], ebp
mov dword [eax + 8], edx
mov eax, dword [esi + 0x84]
mov byte [eax + edi + 0x6c], bl
call sub.MFC42.DLL_operatornew
add esp, 0x14
mov dword [esp + 0x2c], eax
cmp eax, ebx
mov byte [esp + 0xc8], 3
je 0x401479
push fcn.00409590
push 0x409580
lea ebp, [eax + 4]
push 0x190
push 0x58
push ebp
mov dword [eax], 0x190
call fcn.0040983a
jmp 0x40147b
xor ebp, ebp
mov ecx, dword [esi + 0x84]
mov byte [esp + 0xc8], bl
xor edx, edx
mov dword [ecx + edi + 0x24], ebp
jmp 0x401492
xor ebx, ebx
xor eax, eax
mov ecx, dword [esi + 0x84]
add ecx, edi
lea ebx, [ecx + 4]
mov ecx, dword [ecx + 0x24]
add ecx, eax
add eax, 0xc
mov ebp, dword [ebx]
cmp eax, 0x24
lea ecx, [ecx + edx + 4]
mov dword [ecx], ebp
mov ebp, dword [ebx + 4]
mov dword [ecx + 4], ebp
mov ebx, dword [ebx + 8]
mov ebp, dword [esp + 0x24]
mov dword [ecx + 8], ebx
mov ecx, dword [esi + 0x84]
mov ebx, dword [esp + 0x20]
mov ecx, dword [ecx + edi + 0x24]
lea ecx, [ecx + edx + 0x4c]
mov dword [ecx], ebx
mov ebx, dword [esp + 0x28]
mov dword [ecx + 4], ebp
mov dword [ecx + 8], ebx
jl 0x401494
add edx, 0x58
cmp edx, 0x8980
jl 0x401490
mov edx, dword [esi + 0xec]
mov eax, dword [esi + 0x84]
shl edx, 2
mov dword [eax + edi + 0x28], edx
mov ecx, dword [esi + 0x84]
xor ebx, ebx
lea eax, [esp + 0x44]
mov dword [ecx + edi + 0x2c], ebx
mov edx, dword [esi + 0x84]
push eax
lea eax, [esp + 0x6c]
mov dword [edx + edi + 0x68], 0x40a00000
mov ecx, dword [esi + 0x84]
lea edx, [ecx + edi + 4]
push edx
push eax
call fcn.00409550
mov ecx, dword [eax]
add esp, 0xc
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x38]
mov edx, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x40], eax
call fcn.00409480
mov ecx, dword [esi + 0xc8]
mov edx, dword [esp + 0x18]
push ecx
lea eax, [esp + 0x3c]
push edx
lea ecx, [esp + 0x58]
push eax
push ecx
fstp st(0)
call fcn.00409520
add esp, 0xc
lea edx, [esp + 0x60]
push eax
push edx
call fcn.00409520
mov ecx, dword [esi + 0x84]
add esp, 0xc
fld dword [esp + 0x14]
lea edx, [ecx + edi + 0x54]
mov ecx, dword [eax]
add edi, 0x70
mov dword [edx], ecx
mov ecx, dword [eax + 4]
cmp edi, 0x5780
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0x84]
fstp dword [ecx + edi - 0x10]
mov edx, dword [esi + 0x84]
mov dword [edx + edi - 0xc], 2
jl 0x4013a4
push 0x234
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov byte [esp + 0xc8], 4
je 0x401603
push fcn.00404720
push 0x404710
lea edi, [eax + 4]
push 5
push 0x70
push edi
mov dword [eax], 5
call fcn.0040983a
jmp 0x401605
xor edi, edi
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xd0]
push eax
push ecx
mov byte [esp + 0xd0], bl
mov dword [esi + 0xa0], edi
call fcn.004088f0
fstp dword [esp + 0x24]
mov ebp, dword [sym.imp.MSVCRT.dll_rand]
add esp, 8
xor edi, edi
mov edx, dword [esi + 0xa0]
lea eax, [edx + edi + 4]
mov dword [esp + 0x18], eax
call ebp
cdq
mov ecx, 0x7fff
idiv ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
fild dword [esp + 0x14]
fmul dword [0x40a33c]
fsub dword [0x40a338]
fadd st(0), st(0)
fmul dword [0x40a334]
fstp dword [edx]
mov eax, dword [esi + 0xa0]
lea ecx, [eax + edi + 8]
mov dword [esp + 0x18], ecx
call ebp
cdq
mov ecx, 0x7fff
idiv ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
fild dword [esp + 0x14]
fmul dword [0x40a33c]
fsub dword [0x40a338]
fadd st(0), st(0)
fmul dword [0x40a334]
fstp dword [edx]
mov eax, dword [esi + 0xa0]
lea ecx, [eax + edi + 0xc]
mov dword [esp + 0x18], ecx
call ebp
cdq
mov ecx, 0x7fff
idiv ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
fild dword [esp + 0x14]
fmul dword [0x40a33c]
fsub dword [0x40a338]
fadd st(0), st(0)
fmul dword [0x40a334]
fstp dword [edx]
mov eax, dword [esi + 0xa0]
mov dword [eax + edi + 0x10], ebx
mov dword [eax + edi + 0x14], ebx
mov dword [eax + edi + 0x18], ebx
mov ecx, dword [esi + 0xa0]
lea eax, [eax + edi + 0x10]
mov dword [ecx + edi + 0x3c], ebx
mov dword [ecx + edi + 0x40], ebx
lea eax, [ecx + edi + 0x3c]
mov dword [eax + 8], ebx
mov edx, dword [esi + 0xd4]
push edx
call fcn.00408920
fld dword [esp + 0x20]
fmul dword [esi + 0xd8]
mov eax, dword [esi + 0xa0]
add edi, 0x70
add esp, 4
cmp edi, 0x230
faddp st(1)
fstp dword [eax + edi - 0x50]
jl 0x401634
push 0x40a00000
push 0x40000000
call fcn.004088f0
add esp, 8
call sub.MSVCRT.dll__ftol
mov ecx, dword [esi + 0x84]
mov dword [esi + 0xa4], eax
mov dword [esp + 0xc8], 0xffffffff
mov edx, dword [ecx + 0x28]
lea ecx, [esp + 0x74]
mov dword [esi + 0x158], edx
call fcn.00408710
mov ecx, dword [esp + 0xc0]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret