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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x571980
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x40c
mov eax, dword [0x5c4008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x6d07d4]
mov ecx, 0x70a6a4
mov dword [ebp - 0x204], esi
call fcn.0056b0a5
cmp dword [0x5cdf5c], 0xffffffff
mov dword [ebp - 0x210], 0
jne 0x50719f
cmp byte [esi + 0x2c], 0
mov edx, dword [0x5cdf60]
mov eax, dword [0x5cdf58]
mov dword [0x5cdf5c], 0
mov dword [0x5cdf2c], 0
mov dword [0x5ce510], edx
mov dword [0x5ce50c], eax
je 0x50719f
movd xmm1, dword [0x5ce51c]
movd xmm0, dword [0x5ce520]
cvtdq2ps xmm0, xmm0
movd xmm2, edx
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
movd xmm3, eax
cvtdq2ps xmm3, xmm3
divss xmm1, xmm0
movaps xmm0, xmm2
divss xmm0, xmm3
comiss xmm1, xmm0
jbe 0x50717e
divss xmm2, xmm1
cvttss2si ecx, xmm2
sub eax, ecx
mov dword [0x5ce50c], ecx
cdq
sub eax, edx
sar eax, 1
mov dword [0x5cdf2c], eax
jmp 0x50719f
comiss xmm0, xmm1
jbe 0x50719f
mulss xmm3, xmm1
cvttss2si ecx, xmm3
sub edx, ecx
mov dword [0x5ce510], ecx
mov eax, edx
cdq
sub eax, edx
sar eax, 1
mov dword [0x5cdf5c], eax
push 1
call dword [sym.imp.OPENGL32.dll_glDepthMask]
push dword [0x5ce50c]
push dword [0x5ce510]
push dword [0x5cdf2c]
push dword [0x5cdf5c]
call dword [sym.imp.OPENGL32.dll_glViewport]
push 0
call dword [sym.imp.OPENGL32.dll_glClearStencil]
push 0x4500
call dword [sym.imp.OPENGL32.dll_glClear]
push 0xde1
call dword [sym.imp.OPENGL32.dll_glEnable]
push 0xb90
call dword [sym.imp.OPENGL32.dll_glDisable]
xor eax, eax
lea edi, [esi + 0x44]
mov dword [ebp - 0x208], eax
mov esi, 0x5cbec0
nop
cmp byte [edi], 0
je 0x50722e
mov edx, dword [edi + 4]
test edx, edx
jne 0x50721e
cmp eax, 8
ja 0x50722b
push dword [esi]
mov byte [esi + 4], dl
call dword [sym.imp.OPENGL32.dll_glDisable]
jmp 0x507225
mov ecx, eax
call fcn.00518be0
mov eax, dword [ebp - 0x208]
mov byte [edi], 0
inc eax
add esi, 0x18
add edi, 8
mov dword [ebp - 0x208], eax
cmp esi, 0x5cbf80
jl 0x507200
push ecx
mov ecx, dword [0x6d07e4]
call fcn.0050ff90
cmp dword [0x6d07d4], 0
mov esi, dword [ebp - 0x204]
je 0x507f42
movd xmm4, dword [0x5ce51c]
lea eax, [esi + 0x3b0]
movd xmm5, dword [0x5ce520]
xorps xmm1, xmm1
cvtdq2ps xmm4, xmm4
inc dword [0x6d07bc]
mov dword [eax + 0x10], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x30], 0
cvtdq2ps xmm5, xmm5
mov dword [eax + 4], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x34], 0
mov dword [eax + 8], 0
movaps xmm3, xmm4
mov dword [eax + 0x18], 0
movaps xmm2, xmm5
mov dword [eax + 0x28], 0x3f800000
subss xmm3, xmm1
mov dword [eax + 0x38], 0
addss xmm4, xmm1
mov dword [eax + 0x2c], 0
addss xmm5, xmm1
mov dword [eax + 0x3c], 0x3f800000
subss xmm2, xmm1
mov dword [ebp - 0x214], eax
movss xmm1, dword [0x5b4648]
movaps xmm0, xmm1
divss xmm4, xmm3
divss xmm5, xmm2
divss xmm0, xmm3
divss xmm1, xmm2
xorps xmm4, xmmword [0x5b4940]
xorps xmm5, xmmword [0x5b4940]
movss dword [eax], xmm0
movss dword [eax + 0x14], xmm1
movss dword [eax + 0xc], xmm4
movss dword [eax + 0x1c], xmm5
mov ecx, dword [esi + 0x430]
test ecx, ecx
je 0x5073cb
cmp ecx, 1
je 0x5073cb
mov eax, dword [0x5cdf28]
sub eax, dword [esi + 0x438]
mov edx, dword [esi + 0x43c]
cmp eax, edx
jle 0x507393
mov edi, dword [esi + 0x44c]
test edi, edi
je 0x507379
mov ecx, edi
call dword [0x579378]
call edi
mov ecx, dword [esi + 0x430]
xor eax, eax
mov dword [esi + 0x44c], 0
cmp ecx, 3
sete al
mov dword [esi + 0x430], eax
jmp 0x5073cb
movd xmm1, eax
movd xmm0, edx
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [esi + 0x434], xmm1
cmp ecx, 5
je 0x5073b7
cmp ecx, 3
jne 0x5073cb
movss xmm0, dword [0x5b4600]
subss xmm0, xmm1
movss dword [esi + 0x434], xmm0
mov edi, dword [0x6d07d4]
add edi, 4
jne 0x5073e5
push str.Tree_assert
push 2
call fcn.004e9620
add esp, 8
mov edi, dword [edi + 0xc]
test edi, edi
je 0x507539
mov eax, dword [edi + 0x10]
test eax, eax
je 0x507400
mov edi, eax
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x5073f7
mov edi, dword [edi + 4]
test edi, edi
je 0x507539
nop dword [eax + eax]
lea ecx, [edi + 4]
call fcn.004ea7b0
cmp byte [edi + 0x3d], 0
mov dword [ebp - 0x20c], eax
jne 0x507523
mov edx, dword [edi + 0x8c]
test edx, edx
jle 0x50750c
mov ecx, dword [edi + 0x90]
mov eax, dword [0x5cdf28]
cmp eax, ecx
jl 0x507475
mov eax, dword [edi + 0x7c]
mov dword [edi + 0x5c], eax
mov eax, dword [edi + 0x80]
mov dword [edi + 0x60], eax
mov eax, dword [edi + 0x84]
mov dword [edi + 0x64], eax
mov eax, dword [edi + 0x88]
mov dword [edi + 0x68], eax
mov dword [edi + 0x8c], 0xffffffff
jmp 0x50750c
xorps xmm0, xmm0
movss xmm2, dword [0x5b4600]
sub eax, edx
movss xmm1, dword [edi + 0x6c]
sub ecx, edx
xorps xmm3, xmm3
cvtsi2ss xmm3, eax
cvtsi2ss xmm0, ecx
divss xmm3, xmm0
movss xmm0, dword [edi + 0x7c]
subss xmm2, xmm3
mulss xmm0, xmm3
mulss xmm1, xmm2
addss xmm1, xmm0
movss dword [edi + 0x5c], xmm1
movss xmm1, dword [edi + 0x70]
movss xmm0, dword [edi + 0x80]
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm1, xmm0
movss dword [edi + 0x60], xmm1
movss xmm1, dword [edi + 0x74]
movss xmm0, dword [edi + 0x84]
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm1, xmm0
movss dword [edi + 0x64], xmm1
movss xmm1, dword [edi + 0x78]
movss xmm0, dword [edi + 0x88]
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm1, xmm0
movss dword [edi + 0x68], xmm1
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x579378]
mov ecx, edi
call esi
mov eax, dword [ebp - 0x20c]
mov word [edi + 0x3d], 1
mov edi, eax
test eax, eax
jne 0x507410
mov esi, dword [ebp - 0x204]
mov edi, dword [0x6d07d4]
xor edx, edx
inc dword [esi + 0x9c]
mov dword [ebp - 0x208], edx
mov dword [esi + 0x38], edx
mov dword [esi + 0x3c], edx
add edi, 4
jne 0x50756d
push str.Tree_assert
push 2
call fcn.004e9620
mov edx, dword [ebp - 0x208]
add esp, 8
mov edi, dword [edi + 0xc]
test edi, edi
je 0x507f2a
mov eax, dword [edi + 0x10]
test eax, eax
je 0x507589
nop
mov edi, eax
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x507580
mov edi, dword [edi + 4]
mov dword [ebp - 0x20c], edi
test edi, edi
je 0x507f2a
jmp 0x5075a6
mov edx, dword [ebp - 0x208]
test edx, edx
jle 0x5075e7
mov ecx, dword [ebp - 0x200]
mov eax, dword [ecx + 0x40]
cmp eax, dword [edi + 0x40]
jne 0x5076de
mov eax, dword [ecx + 0x44]
cmp eax, dword [edi + 0x44]
jne 0x5076de
mov eax, dword [ebp - 0x200]
mov ecx, dword [ecx + 0x4c]
add ecx, dword [eax + 0x48]
mov eax, dword [edi + 0x4c]
add eax, dword [edi + 0x48]
cmp ecx, eax
jne 0x5076de
cmp edx, 0x64
jge 0x5075f5
mov dword [ebp + edx*4 - 0x200], edi
inc edx
mov dword [ebp - 0x208], edx
mov ecx, dword [edi + 0x40]
mov eax, dword [ebp - 0x210]
cmp eax, ecx
je case.default.0x507a24
cmp eax, 4
jne 0x507a07
push 0xffffffffffffffff
push 1
push 0x203
call dword [sym.imp.OPENGL32.dll_glStencilFunc]
push 0x1e00
push 0x1e00
push 0x1e00
call dword [sym.imp.OPENGL32.dll_glStencilOp]
push 0x1d00
call dword [sym.imp.OPENGL32.dll_glShadeModel]
push 0xbe2
call dword [sym.imp.OPENGL32.dll_glEnable]
push 0x303
push 0x302
call dword [sym.imp.OPENGL32.dll_glBlendFunc]
push 0xb44
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0xb71
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0
call dword [sym.imp.OPENGL32.dll_glDepthMask]
push 0xb90
call dword [sym.imp.OPENGL32.dll_glEnable]
push 0xb50
call dword [sym.imp.OPENGL32.dll_glDisable]
add esi, 0x330
mov ecx, 0x20
mov edi, 0x6f3698
rep movsd dword es:[edi], dword [esi]
mov cl, 1
call fcn.00518aa0
mov esi, dword [ebp - 0x214]
mov ecx, 0x20
mov edi, 0x6f3798
rep movsd dword es:[edi], dword [esi]
xor cl, cl
call fcn.00518aa0
mov esi, dword [ebp - 0x204]
mov edi, dword [esi + 0x450]
mov dword [ebp - 0x210], edi
cmp dword [edi + 0x24], 0
jg 0x50772b
xor edi, edi
jmp 0x50778e
cmp edx, 1
jle 0x507716
mov eax, dword [esi + 0x9c]
cdq
idiv dword [ebp - 0x208]
mov esi, dword [ebp + edx*4 - 0x200]
lea ecx, [esi + 4]
call fcn.004ea350
mov ecx, dword [0x6d07d4]
lea edx, [esi + 4]
lea ecx, [ecx + 4]
call fcn.004e9ee0
mov esi, dword [ebp - 0x204]
mov dword [ebp - 0x208], 1
mov dword [ebp - 0x200], edi
jmp 0x5075f5
mov eax, dword [edi + 0x20]
mov ecx, dword [eax]
test ecx, ecx
jne 0x507738
xor edi, edi
jmp 0x50778e
mov eax, dword [0x6d07bc]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [eax]
add ecx, 0x14
call fcn.004f7c10
mov eax, dword [edi + 0x20]
mov edx, dword [0x6d07e4]
add edx, 0xc
mov ecx, dword [eax]
add ecx, 0x14
mov dword [ecx + 8], 0
mov eax, dword [edx]
test eax, eax
je 0x507777
mov dword [eax + 8], ecx
mov eax, dword [edx]
mov dword [ecx + 0xc], eax
mov dword [edx], ecx
jmp 0x507783
mov dword [edx + 4], ecx
mov dword [edx], ecx
mov dword [ecx + 0xc], 0
mov dword [ecx + 4], edx
inc dword [edx + 8]
mov eax, dword [edi + 0x20]
mov edi, dword [eax]
test edi, edi
jne 0x507870
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0x3f800000
movups xmmword [ebp - 0x70], xmm0
push 0x2c
movaps xmm0, xmmword [0x5b48d0]
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x2c], edi
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
movaps xmm0, xmmword [0x5b48c0]
movups xmmword [ebp - 0x40], xmm0
call fcn.0055144c
mov edi, eax
add esp, 4
mov dword [ebp - 0x218], edi
mov dword [edi + 0x18], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x14], edi
push 0x10
mov dword [edi + 4], 0
mov dword [edi + 8], 0xffffffff
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov byte [edi + 0x24], 0
mov dword [edi], vtable.CResourceShadowItem.0
mov dword [edi + 0x28], 0
call fcn.00555564
mov esi, eax
add esp, 4
push 0x48
mov dword [esi], 2
mov dword [esi + 4], 6
mov dword [esi + 0xc], 0
call fcn.00555564
add esp, 4
mov dword [esi + 8], eax
lea ecx, [ebp - 0x70]
push 0x48
push ecx
push eax
call fcn.00554b70
mov ecx, dword [ebp - 0x210]
add esp, 0xc
mov dword [edi + 0x28], esi
push 0x48
push edi
push 0
call fcn.0050fba0
mov esi, dword [ebp - 0x204]
mov ecx, dword [edi + 0x28]
mov edx, dword [ecx]
cmp edx, 7
ja 0x50787f
call fcn.00519250
push 0
push 0xde1
call dword [sym.imp.OPENGL32.dll_glBindTexture]
movss xmm0, dword [esi + 0x460]
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esi + 0x46c]
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x468]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x464]
movss dword [esp], xmm0
call dword [sym.imp.OPENGL32.dll_glColor4f]
lea ecx, [ebp - 0x298]
call fcn.004db1f0
movd xmm1, dword [0x5ce51c]
lea esi, [ebp - 0x298]
movd xmm2, dword [0x5ce520]
mov ecx, 0x20
cvtdq2ps xmm1, xmm1
mov dword [ebp - 0x298], 0x3f800000
mov edi, 0x6f3718
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x294], 0
movups xmm0, xmmword [ebp - 0x298]
mov dword [ebp - 0x284], 0x3f800000
cvtdq2ps xmm2, xmm2
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x25c], 0x3f800000
shufps xmm1, xmm1, 0
mulps xmm1, xmm0
mov dword [ebp - 0x270], 0x3f800000
movups xmm0, xmmword [ebp - 0x288]
mov dword [ebp - 0x260], 0
shufps xmm2, xmm2, 0
mulps xmm2, xmm0
mov dword [ebp - 0x264], 0
movups xmmword [ebp - 0x298], xmm1
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x26c], 0
movups xmmword [ebp - 0x288], xmm2
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x278], 0
rep movsd dword es:[edi], dword [esi]
xor cl, cl
call fcn.00518aa0
push 6
push 0
push 4
call dword [sym.imp.OPENGL32.dll_glDrawArrays]
mov eax, dword [0x6d07d4]
push 0x1d01
add dword [eax + 0x38], 6
inc dword [eax + 0x3c]
call dword [sym.imp.OPENGL32.dll_glShadeModel]
push 0xb90
call dword [sym.imp.OPENGL32.dll_glDisable]
mov eax, dword [ebp - 0x20c]
mov ecx, dword [eax + 0x40]
mov esi, ecx
push 0xc11
mov dword [ebp - 0x210], esi
call dword [sym.imp.OPENGL32.dll_glDisable]
dec esi
cmp esi, 8
ja case.default.0x507a24
jmp dword [esi*4 + 0x507f60]
mov eax, dword [ebp - 0x204]
cmp byte [eax + 0x84], 0
je 0x507a99
mov ecx, 0x20
mov byte [0x5ce50a], 1
mov esi, 0x6f3698
lea edi, [ebp - 0x318]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x6f3698
call fcn.004db1f0
mov cl, 1
call fcn.00518aa0
mov ecx, 0x20
lea esi, [ebp - 0x318]
mov edi, 0x6f3698
rep movsd dword es:[edi], dword [esi]
push 0xb60
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0xba1
call dword [sym.imp.OPENGL32.dll_glDisable]
mov eax, dword [ebp - 0x204]
mov byte [0x5ce50a], 0
lea esi, [eax + 0x330]
mov ecx, 0x20
mov edi, 0x6f3698
rep movsd dword es:[edi], dword [esi]
mov cl, 1
call fcn.00518aa0
mov esi, dword [ebp - 0x214]
mov ecx, 0x20
mov edi, 0x6f3798
rep movsd dword es:[edi], dword [esi]
xor cl, cl
call fcn.00518aa0
push 0xb50
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0xb71
call dword [sym.imp.OPENGL32.dll_glEnable]
push 0
call dword [sym.imp.OPENGL32.dll_glDepthMask]
push 0xb44
jmp 0x507e7d
mov eax, dword [ebp - 0x204]
cmp byte [eax + 0x84], 0
je 0x507b61
mov ecx, 0x20
mov byte [0x5ce50a], 1
mov esi, 0x6f3698
lea edi, [ebp - 0x398]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x6f3698
call fcn.004db1f0
mov cl, 1
call fcn.00518aa0
mov ecx, 0x20
lea esi, [ebp - 0x398]
mov edi, 0x6f3698
rep movsd dword es:[edi], dword [esi]
push 0xb60
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0xba1
call dword [sym.imp.OPENGL32.dll_glDisable]
mov eax, dword [ebp - 0x204]
mov byte [0x5ce50a], 0
lea esi, [eax + 0x330]
mov ecx, 0x20
mov edi, 0x6f3698
rep movsd dword es:[edi], dword [esi]
mov cl, 1
call fcn.00518aa0
mov esi, dword [ebp - 0x214]
mov ecx, 0x20
mov edi, 0x6f3798
rep movsd dword es:[edi], dword [esi]
xor cl, cl
call fcn.00518aa0
push 0xb50
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0xb71
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0
call dword [sym.imp.OPENGL32.dll_glDepthMask]
push 0xb44
jmp 0x507e7d
mov esi, dword [ebp - 0x204]
cmp byte [esi + 0x84], 0
je 0x507ce7
mov eax, dword [esi + 0x88]
sub eax, 0
je 0x507bf7
sub eax, 1
je 0x507bed
sub eax, 1
jne 0x507c0a
push ecx
mov dword [esp], 0x45001000
jmp 0x507bff
push ecx
mov dword [esp], 0x45000000
jmp 0x507bff
push ecx
mov dword [esp], 0x46180400
push 0xb65
call dword [sym.imp.OPENGL32.dll_glFogf]
movss xmm0, dword [esi + 0x8c]
push ecx
movss dword [esp], xmm0
push 0xb62
call dword [sym.imp.OPENGL32.dll_glFogf]
movss xmm0, dword [esi + 0x90]
push ecx
movss dword [esp], xmm0
push 0xb63
call dword [sym.imp.OPENGL32.dll_glFogf]
movss xmm0, dword [esi + 0x94]
push ecx
movss dword [esp], xmm0
push 0xb64
call dword [sym.imp.OPENGL32.dll_glFogf]
movzx eax, byte [esi + 0x98]
movss xmm1, dword [0x5b46e0]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, byte [esi + 0x99]
divss xmm0, xmm1
movss dword [ebp - 0x24], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, byte [esi + 0x9a]
divss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, byte [esi + 0x9b]
divss xmm0, xmm1
movss dword [ebp - 0x1c], xmm0
movd xmm0, eax
lea eax, [ebp - 0x24]
cvtdq2ps xmm0, xmm0
push eax
push 0xb66
divss xmm0, xmm1
movss dword [ebp - 0x18], xmm0
call dword [sym.imp.OPENGL32.dll_glFogfv]
push 0xb60
call dword [sym.imp.OPENGL32.dll_glEnable]
push 0xba1
call dword [sym.imp.OPENGL32.dll_glEnable]
mov byte [0x5ce50a], 1
jmp 0x507d46
mov ecx, 0x20
mov byte [0x5ce50a], 1
mov esi, 0x6f3698
lea edi, [ebp - 0x418]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x6f3698
call fcn.004db1f0
mov cl, 1
call fcn.00518aa0
mov ecx, 0x20
lea esi, [ebp - 0x418]
mov edi, 0x6f3698
rep movsd dword es:[edi], dword [esi]
push 0xb60
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0xba1
call dword [sym.imp.OPENGL32.dll_glDisable]
mov esi, dword [ebp - 0x204]
mov byte [0x5ce50a], 0
cmp byte [esi + 0xac], 0
mov ecx, 0x20
mov edi, 0x6f3698
je 0x507d76
add esi, 0x230
rep movsd dword es:[edi], dword [esi]
mov cl, 1
call fcn.00518aa0
mov esi, dword [ebp - 0x204]
add esi, 0x2b0
jmp 0x507d91
add esi, 0xb0
rep movsd dword es:[edi], dword [esi]
mov cl, 1
call fcn.00518aa0
mov esi, dword [ebp - 0x204]
add esi, 0x130
mov ecx, 0x20
mov edi, 0x6f3798
rep movsd dword es:[edi], dword [esi]
xor cl, cl
call fcn.00518aa0
push 0xb71
call dword [sym.imp.OPENGL32.dll_glEnable]
push 1
call dword [sym.imp.OPENGL32.dll_glDepthMask]
push 0x901
call dword [sym.imp.OPENGL32.dll_glFrontFace]
push 0xb44
call dword [sym.imp.OPENGL32.dll_glEnable]
push 0x404
call dword [sym.imp.OPENGL32.dll_glCullFace]
push 0xb50
call dword [sym.imp.OPENGL32.dll_glEnable]
jmp case.default.0x507a24
mov esi, dword [ebp - 0x204]
cmp byte [esi + 0x84], 0
je 0x507dfc
call fcn.00518e60
cmp byte [esi + 0xac], 0
mov ecx, 0x20
mov edi, 0x6f3698
je 0x507e2c
add esi, 0x230
rep movsd dword es:[edi], dword [esi]
mov cl, 1
call fcn.00518aa0
mov esi, dword [ebp - 0x204]
add esi, 0x2b0
jmp 0x507e47
add esi, 0xb0
rep movsd dword es:[edi], dword [esi]
mov cl, 1
call fcn.00518aa0
mov esi, dword [ebp - 0x204]
add esi, 0x130
mov ecx, 0x20
mov edi, 0x6f3798
rep movsd dword es:[edi], dword [esi]
xor cl, cl
call fcn.00518aa0
push 0xb71
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0
call dword [sym.imp.OPENGL32.dll_glDepthMask]
push 0xb44
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0xb50
call dword [sym.imp.OPENGL32.dll_glDisable]
mov edi, dword [ebp - 0x20c]
lea ecx, [edi + 4]
call fcn.004ea7b0
cmp byte [edi + 0x3c], 0
mov ecx, eax
mov esi, dword [ebp - 0x204]
mov dword [ebp - 0x20c], ecx
je 0x507ee0
cmp byte [esi + 0xac], 0
je 0x507ec3
mov eax, dword [ebp - 0x210]
cmp eax, 7
je 0x507ee0
cmp eax, 9
je 0x507ee0
cmp eax, 1
je 0x507ee0
mov eax, dword [edi]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x579378]
mov ecx, edi
call esi
mov esi, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x20c]
mov word [edi + 0x3d], 0x100
mov edi, ecx
mov dword [ebp - 0x20c], ecx
test ecx, ecx
jne 0x5075a0
mov ecx, dword [ebp - 0x208]
cmp ecx, 1
jle 0x507f2a
mov eax, dword [esi + 0x9c]
cdq
idiv ecx
mov esi, dword [ebp + edx*4 - 0x200]
lea ecx, [esi + 4]
call fcn.004ea350
mov ecx, dword [0x6d07d4]
lea edx, [esi + 4]
lea ecx, [ecx + 4]
call fcn.004e9ee0
call dword [sym.imp.OPENGL32.dll_glFlush]
call dword [sym.imp.OPENGL32.dll_glFinish]
push dword [0x5cf13c]
call dword [sym.imp.GDI32.dll_SwapBuffers]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00551170
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret