;Imports of COpenGL:
	extern __cxa_atexit
	extern _ZNSsC1EPKcRKSaIcE
	extern _ZNKSs4findEPKcmm
	extern _ZNSsC1ERKSsmm
	extern _ZNSs6assignERKSs
	extern glGetProgramivARB
	extern glGenProgramsARB
	extern glBindProgramARB
	extern glProgramStringARB
	extern glGetIntegerv
	extern glGetString
	extern sprintf
	extern _ZSt20__throw_out_of_rangePKc
	extern _ZN9__gnu_cxx18__exchange_and_addEPVii
	extern _ZNSs4_Rep10_M_destroyERKSaIcE
	extern _Unwind_Resume
	extern glDeleteProgramsARB
	extern _ZdlPv
	extern glDisable
	extern glBlendFuncSeparateEXT
	extern _ZN14MacOpenGLUtils13IsDepthFormatE10_D3DFORMAT
	extern glPixelStorei
	extern glTexParameteri
	extern _ZN14MacOpenGLUtils12IsCompressedE10_D3DFORMAT
	extern _ZN10MacDisplay10Is1900CardEv
	extern glTexImage2D
	extern _ZN14MacOpenGLUtils19GetLevelSizeInBytesEjjj10_D3DFORMAT
	extern glCompressedTexImage2D
	extern glPushAttrib
	extern glViewport
	extern glBindFramebufferEXT
	extern glDrawBuffer
	extern glReadBuffer
	extern glFramebufferTexture2DEXT
	extern glDepthMask
	extern glClearDepth
	extern glClear
	extern glPopAttrib
	extern x1900ClearData1
	extern x1900ClearData2
	extern _ZN10MacDisplay11GetCardTypeEv
	extern glTexImage3D
	extern glColorMask
	extern glClearColor
	extern glActiveTextureARB
	extern glBindTexture
	extern glCompressedTexImage3D
	extern glTexSubImage2D
	extern glCompressedTexSubImage2D
	extern glTexSubImage3D
	extern glCompressedTexSubImage3D
	extern glPolygonOffset
	extern glEnable
	extern glDeleteBuffersARB
	extern glDeleteTextures
	extern _ZN19COpenGLBufferObject5FlushEjj
	extern glBindBufferARB
	extern glEnableVertexAttribArrayARB
	extern glVertexAttribPointerARB
	extern glDisableVertexAttribArrayARB
	extern _ZN14MacOpenGLUtils22IsGLExtensionSupportedEPKc
	extern glAlphaFunc
	extern glBlendFunc
	extern glColor4f
	extern glDepthFunc
	extern glDepthRange
	extern glClearStencil
	extern _ZN10MacDisplay12IsFullscreenEv
	extern glFogi
	extern glHint
	extern glLightModelfv
	extern glLightModeli
	extern glMatrixMode
	extern glLoadIdentity
	extern glMaterialfv
	extern glMaterialf
	extern glPointSize
	extern glPolygonMode
	extern glShadeModel
	extern _Znwm
	extern _ZN14COpenGLTextureC1Em
	extern glBlendEquationEXT
	extern _ZN14MacOpenGLUtils23GetPCPixelShaderVersionEv
	extern glGenFramebuffersEXT
	extern glGenTextures
	extern glClipPlane
	extern glFinish
	extern _ZN13CMemoryBuffer5ResetEv
	extern glDeleteVertexArraysAPPLE
	extern glDeleteRenderbuffersEXT
	extern glDeleteFramebuffersEXT
	extern _ZNSt15_List_node_base6unhookEv
	extern _ZSt17__throw_bad_allocv
	extern _ZSt20__throw_length_errorPKc
	extern memmove

;Exports of COpenGL:
	global _GLOBAL__I__ZNSt3tr177_GLOBAL__N__AspyrBuild_depot_CoD4_Mac_DirectX_9_COpenGL.cpp_00000000_FC9812DB6ignoreE
	global _ZZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKvE2ft
	global _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc
	global _ZN20COpenGLVertexProgramD0Ev
	global _ZN20COpenGLVertexProgramD1Ev
	global _ZN20COpenGLVertexProgramD2Ev
	global _ZN7COpenGL11SetBlendEXTEbmmmm
	global _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv
	global _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv
	global _ZN7COpenGL16SetActiveTexUnitEj
	global _ZN7COpenGL16SetPolygonOffsetEff
	global _ZN7COpenGL16SetVertexProgramEPK20COpenGLVertexProgram
	global _ZN7COpenGL17ClearCachedVAInfoEv
	global _ZN7COpenGL17ReleaseVBOBindingEbPKm
	global _ZN7COpenGL21ReleaseTextureBindingEPKm
	global _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv
	global _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType
	global _ZN7COpenGL4InitEjj
	global _ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture
	global _ZN7COpenGL8SetBlendEbmm
	global _ZN7COpenGL8ShutdownEv
	global _ZN7COpenGL9SetDitherEb
	global _ZN7COpenGLC1Ev
	global _ZN7COpenGLD0Ev
	global _ZN7COpenGLD1Ev
	global _ZNSt4listIPmSaIS0_EE5eraseESt14_List_iteratorIS0_E
	global _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_
	global _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7_
	global _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_
	global _ZNSt6vectorIP14COpenGLTextureSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7_
	global _ZN7COpenGL7sOpenGLE
	global _ZN7COpenGL11sFrameCountE
	global _ZTV20COpenGLVertexProgram
	global _ZTV7COpenGL


SECTION .text


;global constructors keyed to std::tr1::(anonymous namespace)::ignore
_GLOBAL__I__ZNSt3tr177_GLOBAL__N__AspyrBuild_depot_CoD4_Mac_DirectX_9_COpenGL.cpp_00000000_FC9812DB6ignoreE:
	push ebp
	mov ebp, esp
	mov edx, 0xffff
	mov eax, 0x1
	pop ebp
	jmp _Z41__static_initialization_and_destruction_0ii


;__static_initialization_and_destruction_0(int, int)
_Z41__static_initialization_and_destruction_0ii:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	cmp edx, 0xffff
	jz _Z41__static_initialization_and_destruction_0ii_10
_Z41__static_initialization_and_destruction_0ii_20:
	leave
	ret
_Z41__static_initialization_and_destruction_0ii_10:
	sub eax, 0x1
	jnz _Z41__static_initialization_and_destruction_0ii_20
	mov dword [esp], _ZN7COpenGL7sOpenGLE
	call _ZN7COpenGLC1Ev
	mov eax, [0xd5cc00c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x0
	mov dword [esp], __tcf_0
	call __cxa_atexit
	leave
	ret


;__tcf_0
__tcf_0:
	push ebp
	mov ebp, esp
	mov dword [ebp+0x8], _ZN7COpenGL7sOpenGLE
	pop ebp
	jmp _ZN7COpenGLD1Ev


;COpenGLVertexProgram::COpenGLVertexProgram(CDirect3DDevice*, char const*)
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x44c
	mov eax, [ebp+0x8]
	mov dword [eax], _ZTV20COpenGLVertexProgram+0x8
	mov eax, [ebp+0xc]
	mov edx, [ebp+0x8]
	mov [edx+0x4], eax
	mov eax, [0xd5cc01c]
	mov [ebp-0x43c], eax
	add eax, 0xc
	mov [edx+0x8], eax
	mov [edx+0xc], eax
	lea eax, [ebp-0x1a]
	mov [esp+0x8], eax
	mov eax, [ebp+0x10]
	mov [esp+0x4], eax
	lea ebx, [ebp-0x2c]
	mov [esp], ebx
	call _ZNSsC1EPKcRKSaIcE
	mov dword [esp+0xc], 0x2
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], _cstring_
	mov [esp], ebx
	call _ZNKSs4findEPKcmm
	mov esi, eax
	mov eax, [ebp-0x2c]
	mov eax, [eax-0xc]
	lea edx, [esi+0x2]
	cmp edx, eax
	ja _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_10
	mov [esp+0xc], eax
	mov [esp+0x8], edx
	mov [esp+0x4], ebx
	lea edi, [ebp-0x24]
	mov [esp], edi
	call _ZNSsC1ERKSsmm
	mov eax, [ebp+0x8]
	add eax, 0xc
	mov [esp+0x4], edi
	mov [esp], eax
	call _ZNSs6assignERKSs
	mov eax, [ebp-0x24]
	lea edi, [eax-0xc]
	cmp [ebp-0x43c], edi
	jnz _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_20
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_80:
	mov [esp+0xc], esi
	mov dword [esp+0x8], 0x0
	mov [esp+0x4], ebx
	lea edi, [ebp-0x28]
	mov [esp], edi
	call _ZNSsC1ERKSsmm
	mov eax, [ebp+0x8]
	add eax, 0x8
	mov [esp+0x4], edi
	mov [esp], eax
	call _ZNSs6assignERKSs
	mov eax, [ebp-0x28]
	lea edi, [eax-0xc]
	cmp [ebp-0x43c], edi
	jnz _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_30
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_70:
	lea eax, [ebp-0x30]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x8677
	mov dword [esp], 0x8620
	call glGetProgramivARB
	lea eax, [ebp-0x34]
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call glGenProgramsARB
	mov eax, [ebp-0x34]
	mov edx, [ebp+0x8]
	mov [edx+0x10], eax
	mov [esp+0x4], eax
	mov dword [esp], 0x8620
	call glBindProgramARB
	mov eax, [ebp+0x8]
	mov edi, [eax+0xc]
	mov [esp+0xc], edi
	cld
	mov ecx, 0xffffffff
	xor eax, eax
	repne scasb
	not ecx
	sub ecx, 0x1
	mov [esp+0x8], ecx
	mov dword [esp+0x4], 0x8875
	mov dword [esp], 0x8620
	call glProgramStringARB
	lea eax, [ebp-0x38]
	mov [esp+0x4], eax
	mov dword [esp], 0x864b
	call glGetIntegerv
	cmp dword [ebp-0x38], 0xffffffff
	jz _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_40
	mov dword [esp], 0x8874
	call glGetString
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_s
	lea eax, [ebp-0x438]
	mov [esp], eax
	call sprintf
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_40:
	mov eax, [ebp-0x30]
	mov [esp+0x4], eax
	mov dword [esp], 0x8620
	call glBindProgramARB
	mov edi, [ebp-0x2c]
	sub edi, 0xc
	cmp [ebp-0x43c], edi
	jnz _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_50
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_60:
	add esp, 0x44c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_10:
	mov dword [esp], _cstring_basic_stringsubs
	call _ZSt20__throw_out_of_rangePKc
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_50:
	lea eax, [edi+0x8]
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_60
	lea eax, [ebp-0x1b]
	mov [esp+0x4], eax
	mov [esp], edi
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_60
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_30:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_70
	lea eax, [ebp-0x1c]
	mov [esp+0x4], eax
	mov [esp], edi
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_70
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_20:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_80
	lea eax, [ebp-0x1d]
	mov [esp+0x4], eax
	mov [esp], edi
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_80
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_130:
	mov esi, eax
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_110:
	mov edx, [ebp+0x8]
	mov eax, [edx+0xc]
	lea ebx, [eax-0xc]
	cmp [ebp-0x43c], ebx
	jnz _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_90
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_160:
	mov eax, [ebp+0x8]
	mov ebx, [eax+0x8]
	sub ebx, 0xc
	cmp [ebp-0x43c], ebx
	jnz _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_100
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_150:
	mov [esp], esi
	call _Unwind_Resume
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_140:
	mov esi, eax
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_120:
	mov eax, [ebp-0x2c]
	lea ebx, [eax-0xc]
	cmp [ebp-0x43c], ebx
	jz _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_110
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_110
	lea eax, [ebp-0x1b]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_110
	mov esi, eax
	mov eax, [ebp-0x28]
	lea ebx, [eax-0xc]
	cmp [ebp-0x43c], ebx
	jz _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_120
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_120
	lea eax, [ebp-0x1c]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_120
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_130
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_140
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_100:
	lea eax, [ebx+0x8]
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_150
	lea eax, [ebp-0x19]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_150
_ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_90:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_160
	lea eax, [ebp-0x1e]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_160
	mov esi, eax
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_150
	mov esi, eax
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_160
	mov esi, eax
	mov eax, [ebp-0x24]
	lea ebx, [eax-0xc]
	cmp [ebp-0x43c], ebx
	jz _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_120
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_120
	lea eax, [ebp-0x1d]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_120
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_140
	jmp _ZN20COpenGLVertexProgramC2EP15CDirect3DDevicePKc_140
	nop
	add [eax], al


;COpenGLVertexProgram::~COpenGLVertexProgram()
_ZN20COpenGLVertexProgramD0Ev:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov ebx, [ebp+0x8]
	mov dword [ebx], _ZTV20COpenGLVertexProgram+0x8
	mov eax, [ebx+0x10]
	mov [ebp-0x20], eax
	cmp eax, [_ZN7COpenGL7sOpenGLE+0xe0]
	jz _ZN20COpenGLVertexProgramD0Ev_10
_ZN20COpenGLVertexProgramD0Ev_40:
	lea eax, [ebp-0x20]
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call glDeleteProgramsARB
	mov eax, [ebx+0x4]
	mov byte [eax+0x440], 0x1
	mov eax, [ebx+0x4]
	mov byte [eax+0x441], 0x1
	mov edx, [ebx+0x4]
	mov ecx, [edx+0x2d4]
	mov eax, 0x1
	shl eax, cl
	sub eax, 0x1
	mov [edx+0x444], eax
	mov eax, [ebx+0xc]
	lea esi, [eax-0xc]
	mov edi, [0xd5cc01c]
	cmp esi, edi
	jnz _ZN20COpenGLVertexProgramD0Ev_20
_ZN20COpenGLVertexProgramD0Ev_50:
	mov eax, [ebx+0x8]
	lea esi, [eax-0xc]
	cmp edi, esi
	jnz _ZN20COpenGLVertexProgramD0Ev_30
_ZN20COpenGLVertexProgramD0Ev_60:
	mov [esp], ebx
	call _ZdlPv
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN20COpenGLVertexProgramD0Ev_10:
	mov dword [_ZN7COpenGL7sOpenGLE+0xe0], 0x0
	cmp byte [_ZN7COpenGL7sOpenGLE+0xed], 0x0
	jz _ZN20COpenGLVertexProgramD0Ev_40
	mov byte [_ZN7COpenGL7sOpenGLE+0xed], 0x0
	mov dword [esp], 0x8620
	call glDisable
	jmp _ZN20COpenGLVertexProgramD0Ev_40
_ZN20COpenGLVertexProgramD0Ev_20:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD0Ev_50
	lea eax, [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], esi
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD0Ev_50
_ZN20COpenGLVertexProgramD0Ev_30:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD0Ev_60
	lea eax, [ebp-0x19]
	mov [esp+0x4], eax
	mov [esp], esi
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD0Ev_60
	mov esi, eax
	mov eax, [ebx+0xc]
	lea edi, [eax-0xc]
	mov edx, [0xd5cc01c]
	mov [ebp-0x2c], edx
	cmp edi, edx
	jnz _ZN20COpenGLVertexProgramD0Ev_70
_ZN20COpenGLVertexProgramD0Ev_90:
	mov eax, [ebx+0x8]
	lea ebx, [eax-0xc]
	cmp ebx, [ebp-0x2c]
	jnz _ZN20COpenGLVertexProgramD0Ev_80
_ZN20COpenGLVertexProgramD0Ev_100:
	mov [esp], esi
	call _Unwind_Resume
	mov esi, eax
	mov edx, [0xd5cc01c]
	mov [ebp-0x2c], edx
	jmp _ZN20COpenGLVertexProgramD0Ev_90
	mov esi, eax
	jmp _ZN20COpenGLVertexProgramD0Ev_100
_ZN20COpenGLVertexProgramD0Ev_80:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD0Ev_100
	lea eax, [ebp-0x19]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD0Ev_100
_ZN20COpenGLVertexProgramD0Ev_70:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD0Ev_90
	lea eax, [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], edi
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD0Ev_90
	mov esi, eax
	mov eax, [0xd5cc01c]
	mov [ebp-0x2c], eax
	jmp _ZN20COpenGLVertexProgramD0Ev_90
	add [eax], al


;COpenGLVertexProgram::~COpenGLVertexProgram()
_ZN20COpenGLVertexProgramD1Ev:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov ebx, [ebp+0x8]
	mov dword [ebx], _ZTV20COpenGLVertexProgram+0x8
	mov eax, [ebx+0x10]
	mov [ebp-0x20], eax
	cmp eax, [_ZN7COpenGL7sOpenGLE+0xe0]
	jz _ZN20COpenGLVertexProgramD1Ev_10
_ZN20COpenGLVertexProgramD1Ev_40:
	lea eax, [ebp-0x20]
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call glDeleteProgramsARB
	mov eax, [ebx+0x4]
	mov byte [eax+0x440], 0x1
	mov eax, [ebx+0x4]
	mov byte [eax+0x441], 0x1
	mov edx, [ebx+0x4]
	mov ecx, [edx+0x2d4]
	mov eax, 0x1
	shl eax, cl
	sub eax, 0x1
	mov [edx+0x444], eax
	mov eax, [ebx+0xc]
	lea esi, [eax-0xc]
	mov edi, [0xd5cc01c]
	cmp esi, edi
	jnz _ZN20COpenGLVertexProgramD1Ev_20
_ZN20COpenGLVertexProgramD1Ev_50:
	mov eax, [ebx+0x8]
	lea ebx, [eax-0xc]
	cmp edi, ebx
	jnz _ZN20COpenGLVertexProgramD1Ev_30
_ZN20COpenGLVertexProgramD1Ev_60:
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN20COpenGLVertexProgramD1Ev_10:
	mov dword [_ZN7COpenGL7sOpenGLE+0xe0], 0x0
	cmp byte [_ZN7COpenGL7sOpenGLE+0xed], 0x0
	jz _ZN20COpenGLVertexProgramD1Ev_40
	mov byte [_ZN7COpenGL7sOpenGLE+0xed], 0x0
	mov dword [esp], 0x8620
	call glDisable
	jmp _ZN20COpenGLVertexProgramD1Ev_40
_ZN20COpenGLVertexProgramD1Ev_20:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD1Ev_50
	lea eax, [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], esi
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD1Ev_50
_ZN20COpenGLVertexProgramD1Ev_30:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD1Ev_60
	lea eax, [ebp-0x19]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD1Ev_60
	mov esi, eax
	mov eax, [ebx+0xc]
	lea edi, [eax-0xc]
	mov edx, [0xd5cc01c]
	mov [ebp-0x2c], edx
	cmp edi, edx
	jnz _ZN20COpenGLVertexProgramD1Ev_70
_ZN20COpenGLVertexProgramD1Ev_90:
	mov eax, [ebx+0x8]
	lea ebx, [eax-0xc]
	cmp ebx, [ebp-0x2c]
	jnz _ZN20COpenGLVertexProgramD1Ev_80
_ZN20COpenGLVertexProgramD1Ev_100:
	mov [esp], esi
	call _Unwind_Resume
	mov esi, eax
	mov edx, [0xd5cc01c]
	mov [ebp-0x2c], edx
	jmp _ZN20COpenGLVertexProgramD1Ev_90
	mov esi, eax
	jmp _ZN20COpenGLVertexProgramD1Ev_100
_ZN20COpenGLVertexProgramD1Ev_80:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD1Ev_100
	lea eax, [ebp-0x19]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD1Ev_100
_ZN20COpenGLVertexProgramD1Ev_70:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD1Ev_90
	lea eax, [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], edi
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD1Ev_90
	mov esi, eax
	mov eax, [0xd5cc01c]
	mov [ebp-0x2c], eax
	jmp _ZN20COpenGLVertexProgramD1Ev_90
	nop


;COpenGLVertexProgram::~COpenGLVertexProgram()
_ZN20COpenGLVertexProgramD2Ev:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov ebx, [ebp+0x8]
	mov dword [ebx], _ZTV20COpenGLVertexProgram+0x8
	mov eax, [ebx+0x10]
	mov [ebp-0x20], eax
	cmp eax, [_ZN7COpenGL7sOpenGLE+0xe0]
	jz _ZN20COpenGLVertexProgramD2Ev_10
_ZN20COpenGLVertexProgramD2Ev_40:
	lea eax, [ebp-0x20]
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call glDeleteProgramsARB
	mov eax, [ebx+0x4]
	mov byte [eax+0x440], 0x1
	mov eax, [ebx+0x4]
	mov byte [eax+0x441], 0x1
	mov edx, [ebx+0x4]
	mov ecx, [edx+0x2d4]
	mov eax, 0x1
	shl eax, cl
	sub eax, 0x1
	mov [edx+0x444], eax
	mov eax, [ebx+0xc]
	lea esi, [eax-0xc]
	mov edi, [0xd5cc01c]
	cmp esi, edi
	jnz _ZN20COpenGLVertexProgramD2Ev_20
_ZN20COpenGLVertexProgramD2Ev_50:
	mov eax, [ebx+0x8]
	lea ebx, [eax-0xc]
	cmp edi, ebx
	jnz _ZN20COpenGLVertexProgramD2Ev_30
_ZN20COpenGLVertexProgramD2Ev_60:
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN20COpenGLVertexProgramD2Ev_10:
	mov dword [_ZN7COpenGL7sOpenGLE+0xe0], 0x0
	cmp byte [_ZN7COpenGL7sOpenGLE+0xed], 0x0
	jz _ZN20COpenGLVertexProgramD2Ev_40
	mov byte [_ZN7COpenGL7sOpenGLE+0xed], 0x0
	mov dword [esp], 0x8620
	call glDisable
	jmp _ZN20COpenGLVertexProgramD2Ev_40
_ZN20COpenGLVertexProgramD2Ev_20:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD2Ev_50
	lea eax, [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], esi
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD2Ev_50
_ZN20COpenGLVertexProgramD2Ev_30:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD2Ev_60
	lea eax, [ebp-0x19]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD2Ev_60
	mov esi, eax
	mov eax, [ebx+0xc]
	lea edi, [eax-0xc]
	mov edx, [0xd5cc01c]
	mov [ebp-0x2c], edx
	cmp edi, edx
	jnz _ZN20COpenGLVertexProgramD2Ev_70
_ZN20COpenGLVertexProgramD2Ev_90:
	mov eax, [ebx+0x8]
	lea ebx, [eax-0xc]
	cmp ebx, [ebp-0x2c]
	jnz _ZN20COpenGLVertexProgramD2Ev_80
_ZN20COpenGLVertexProgramD2Ev_100:
	mov [esp], esi
	call _Unwind_Resume
	mov esi, eax
	mov edx, [0xd5cc01c]
	mov [ebp-0x2c], edx
	jmp _ZN20COpenGLVertexProgramD2Ev_90
	mov esi, eax
	jmp _ZN20COpenGLVertexProgramD2Ev_100
_ZN20COpenGLVertexProgramD2Ev_80:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD2Ev_100
	lea eax, [ebp-0x19]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD2Ev_100
_ZN20COpenGLVertexProgramD2Ev_70:
	sub eax, 0x4
	mov dword [esp+0x4], 0xffffffff
	mov [esp], eax
	call _ZN9__gnu_cxx18__exchange_and_addEPVii
	test eax, eax
	jg _ZN20COpenGLVertexProgramD2Ev_90
	lea eax, [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], edi
	call _ZNSs4_Rep10_M_destroyERKSaIcE
	jmp _ZN20COpenGLVertexProgramD2Ev_90
	mov esi, eax
	mov eax, [0xd5cc01c]
	mov [ebp-0x2c], eax
	jmp _ZN20COpenGLVertexProgramD2Ev_90
	nop


;COpenGL::SetBlendEXT(bool, unsigned long, unsigned long, unsigned long, unsigned long)
_ZN7COpenGL11SetBlendEXTEbmmmm:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	mov eax, [ebp+0x8]
	mov ebx, [ebp+0x10]
	mov esi, [ebp+0x14]
	mov ecx, [ebp+0x18]
	mov edx, [ebp+0x1c]
	cmp byte [ebp+0xc], 0x0
	jnz _ZN7COpenGL11SetBlendEXTEbmmmm_10
	cmp ebx, [eax+0x108]
	jz _ZN7COpenGL11SetBlendEXTEbmmmm_20
_ZN7COpenGL11SetBlendEXTEbmmmm_10:
	mov [eax+0x108], ebx
	mov [eax+0x10c], esi
	mov [eax+0x110], ecx
	mov [eax+0x114], edx
	mov [ebp+0x14], edx
	mov [ebp+0x10], ecx
	mov [ebp+0xc], esi
	mov [ebp+0x8], ebx
	pop ebx
	pop esi
	pop ebp
	jmp glBlendFuncSeparateEXT
_ZN7COpenGL11SetBlendEXTEbmmmm_20:
	cmp esi, [eax+0x10c]
	jnz _ZN7COpenGL11SetBlendEXTEbmmmm_10
	cmp ecx, [eax+0x110]
	jnz _ZN7COpenGL11SetBlendEXTEbmmmm_10
	cmp edx, [eax+0x114]
	jnz _ZN7COpenGL11SetBlendEXTEbmmmm_10
	pop ebx
	pop esi
	pop ebp
	ret


;COpenGL::LoadTexImage(_D3DFORMAT, unsigned int, unsigned int, unsigned int, unsigned long, long, unsigned long, unsigned long, unsigned long, void const*)
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4c
	mov ebx, [ebp+0xc]
	mov edi, [ebp+0x1c]
	mov [esp], ebx
	call _ZN14MacOpenGLUtils13IsDepthFormatE10_D3DFORMAT
	mov esi, eax
	test al, al
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_10
	mov eax, [ebp+0x30]
	test eax, eax
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_10
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0x85b2
	call glPixelStorei
	mov eax, [ebp+0x8]
	cmp byte [eax+0x105], 0x1
	sbb eax, eax
	add eax, 0x85bf
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x85bc
	mov [esp], edi
	call glTexParameteri
	test byte [ebp+0x30], 0x7
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_20
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_80:
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0xcf5
	call glPixelStorei
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_70:
	mov [esp], ebx
	call _ZN14MacOpenGLUtils12IsCompressedE10_D3DFORMAT
	test al, al
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_30
	cmp dword [ebp+0x10], 0x3
	ja _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_40
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_120:
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x85b2
	call glPixelStorei
	mov dword [esp+0x8], 0x85bd
	mov dword [esp+0x4], 0x85bc
	mov [esp], edi
	call glTexParameteri
	mov edx, esi
	test dl, dl
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_50
	mov ecx, [ebp+0x30]
	test ecx, ecx
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_60
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_10:
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x85b2
	call glPixelStorei
	mov dword [esp+0x8], 0x85bd
	mov dword [esp+0x4], 0x85bc
	mov [esp], edi
	call glTexParameteri
	mov eax, [ebp+0x30]
	test eax, eax
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_70
	test byte [ebp+0x30], 0x7
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_80
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_20
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_30:
	cmp edi, 0x806f
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_90
	mov eax, esi
	test al, al
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_100
	call _ZN10MacDisplay10Is1900CardEv
	test al, al
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_110
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_100:
	mov edx, [ebp+0x30]
	mov [esp+0x20], edx
	mov eax, [ebp+0x2c]
	mov [esp+0x1c], eax
	mov edx, [ebp+0x24]
	mov [esp+0x18], edx
	mov dword [esp+0x14], 0x0
	mov eax, [ebp+0x14]
	mov [esp+0x10], eax
	mov edx, [ebp+0x10]
	mov [esp+0xc], edx
	mov eax, [ebp+0x28]
	mov [esp+0x8], eax
	mov edx, [ebp+0x20]
	mov [esp+0x4], edx
	mov [esp], edi
	call glTexImage2D
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_120
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_20:
	mov dword [esp+0x4], 0x8
	mov dword [esp], 0xcf5
	call glPixelStorei
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_70
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_40:
	cmp dword [ebp+0x14], 0x3
	jbe _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_120
	mov [esp+0xc], ebx
	mov edx, [ebp+0x18]
	mov [esp+0x8], edx
	mov eax, [ebp+0x14]
	mov [esp+0x4], eax
	mov edx, [ebp+0x10]
	mov [esp], edx
	call _ZN14MacOpenGLUtils19GetLevelSizeInBytesEjjj10_D3DFORMAT
	cmp edi, 0x806f
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_130
	mov edx, [ebp+0x30]
	mov [esp+0x1c], edx
	mov [esp+0x18], eax
	mov dword [esp+0x14], 0x0
	mov eax, [ebp+0x14]
	mov [esp+0x10], eax
	mov edx, [ebp+0x10]
	mov [esp+0xc], edx
	mov eax, [ebp+0x28]
	mov [esp+0x8], eax
	mov edx, [ebp+0x20]
	mov [esp+0x4], edx
	mov [esp], edi
	call glCompressedTexImage2D
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_120
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_50:
	mov dword [esp], 0xfffff
	call glPushAttrib
	mov eax, [ebp+0x14]
	mov [esp+0xc], eax
	mov edx, [ebp+0x10]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x0
	call glViewport
	mov dword [esp], 0xc11
	call glDisable
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0x8d40
	call glBindFramebufferEXT
	mov dword [esp], 0x0
	call glDrawBuffer
	mov dword [esp], 0x0
	call glReadBuffer
	lea eax, [ebp-0x1c]
	mov [esp+0x4], eax
	mov dword [esp], 0x8069
	call glGetIntegerv
	mov dword [esp+0x10], 0x0
	mov eax, [ebp-0x1c]
	mov [esp+0xc], eax
	mov dword [esp+0x8], 0xde1
	mov dword [esp+0x4], 0x8d00
	mov dword [esp], 0x8d40
	call glFramebufferTexture2DEXT
	mov eax, [ebp-0x1c]
	mov edx, [ebp+0x8]
	mov [edx+0x89c], eax
	mov dword [esp], 0x1
	call glDepthMask
	mov dword [esp], 0x0
	mov dword [esp+0x4], 0x3ff00000
	call glClearDepth
	mov dword [esp], 0x100
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_210:
	call glClear
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x8d40
	call glBindFramebufferEXT
	call glPopAttrib
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_110:
	cmp dword [ebp+0x14], 0x400
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_100
	cmp dword [ebp+0x10], 0x200
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_140
	cmp dword [ebp+0x10], 0x100
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_100
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_140:
	mov ebx, [_ZZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKvE2ft]
	test ebx, ebx
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_150
	mov dword [_ZZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKvE2ft], 0x0
	mov eax, x1900ClearData1
	lea edx, [eax+0x100000]
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_160:
	mov word [eax], 0xffff
	add eax, 0x2
	cmp edx, eax
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_160
	mov eax, x1900ClearData2
	lea edx, [eax+0x100000]
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_170:
	mov word [eax], 0xffff
	add eax, 0x2
	cmp eax, edx
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_170
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_150:
	cmp dword [ebp+0x10], 0x200
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_180
	mov ebx, x1900ClearData2
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_250:
	test bl, 0x7
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_190
	mov dword [esp+0x4], 0x8
	mov dword [esp], 0xcf5
	call glPixelStorei
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_240:
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0x85b2
	call glPixelStorei
	mov dword [esp+0x8], 0x85bf
	mov dword [esp+0x4], 0x85bc
	mov [esp], edi
	call glTexParameteri
	mov [esp+0x20], ebx
	mov dword [esp+0x1c], 0x1403
	mov dword [esp+0x18], 0x1902
	mov dword [esp+0x14], 0x0
	mov dword [esp+0x10], 0x400
	mov eax, [ebp+0x10]
	mov [esp+0xc], eax
	mov dword [esp+0x8], 0x81a5
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0xde1
	call glTexImage2D
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_120
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_90:
	call _ZN10MacDisplay11GetCardTypeEv
	cmp eax, 0x2
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_200
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_220:
	mov eax, [ebp+0x30]
	mov [esp+0x24], eax
	mov edx, [ebp+0x2c]
	mov [esp+0x20], edx
	mov eax, [ebp+0x24]
	mov [esp+0x1c], eax
	mov dword [esp+0x18], 0x0
	mov edx, [ebp+0x18]
	mov [esp+0x14], edx
	mov eax, [ebp+0x14]
	mov [esp+0x10], eax
	mov edx, [ebp+0x10]
	mov [esp+0xc], edx
	mov eax, [ebp+0x28]
	mov [esp+0x8], eax
	mov edx, [ebp+0x20]
	mov [esp+0x4], edx
	mov dword [esp], 0x806f
	call glTexImage3D
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_120
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_60:
	mov dword [esp], 0xfffff
	call glPushAttrib
	mov eax, [ebp+0x14]
	mov [esp+0xc], eax
	mov edx, [ebp+0x10]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x0
	call glViewport
	mov dword [esp], 0xc11
	call glDisable
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0x8d40
	call glBindFramebufferEXT
	lea eax, [ebp-0x1c]
	mov [esp+0x4], eax
	mov dword [esp], 0x8069
	call glGetIntegerv
	mov dword [esp+0x10], 0x0
	mov eax, [ebp-0x1c]
	mov [esp+0xc], eax
	mov dword [esp+0x8], 0xde1
	mov dword [esp+0x4], 0x8ce0
	mov dword [esp], 0x8d40
	call glFramebufferTexture2DEXT
	mov eax, [ebp-0x1c]
	mov edx, [ebp+0x8]
	mov [edx+0x8b4], eax
	mov dword [esp+0xc], 0x1
	mov dword [esp+0x8], 0x1
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0x1
	call glColorMask
	mov dword [esp+0xc], 0x3f800000
	xor eax, eax
	mov [esp+0x8], eax
	mov [esp+0x4], eax
	mov [esp], eax
	call glClearColor
	mov dword [esp], 0x4000
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_210
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_200:
	cmp dword [ebp+0x10], 0x100
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_220
	cmp dword [ebp+0x14], 0x100
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_220
	cmp dword [ebp+0x18], 0x4
	jnz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_220
	mov eax, [ebp+0x8]
	mov ebx, [eax+0x4]
	cmp ebx, 0xf
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_230
	mov dword [eax+0x4], 0xf
	mov dword [esp], 0x84cf
	call glActiveTextureARB
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_230:
	mov edx, [ebp+0x8]
	mov eax, [edx+0x8b8]
	mov [esp+0x4], eax
	mov dword [esp], 0xde1
	call glBindTexture
	mov dword [esp+0x8], 0x812f
	mov dword [esp+0x4], 0x2802
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x812f
	mov dword [esp+0x4], 0x2803
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x2601
	mov dword [esp+0x4], 0x2801
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x2601
	mov dword [esp+0x4], 0x2800
	mov dword [esp], 0xde1
	call glTexParameteri
	mov eax, [ebp+0x30]
	mov [esp+0x20], eax
	mov edx, [ebp+0x2c]
	mov [esp+0x1c], edx
	mov eax, [ebp+0x24]
	mov [esp+0x18], eax
	mov dword [esp+0x14], 0x0
	mov dword [esp+0x10], 0x400
	mov dword [esp+0xc], 0x100
	mov edx, [ebp+0x28]
	mov [esp+0x8], edx
	mov eax, [ebp+0x20]
	mov [esp+0x4], eax
	mov dword [esp], 0xde1
	call glTexImage2D
	mov edx, [ebp+0x8]
	cmp ebx, [edx+0x4]
	jz _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_120
	mov [edx+0x4], ebx
	lea eax, [ebx+0x84c0]
	mov [esp], eax
	call glActiveTextureARB
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_120
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_130:
	mov edx, [ebp+0x30]
	mov [esp+0x20], edx
	mov [esp+0x1c], eax
	mov dword [esp+0x18], 0x0
	mov eax, [ebp+0x18]
	mov [esp+0x14], eax
	mov edx, [ebp+0x14]
	mov [esp+0x10], edx
	mov eax, [ebp+0x10]
	mov [esp+0xc], eax
	mov edx, [ebp+0x28]
	mov [esp+0x8], edx
	mov eax, [ebp+0x20]
	mov [esp+0x4], eax
	mov dword [esp], 0x806f
	call glCompressedTexImage3D
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_120
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_190:
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0xcf5
	call glPixelStorei
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_240
_ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_180:
	mov ebx, x1900ClearData1
	jmp _ZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKv_250


;COpenGL::UpdateTexImage(_D3DFORMAT, unsigned int, unsigned int, unsigned int, unsigned long, long, unsigned long, unsigned long, unsigned long, void const*)
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x5c
	mov eax, [ebp+0x8]
	mov [ebp-0x1c], eax
	mov edx, [ebp+0xc]
	mov [ebp-0x20], edx
	mov ebx, [ebp+0x10]
	mov esi, [ebp+0x14]
	mov eax, [ebp+0x18]
	mov [ebp-0x24], eax
	mov edi, [ebp+0x1c]
	mov edx, [ebp+0x20]
	mov [ebp-0x28], edx
	mov eax, [ebp+0x24]
	mov [ebp-0x2c], eax
	mov edx, [ebp+0x28]
	mov [ebp-0x30], edx
	mov eax, [ebp+0x2c]
	mov [ebp-0x34], eax
	mov edx, [ebp+0x30]
	mov [ebp-0x38], edx
	and dl, 0x7
	jnz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_10
	mov dword [esp+0x4], 0x8
	mov dword [esp], 0xcf5
	call glPixelStorei
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _ZN14MacOpenGLUtils12IsCompressedE10_D3DFORMAT
	test al, al
	jz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_20
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_50:
	cmp ebx, 0x3
	jbe _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_30
	cmp esi, 0x3
	ja _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_40
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_30:
	add esp, 0x5c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_10:
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0xcf5
	call glPixelStorei
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _ZN14MacOpenGLUtils12IsCompressedE10_D3DFORMAT
	test al, al
	jnz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_50
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_20:
	cmp edi, 0x806f
	jz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_60
	mov eax, [ebp-0x38]
	mov [ebp+0x28], eax
	mov edx, [ebp-0x34]
	mov [ebp+0x24], edx
	mov eax, [ebp-0x2c]
	mov [ebp+0x20], eax
	mov [ebp+0x1c], esi
	mov [ebp+0x18], ebx
	mov dword [ebp+0x14], 0x0
	mov dword [ebp+0x10], 0x0
	mov edx, [ebp-0x28]
	mov [ebp+0xc], edx
	mov [ebp+0x8], edi
	add esp, 0x5c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp glTexSubImage2D
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_40:
	mov edx, [ebp-0x20]
	mov [esp+0xc], edx
	mov eax, [ebp-0x24]
	mov [esp+0x8], eax
	mov [esp+0x4], esi
	mov [esp], ebx
	call _ZN14MacOpenGLUtils19GetLevelSizeInBytesEjjj10_D3DFORMAT
	cmp edi, 0x806f
	jz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_70
	mov edx, [ebp-0x38]
	mov [ebp+0x28], edx
	mov [ebp+0x24], eax
	mov eax, [ebp-0x30]
	mov [ebp+0x20], eax
	mov [ebp+0x1c], esi
	mov [ebp+0x18], ebx
	mov dword [ebp+0x14], 0x0
	mov dword [ebp+0x10], 0x0
	mov edx, [ebp-0x28]
	mov [ebp+0xc], edx
	mov [ebp+0x8], edi
	add esp, 0x5c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp glCompressedTexSubImage2D
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_60:
	call _ZN10MacDisplay11GetCardTypeEv
	cmp eax, 0x2
	jnz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_80
	cmp ebx, 0x100
	jz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_90
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_80:
	mov eax, [ebp-0x38]
	mov [ebp+0x30], eax
	mov edx, [ebp-0x34]
	mov [ebp+0x2c], edx
	mov eax, [ebp-0x2c]
	mov [ebp+0x28], eax
	mov edx, [ebp-0x24]
	mov [ebp+0x24], edx
	mov [ebp+0x20], esi
	mov [ebp+0x1c], ebx
	mov dword [ebp+0x18], 0x0
	mov dword [ebp+0x14], 0x0
	mov dword [ebp+0x10], 0x0
	mov eax, [ebp-0x28]
	mov [ebp+0xc], eax
	mov dword [ebp+0x8], 0x806f
	add esp, 0x5c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp glTexSubImage3D
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_70:
	mov edx, [ebp-0x38]
	mov [ebp+0x30], edx
	mov [ebp+0x2c], eax
	mov eax, [ebp-0x30]
	mov [ebp+0x28], eax
	mov edx, [ebp-0x24]
	mov [ebp+0x24], edx
	mov [ebp+0x20], esi
	mov [ebp+0x1c], ebx
	mov dword [ebp+0x18], 0x0
	mov dword [ebp+0x14], 0x0
	mov dword [ebp+0x10], 0x0
	mov eax, [ebp-0x28]
	mov [ebp+0xc], eax
	mov dword [ebp+0x8], 0x806f
	add esp, 0x5c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp glCompressedTexSubImage3D
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_90:
	cmp esi, 0x100
	jnz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_80
	cmp dword [ebp-0x24], 0x4
	jnz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_80
	mov eax, [ebp-0x1c]
	mov ebx, [eax+0x4]
	cmp ebx, 0xf
	jnz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_100
	mov edx, eax
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_110:
	mov eax, [edx+0x8b8]
	mov [esp+0x4], eax
	mov dword [esp], 0xde1
	call glBindTexture
	mov dword [esp+0x8], 0x812f
	mov dword [esp+0x4], 0x2802
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x812f
	mov dword [esp+0x4], 0x2803
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x2601
	mov dword [esp+0x4], 0x2801
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x2601
	mov dword [esp+0x4], 0x2800
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x813d
	mov dword [esp], 0xde1
	call glTexParameteri
	mov eax, [ebp-0x38]
	mov [esp+0x20], eax
	mov edx, [ebp-0x34]
	mov [esp+0x1c], edx
	mov eax, [ebp-0x2c]
	mov [esp+0x18], eax
	mov dword [esp+0x14], 0x400
	mov dword [esp+0x10], 0x100
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0xde1
	call glTexSubImage2D
	mov edx, [ebp-0x1c]
	cmp ebx, [edx+0x4]
	jz _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_30
	mov [edx+0x4], ebx
	lea eax, [ebx+0x84c0]
	mov [ebp+0x8], eax
	add esp, 0x5c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp glActiveTextureARB
_ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_100:
	mov dword [eax+0x4], 0xf
	mov dword [esp], 0x84cf
	call glActiveTextureARB
	mov edx, [ebp-0x1c]
	jmp _ZN7COpenGL14UpdateTexImageE10_D3DFORMATjjjmlmmmPKv_110


;COpenGL::SetActiveTexUnit(unsigned int)
_ZN7COpenGL16SetActiveTexUnitEj:
	push ebp
	mov ebp, esp
	mov edx, [ebp+0x8]
	mov eax, [ebp+0xc]
	cmp [edx+0x4], eax
	jz _ZN7COpenGL16SetActiveTexUnitEj_10
	mov [edx+0x4], eax
	add eax, 0x84c0
	mov [ebp+0x8], eax
	pop ebp
	jmp glActiveTextureARB
_ZN7COpenGL16SetActiveTexUnitEj_10:
	pop ebp
	ret
	nop


;COpenGL::SetPolygonOffset(float, float)
_ZN7COpenGL16SetPolygonOffsetEff:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x24
	mov ebx, [ebp+0x8]
	movss xmm0, dword [ebp+0xc]
	subss xmm0, [ebx+0xf0]
	movss xmm1, dword [_data16_7fffffff]
	andps xmm0, xmm1
	ucomiss xmm0, [_float_0_00000012]
	ja _ZN7COpenGL16SetPolygonOffsetEff_10
	movss xmm0, dword [ebp+0x10]
	subss xmm0, [ebx+0xf4]
	andps xmm0, xmm1
	ucomiss xmm0, [_float_0_00000012]
	jbe _ZN7COpenGL16SetPolygonOffsetEff_20
_ZN7COpenGL16SetPolygonOffsetEff_10:
	movss xmm0, dword [ebp+0x10]
	movss [esp+0x4], xmm0
	movss xmm0, dword [ebp+0xc]
	movss [esp], xmm0
	movaps [ebp-0x18], xmm1
	call glPolygonOffset
	movaps xmm1, [ebp-0x18]
	movss xmm0, dword [ebp+0x10]
	andps xmm0, xmm1
	ucomiss xmm0, [_float_0_00000012]
	ja _ZN7COpenGL16SetPolygonOffsetEff_30
	movss xmm0, dword [ebp+0xc]
	andps xmm0, xmm1
	ucomiss xmm0, [_float_0_00000012]
	jbe _ZN7COpenGL16SetPolygonOffsetEff_40
_ZN7COpenGL16SetPolygonOffsetEff_30:
	mov dword [esp], 0x8037
	call glEnable
_ZN7COpenGL16SetPolygonOffsetEff_50:
	movss xmm0, dword [ebp+0xc]
	movss [ebx+0xf0], xmm0
	movss xmm0, dword [ebp+0x10]
	movss [ebx+0xf4], xmm0
_ZN7COpenGL16SetPolygonOffsetEff_20:
	add esp, 0x24
	pop ebx
	pop ebp
	ret
_ZN7COpenGL16SetPolygonOffsetEff_40:
	mov dword [esp], 0x8037
	call glDisable
	jmp _ZN7COpenGL16SetPolygonOffsetEff_50


;COpenGL::SetVertexProgram(COpenGLVertexProgram const*)
_ZN7COpenGL16SetVertexProgramEPK20COpenGLVertexProgram:
	push ebp
	mov ebp, esp
	mov edx, [ebp+0x8]
	mov eax, [ebp+0xc]
	mov eax, [eax+0x10]
	cmp eax, [edx+0xe0]
	jz _ZN7COpenGL16SetVertexProgramEPK20COpenGLVertexProgram_10
	mov [edx+0xe0], eax
	mov [ebp+0xc], eax
	mov dword [ebp+0x8], 0x8620
	pop ebp
	jmp glBindProgramARB
_ZN7COpenGL16SetVertexProgramEPK20COpenGLVertexProgram_10:
	pop ebp
	ret


;COpenGL::ClearCachedVAInfo()
_ZN7COpenGL17ClearCachedVAInfoEv:
	push ebp
	mov ebp, esp
	sub esp, 0x20
	mov ecx, [ebp+0x8]
	mov eax, 0x1
	lea edx, [ebp-0x14]
_ZN7COpenGL17ClearCachedVAInfoEv_10:
	mov byte [eax+edx-0x1], 0xfc
	add eax, 0x1
	cmp eax, 0x11
	jnz _ZN7COpenGL17ClearCachedVAInfoEv_10
	mov dword [ebp-0x4], 0x0
	mov eax, [ebp-0x14]
	mov [ecx+0x40], eax
	mov eax, [ebp-0x10]
	mov [ecx+0x44], eax
	mov eax, [ebp-0xc]
	mov [ecx+0x48], eax
	mov eax, [ebp-0x8]
	mov [ecx+0x4c], eax
	mov dword [ecx+0x50], 0x0
	mov byte [ecx+0x54], 0x1
	mov eax, ecx
	xor edx, edx
_ZN7COpenGL17ClearCachedVAInfoEv_20:
	mov dword [eax+0x58], 0xffffffff
	mov dword [eax+0x98], 0xffffffff
	add edx, 0x1
	add eax, 0x4
	cmp edx, 0x10
	jnz _ZN7COpenGL17ClearCachedVAInfoEv_20
	leave
	ret


;COpenGL::ReleaseVBOBinding(bool, unsigned long const*)
_ZN7COpenGL17ReleaseVBOBindingEbPKm:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov ebx, [ebp+0x8]
	mov edx, ebx
	mov ecx, 0x2
_ZN7COpenGL17ReleaseVBOBindingEbPKm_20:
	mov eax, [edx+0x38]
	mov esi, [ebp+0x10]
	cmp eax, [esi]
	jz _ZN7COpenGL17ReleaseVBOBindingEbPKm_10
_ZN7COpenGL17ReleaseVBOBindingEbPKm_80:
	add edx, 0x4
	sub ecx, 0x1
	jnz _ZN7COpenGL17ReleaseVBOBindingEbPKm_20
	mov eax, 0x1
	lea edx, [ebp-0x2c]
_ZN7COpenGL17ReleaseVBOBindingEbPKm_30:
	mov byte [eax+edx-0x1], 0xfc
	add eax, 0x1
	cmp eax, 0x11
	jnz _ZN7COpenGL17ReleaseVBOBindingEbPKm_30
	mov dword [ebp-0x1c], 0x0
	mov eax, [ebp-0x2c]
	mov [ebx+0x40], eax
	mov eax, [ebp-0x28]
	mov [ebx+0x44], eax
	mov eax, [ebp-0x24]
	mov [ebx+0x48], eax
	mov eax, [ebp-0x20]
	mov [ebx+0x4c], eax
	mov dword [ebx+0x50], 0x0
	mov byte [ebx+0x54], 0x1
	mov eax, ebx
	mov edx, 0x10
_ZN7COpenGL17ReleaseVBOBindingEbPKm_40:
	mov dword [eax+0x58], 0xffffffff
	mov dword [eax+0x98], 0xffffffff
	add eax, 0x4
	sub edx, 0x1
	jnz _ZN7COpenGL17ReleaseVBOBindingEbPKm_40
	lea edi, [ebx+0xd8]
	mov eax, [ebx+0xd8]
	mov ebx, eax
	cmp edi, eax
	jz _ZN7COpenGL17ReleaseVBOBindingEbPKm_50
	mov esi, eax
	mov eax, [ebp+0x10]
	mov edx, [eax]
	mov eax, [ebx+0x8]
	cmp [eax], edx
	jz _ZN7COpenGL17ReleaseVBOBindingEbPKm_60
_ZN7COpenGL17ReleaseVBOBindingEbPKm_70:
	mov ebx, [ebx]
	cmp ebx, edi
	jz _ZN7COpenGL17ReleaseVBOBindingEbPKm_50
	mov esi, ebx
	mov eax, [ebx+0x8]
	cmp [eax], edx
	jnz _ZN7COpenGL17ReleaseVBOBindingEbPKm_70
_ZN7COpenGL17ReleaseVBOBindingEbPKm_60:
	mov eax, [ebp+0x10]
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call glDeleteBuffersARB
	mov eax, [esi+0x8]
	mov [esp], eax
	call _ZdlPv
	mov [esp+0x4], ebx
	mov [esp], edi
	call _ZNSt4listIPmSaIS0_EE5eraseESt14_List_iteratorIS0_E
_ZN7COpenGL17ReleaseVBOBindingEbPKm_50:
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN7COpenGL17ReleaseVBOBindingEbPKm_10:
	mov dword [edx+0x38], 0x0
	jmp _ZN7COpenGL17ReleaseVBOBindingEbPKm_80
	nop


;COpenGL::ReleaseTextureBinding(unsigned long const*)
_ZN7COpenGL21ReleaseTextureBindingEPKm:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov esi, [ebp+0x8]
	mov edi, [ebp+0xc]
	mov ebx, [esi+0x14]
	lea eax, [esi+0x18]
	mov [ebp-0x20], eax
	cmp ebx, [esi+0x18]
	jz _ZN7COpenGL21ReleaseTextureBindingEPKm_10
_ZN7COpenGL21ReleaseTextureBindingEPKm_50:
	mov edx, ebx
	xor ecx, ecx
_ZN7COpenGL21ReleaseTextureBindingEPKm_40:
	mov eax, [edx]
	cmp dword [eax+0xc], 0x0
	jz _ZN7COpenGL21ReleaseTextureBindingEPKm_20
	mov eax, [eax+0xc]
	mov eax, [eax]
	cmp eax, [edi]
	jz _ZN7COpenGL21ReleaseTextureBindingEPKm_30
_ZN7COpenGL21ReleaseTextureBindingEPKm_20:
	add ecx, 0x4
	add edx, 0x4
	cmp ecx, 0x14
	jnz _ZN7COpenGL21ReleaseTextureBindingEPKm_40
	add ebx, 0x18
	mov eax, [ebp-0x20]
	cmp ebx, [eax]
	jnz _ZN7COpenGL21ReleaseTextureBindingEPKm_50
_ZN7COpenGL21ReleaseTextureBindingEPKm_10:
	lea eax, [esi+0x24]
	mov [ebp-0x1c], eax
	mov eax, [esi+0x24]
	mov ebx, eax
	cmp [ebp-0x1c], eax
	jz _ZN7COpenGL21ReleaseTextureBindingEPKm_60
	mov esi, eax
	mov edx, [edi]
	mov eax, [eax+0x8]
	cmp edx, [eax]
	jz _ZN7COpenGL21ReleaseTextureBindingEPKm_70
_ZN7COpenGL21ReleaseTextureBindingEPKm_80:
	mov ebx, [ebx]
	cmp [ebp-0x1c], ebx
	jz _ZN7COpenGL21ReleaseTextureBindingEPKm_60
	mov esi, ebx
	mov eax, [ebx+0x8]
	cmp edx, [eax]
	jnz _ZN7COpenGL21ReleaseTextureBindingEPKm_80
_ZN7COpenGL21ReleaseTextureBindingEPKm_70:
	mov [esp+0x4], edi
	mov dword [esp], 0x1
	call glDeleteTextures
	mov eax, [esi+0x8]
	mov [esp], eax
	call _ZdlPv
	mov [esp+0x4], ebx
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _ZNSt4listIPmSaIS0_EE5eraseESt14_List_iteratorIS0_E
_ZN7COpenGL21ReleaseTextureBindingEPKm_60:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN7COpenGL21ReleaseTextureBindingEPKm_30:
	mov eax, ecx
	add eax, [esi+0x2c]
	mov eax, [eax]
	mov [edx], eax
	jmp _ZN7COpenGL21ReleaseTextureBindingEPKm_20
	nop


;COpenGL::UpdateTexImage3DPartial(_D3DFORMAT, unsigned int, unsigned int, unsigned int, std::vector<_D3DBOX, std::allocator<_D3DBOX> > const&, unsigned long, long, unsigned long, unsigned long, unsigned long, void const*)
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x6c
	mov edi, [ebp+0x8]
	mov eax, [ebp+0x10]
	mov [ebp-0x28], eax
	mov edx, [ebp+0x14]
	mov [ebp-0x2c], edx
	mov ebx, [ebp+0x18]
	mov esi, [ebp+0x1c]
	mov [ebp-0x30], esi
	mov eax, [ebp+0x20]
	mov [ebp-0x34], eax
	mov edx, [ebp+0x24]
	mov [ebp-0x38], edx
	mov esi, [ebp+0x28]
	mov [ebp-0x3c], esi
	mov eax, [ebp+0x30]
	mov [ebp-0x40], eax
	mov edx, [ebp+0x34]
	mov [ebp-0x44], edx
	and dl, 0x7
	jnz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_10
	mov dword [esp+0x4], 0x8
	mov dword [esp], 0xcf5
	call glPixelStorei
	call _ZN10MacDisplay11GetCardTypeEv
	cmp eax, 0x2
	jz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_20
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_60:
	mov eax, [ebp-0x28]
	mov [esp+0x4], eax
	mov dword [esp], 0xcf2
	call glPixelStorei
	mov edx, [ebp-0x2c]
	mov [esp+0x4], edx
	mov dword [esp], 0x806e
	call glPixelStorei
	mov esi, [ebp-0x30]
	mov eax, [esi]
	mov edi, eax
	cmp [esi+0x4], eax
	jz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_30
	mov [ebp-0x1c], eax
	jmp _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_40
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_50:
	mov edi, esi
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_40:
	mov ecx, [edi+0x10]
	mov ebx, [edi+0x4]
	mov esi, [edi]
	mov eax, [ebp-0x28]
	imul eax, ecx
	imul eax, [ebp-0x2c]
	mov edx, [ebp-0x28]
	imul edx, ebx
	add eax, edx
	add eax, esi
	mov edx, [ebp-0x44]
	lea eax, [edx+eax*4]
	mov [esp+0x28], eax
	mov eax, [ebp-0x40]
	mov [esp+0x24], eax
	mov edx, [ebp-0x3c]
	mov [esp+0x20], edx
	mov eax, [edi+0x14]
	sub eax, ecx
	mov [esp+0x1c], eax
	mov eax, [edi+0xc]
	sub eax, ebx
	mov [esp+0x18], eax
	mov eax, [edi+0x8]
	sub eax, esi
	mov [esp+0x14], eax
	mov [esp+0x10], ecx
	mov [esp+0xc], ebx
	mov [esp+0x8], esi
	mov esi, [ebp-0x38]
	mov [esp+0x4], esi
	mov eax, [ebp-0x34]
	mov [esp], eax
	call glTexSubImage3D
	add dword [ebp-0x1c], 0x18
	mov esi, [ebp-0x1c]
	mov edx, [ebp-0x30]
	cmp esi, [edx+0x4]
	jnz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_50
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_30:
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0xcf2
	call glPixelStorei
	mov dword [ebp+0xc], 0x0
	mov dword [ebp+0x8], 0x806e
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp glPixelStorei
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_10:
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0xcf5
	call glPixelStorei
	call _ZN10MacDisplay11GetCardTypeEv
	cmp eax, 0x2
	jnz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_60
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_20:
	cmp dword [ebp-0x28], 0x100
	jnz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_60
	cmp dword [ebp-0x2c], 0x100
	jnz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_60
	cmp ebx, 0x4
	jnz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_60
	mov esi, [edi+0x4]
	mov [ebp-0x24], esi
	cmp esi, 0xf
	jz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_70
	mov dword [edi+0x4], 0xf
	mov dword [esp], 0x84cf
	call glActiveTextureARB
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_70:
	mov eax, [edi+0x8b8]
	mov [esp+0x4], eax
	mov dword [esp], 0xde1
	call glBindTexture
	mov dword [esp+0x8], 0x812f
	mov dword [esp+0x4], 0x2802
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x812f
	mov dword [esp+0x4], 0x2803
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x2601
	mov dword [esp+0x4], 0x2801
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x2601
	mov dword [esp+0x4], 0x2800
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x4], 0x100
	mov dword [esp], 0xcf2
	call glPixelStorei
	mov dword [esp+0x4], 0x400
	mov dword [esp], 0x806e
	call glPixelStorei
	mov eax, [ebp-0x30]
	mov edx, [eax]
	mov ecx, [eax+0x4]
	cmp ecx, edx
	jz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_80
	lea ebx, [edx+0x18]
	jmp _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_90
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_100:
	mov edx, ebx
	cmp ecx, ebx
	jz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_80
	add ebx, 0x18
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_90:
	mov eax, [edx+0x4]
	shl eax, 0x8
	add eax, [edx]
	mov esi, [ebp-0x44]
	lea eax, [esi+eax*4]
	mov [ebp-0x20], eax
	mov esi, [edx+0x10]
	cmp esi, [ebx-0x4]
	jae _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_100
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_110:
	mov edx, [ebx-0x14]
	mov ecx, [ebx-0x18]
	mov eax, esi
	shl eax, 0x12
	add eax, [ebp-0x20]
	mov [esp+0x20], eax
	mov eax, [ebp-0x40]
	mov [esp+0x1c], eax
	mov eax, [ebp-0x3c]
	mov [esp+0x18], eax
	mov eax, [ebx-0xc]
	sub eax, edx
	mov [esp+0x14], eax
	mov eax, [ebx-0x10]
	sub eax, ecx
	mov [esp+0x10], eax
	mov eax, esi
	shl eax, 0x8
	add eax, edx
	mov [esp+0xc], eax
	mov [esp+0x8], ecx
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0xde1
	call glTexSubImage2D
	add esi, 0x1
	cmp [ebx-0x4], esi
	ja _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_110
	mov edx, [ebp-0x30]
	mov ecx, [edx+0x4]
	jmp _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_100
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_80:
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0xcf2
	call glPixelStorei
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x806e
	call glPixelStorei
	mov esi, [ebp-0x24]
	cmp esi, [edi+0x4]
	jz _ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_120
	mov [edi+0x4], esi
	mov eax, esi
	add eax, 0x84c0
	mov [ebp+0x8], eax
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp glActiveTextureARB
_ZN7COpenGL23UpdateTexImage3DPartialE10_D3DFORMATjjjRKSt6vectorI7_D3DBOXSaIS2_EEmlmmmPKv_120:
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;COpenGL::CreateAndSetProgrammableVBO(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, COpenGLBufferObject&, COpenGLBufferObject&, unsigned int, VertexArrayInfoType const&)
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x7c
	mov ebx, [ebp+0x14]
	mov edi, [ebp+0x28]
	mov eax, [ebp+0xc]
	mov [esp+0x8], eax
	mov eax, edi
	add eax, [ebp+0x10]
	mov [esp+0x4], eax
	mov eax, [ebp+0x20]
	mov [esp], eax
	call _ZN19COpenGLBufferObject5FlushEjj
	mov esi, eax
	mov eax, ebx
	add eax, [ebp+0x18]
	add eax, eax
	mov [esp+0x8], eax
	add ebx, ebx
	mov [esp+0x4], ebx
	mov edx, [ebp+0x24]
	mov [esp], edx
	call _ZN19COpenGLBufferObject5FlushEjj
	mov [ebp-0x35], al
	mov ecx, esi
	test cl, cl
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_10
	mov eax, [ebp+0x20]
	cmp byte [eax+0x10], 0x0
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_20
	mov eax, [eax+0x38]
	add eax, edi
	mov [ebp-0x3c], eax
	mov eax, [ebp+0x8]
	mov edx, [eax+0x38]
	test edx, edx
	jnz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_30
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_190:
	mov edx, eax
	mov eax, [ebp+0x2c]
	mov edi, [eax+0x10]
	mov ecx, [edx+0x50]
	xor ecx, edi
	mov [ebp-0x34], ecx
	cmp byte [edx+0x54], 0x0
	jnz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_40
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_100:
	mov eax, ecx
	or eax, edi
	jnz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_50
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_110:
	mov edx, [ebp+0x2c]
	mov eax, [edx+0x10]
	mov ecx, [ebp+0x8]
	mov [ecx+0x50], eax
	cmp byte [ebp-0x35], 0x0
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_60
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_170:
	mov eax, [ecx+0x3c]
	test eax, eax
	jnz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_70
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_240:
	mov eax, [ebp+0x24]
	cmp byte [eax+0x10], 0x0
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_80
	mov eax, [eax+0x38]
	add esp, 0x7c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_10:
	mov [ebp-0x3c], edi
	mov edx, [ebp+0x20]
	mov eax, [edx+0x18]
	mov eax, [eax]
	mov ecx, [ebp+0x8]
	cmp eax, [ecx+0x38]
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_90
	mov [ecx+0x38], eax
	mov [esp+0x4], eax
	mov dword [esp], 0x8892
	call glBindBufferARB
	mov edx, [ebp+0x8]
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_200:
	mov eax, [ebp+0x2c]
	mov edi, [eax+0x10]
	mov ecx, [edx+0x50]
	xor ecx, edi
	mov [ebp-0x34], ecx
	cmp byte [edx+0x54], 0x0
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_100
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_40:
	mov byte [edx+0x54], 0x0
	mov dword [ebp-0x34], 0xffff
	mov eax, [ebp-0x34]
	or eax, edi
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_110
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_50:
	mov edx, [ebp+0x8]
	mov [ebp-0x20], edx
	mov ecx, [ebp+0x2c]
	mov [ebp-0x1c], ecx
	mov dword [ebp-0x30], 0x0
	mov dword [ebp-0x2c], 0x1
	mov eax, edx
	add eax, 0x40
	mov [ebp-0x40], eax
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_160:
	mov edx, [ebp-0x2c]
	test [ebp-0x34], edx
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_120
	mov ebx, edx
	not ebx
	and [ebp-0x34], ebx
	test edi, edx
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_130
	mov ecx, [ebp-0x30]
	mov [esp], ecx
	call glEnableVertexAttribArrayARB
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_260:
	and edi, ebx
	mov edx, [ebp-0x1c]
	movzx eax, byte [edx]
	mov ebx, eax
	mov edx, eax
	shr dl, 0x4
	and edx, 0xf
	shr al, 0x2
	and eax, 0x3
	add eax, 0x1
	mov [ebp-0x28], eax
	movzx ecx, bl
	mov eax, ecx
	and eax, 0x2
	cmp eax, 0x1
	sbb esi, esi
	and esi, 0x5
	add esi, 0x1401
	and cl, 0x1
	mov [ebp-0x21], cl
	mov ecx, [ebp-0x3c]
	lea edx, [ecx+edx*4]
	mov [ebp-0x4c], edx
	mov eax, [ebp+0x8]
	mov edx, [ebp-0x30]
	cmp [eax+edx+0x40], bl
	jnz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_140
	mov eax, [ebp-0x4c]
	mov ecx, [ebp-0x20]
	cmp eax, [ecx+0x58]
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_150
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_210:
	mov ecx, [ebp-0x30]
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_230:
	mov edx, [ebp-0x40]
	mov [edx+ecx], bl
	mov eax, 0x1
	shl eax, cl
	or [edx+0x10], eax
	mov edx, [ebp-0x4c]
	mov eax, [ebp-0x20]
	mov [eax+0x58], edx
	mov ecx, [ebp+0x20]
	mov eax, [ecx+0x18]
	mov eax, [eax]
	mov edx, [ebp-0x20]
	mov [edx+0x98], eax
	mov ecx, [ebp-0x4c]
	mov [esp+0x14], ecx
	mov eax, [ebp+0x1c]
	mov [esp+0x10], eax
	movzx eax, byte [ebp-0x21]
	mov [esp+0xc], eax
	mov [esp+0x8], esi
	mov edx, [ebp-0x28]
	mov [esp+0x4], edx
	mov ecx, [ebp-0x30]
	mov [esp], ecx
	call glVertexAttribPointerARB
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_220:
	add dword [ebp-0x30], 0x1
	shl dword [ebp-0x2c], 1
	add dword [ebp-0x20], 0x4
	add dword [ebp-0x1c], 0x1
	mov eax, [ebp-0x34]
	or eax, edi
	jnz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_160
	mov edx, [ebp+0x2c]
	mov eax, [edx+0x10]
	mov ecx, [ebp+0x8]
	mov [ecx+0x50], eax
	cmp byte [ebp-0x35], 0x0
	jnz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_170
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_60:
	mov edx, [ebp+0x24]
	mov eax, [edx+0x18]
	mov eax, [eax]
	mov ecx, [ebp+0x8]
	cmp eax, [ecx+0x3c]
	jnz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_180
	xor eax, eax
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_250:
	add esp, 0x7c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_20:
	mov eax, [eax+0x48]
	add eax, edi
	mov [ebp-0x3c], eax
	mov eax, [ebp+0x8]
	mov edx, [eax+0x38]
	test edx, edx
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_190
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_30:
	mov dword [eax+0x38], 0x0
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x8892
	call glBindBufferARB
	mov edx, [ebp+0x8]
	jmp _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_200
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_90:
	mov edx, ecx
	jmp _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_200
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_150:
	mov eax, ecx
	mov ecx, [ebp+0x20]
	mov edx, [ecx+0x18]
	mov eax, [eax+0x98]
	cmp eax, [edx]
	jnz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_210
	jmp _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_220
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_130:
	mov eax, [ebp-0x30]
	mov [esp], eax
	call glDisableVertexAttribArrayARB
	jmp _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_220
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_140:
	mov ecx, edx
	jmp _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_230
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_80:
	mov eax, [eax+0x48]
	add esp, 0x7c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_70:
	mov dword [ecx+0x3c], 0x0
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x8893
	call glBindBufferARB
	jmp _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_240
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_180:
	mov [ecx+0x3c], eax
	mov [esp+0x4], eax
	mov dword [esp], 0x8893
	call glBindBufferARB
	xor eax, eax
	jmp _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_250
_ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_120:
	test [ebp-0x2c], edi
	jz _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_220
	mov ebx, [ebp-0x2c]
	not ebx
	jmp _ZN7COpenGL27CreateAndSetProgrammableVBOEjjjjjR19COpenGLBufferObjectS1_jRK19VertexArrayInfoType_260
	nop


;COpenGL::Init(unsigned int, unsigned int)
_ZN7COpenGL4InitEjj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0xcc
	mov dword [_ZN7COpenGL11sFrameCountE], 0x0
	mov dword [esp], _cstring_gl_ext_blend_sub
	call _ZN14MacOpenGLUtils22IsGLExtensionSupportedEPKc
	mov edx, [ebp+0x8]
	mov [edx+0xe9], al
	mov dword [esp], _cstring_gl_ext_blend_min
	call _ZN14MacOpenGLUtils22IsGLExtensionSupportedEPKc
	mov ecx, [ebp+0x8]
	mov [ecx+0xea], al
	mov dword [esp], _cstring_gl_ext_blend_fun
	call _ZN14MacOpenGLUtils22IsGLExtensionSupportedEPKc
	mov edx, [ebp+0x8]
	mov [edx+0xeb], al
	mov dword [esp], _cstring_gl_ext_stencil_w
	call _ZN14MacOpenGLUtils22IsGLExtensionSupportedEPKc
	mov ecx, [ebp+0x8]
	mov [ecx+0xec], al
	mov dword [esp], _cstring_gl_ext_texture_l
	call _ZN14MacOpenGLUtils22IsGLExtensionSupportedEPKc
	mov edx, [ebp+0x8]
	mov [edx+0xe8], al
	mov byte [edx+0x105], 0x1
	mov byte [edx+0x20], 0x0
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0xcf5
	call glPixelStorei
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0xd05
	call glPixelStorei
	mov dword [esp], 0xbc0
	call glDisable
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x207
	call glAlphaFunc
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x1
	call glBlendFunc
	mov ecx, [ebp+0x8]
	mov dword [ecx+0x108], 0x1
	mov dword [ecx+0x10c], 0x0
	mov dword [ecx+0x110], 0x1
	mov dword [ecx+0x114], 0x0
	lea eax, [ebp-0x1c]
	mov [esp+0x4], eax
	mov dword [esp], 0xd32
	call glGetIntegerv
	pxor xmm0, xmm0
	movsd [ebp-0xa0], xmm0
	movsd [ebp-0x98], xmm0
	movsd [ebp-0x90], xmm0
	movsd [ebp-0x88], xmm0
	mov edi, [ebp-0x1c]
	test edi, edi
	jg _ZN7COpenGL4InitEjj_10
_ZN7COpenGL4InitEjj_350:
	mov dword [esp+0xc], 0x1
	mov dword [esp+0x8], 0x1
	mov dword [esp+0x4], 0x1
	mov dword [esp], 0x1
	call glColorMask
	mov eax, 0x3f800000
	mov [esp+0xc], eax
	mov [esp+0x8], eax
	mov [esp+0x4], eax
	mov [esp], eax
	call glColor4f
	mov eax, [ebp+0x8]
	cmp byte [eax+0xe9], 0x0
	jnz _ZN7COpenGL4InitEjj_20
	cmp byte [eax+0xea], 0x0
	jnz _ZN7COpenGL4InitEjj_20
_ZN7COpenGL4InitEjj_110:
	mov dword [esp], 0xb44
	call glDisable
	mov dword [esp], 0xb71
	call glEnable
	mov dword [esp], 0x203
	call glDepthFunc
	mov dword [esp], 0x1
	call glDepthMask
	mov dword [esp+0x8], 0x0
	mov dword [esp+0xc], 0x3ff00000
	mov dword [esp], 0x0
	mov dword [esp+0x4], 0x0
	call glDepthRange
	mov eax, [ebp+0x8]
	add eax, 0xc
	mov [esp+0x4], eax
	mov dword [esp], 0xd56
	call glGetIntegerv
	call _ZN10MacDisplay11GetCardTypeEv
	sub eax, 0x1
	jz _ZN7COpenGL4InitEjj_30
_ZN7COpenGL4InitEjj_390:
	lea eax, [ebp-0x24]
	mov [esp+0x4], eax
	mov dword [esp], 0xc00
	call glGetIntegerv
	mov esi, [ebp-0x24]
	test esi, esi
	jle _ZN7COpenGL4InitEjj_40
	mov dword [esp], 0xbd0
	call glDisable
	xor eax, eax
	mov [esp+0xc], eax
	mov [esp+0x8], eax
	mov [esp+0x4], eax
	mov [esp], eax
	call glClearColor
	mov dword [esp], 0x0
	mov dword [esp+0x4], 0x3ff00000
	call glClearDepth
	mov dword [esp], 0x0
	call glClearStencil
	mov ebx, [ebp-0x24]
	test ebx, ebx
	jg _ZN7COpenGL4InitEjj_50
_ZN7COpenGL4InitEjj_40:
	mov dword [esp], 0x405
	call glDrawBuffer
	mov dword [esp], 0x4000
	call glClear
	call _ZN10MacDisplay12IsFullscreenEv
	test al, al
	jnz _ZN7COpenGL4InitEjj_60
_ZN7COpenGL4InitEjj_380:
	xor eax, eax
	cmp dword [ebp+0xc], 0x1
	setnz al
	add eax, 0x404
	mov [esp], eax
	call glDrawBuffer
	mov dword [esp], 0xd80
	call glDisable
	mov dword [esp], 0xbe2
	call glDisable
	mov dword [esp], 0xbf2
	call glDisable
	mov ecx, [ebp+0x8]
	mov byte [ecx+0x10], 0x0
	mov dword [esp], 0xbd0
	call glDisable
	mov dword [esp], 0xb60
	call glDisable
	mov dword [esp+0x4], 0x2601
	mov dword [esp], 0xb65
	call glFogi
	mov dword [esp], 0xbf1
	call glDisable
	mov dword [esp], 0xb50
	call glDisable
	mov dword [esp], 0xb20
	call glDisable
	mov dword [esp], 0xb24
	call glDisable
	mov dword [esp], 0xd90
	call glDisable
	mov dword [esp], 0xd91
	call glDisable
	mov dword [esp], 0xd92
	call glDisable
	mov dword [esp], 0xd93
	call glDisable
	mov dword [esp], 0xd94
	call glDisable
	mov dword [esp], 0xd95
	call glDisable
	mov dword [esp], 0xd96
	call glDisable
	mov dword [esp], 0xd97
	call glDisable
	mov dword [esp], 0xd98
	call glDisable
	mov dword [esp], 0xdb0
	call glDisable
	mov dword [esp], 0xdb1
	call glDisable
	mov dword [esp], 0xdb2
	call glDisable
	mov dword [esp], 0xdb3
	call glDisable
	mov dword [esp], 0xdb4
	call glDisable
	mov dword [esp], 0xdb5
	call glDisable
	mov dword [esp], 0xdb6
	call glDisable
	mov dword [esp], 0xdb7
	call glDisable
	mov dword [esp], 0xdb8
	call glDisable
	mov dword [esp], 0xba1
	call glEnable
	mov dword [esp], 0xb10
	call glDisable
	mov dword [esp], 0x8037
	call glDisable
	xor ebx, ebx
	mov [esp+0x4], ebx
	mov [esp], ebx
	call glPolygonOffset
	mov eax, [ebp+0x8]
	mov byte [eax+0xf8], 0x0
	mov dword [esp], 0x2a02
	call glDisable
	mov dword [esp], 0x2a01
	call glDisable
	mov dword [esp], 0xb41
	call glDisable
	mov dword [esp], 0xb42
	call glDisable
	mov dword [esp], 0xc11
	call glDisable
	mov dword [esp+0x4], 0x1101
	mov dword [esp], 0xc54
	call glHint
	mov dword [esp+0x4], 0x1101
	mov dword [esp], 0xc52
	call glHint
	mov dword [esp+0x4], 0x1102
	mov dword [esp], 0xc50
	call glHint
	mov dword [esp+0x4], 0x1101
	mov dword [esp], 0xc51
	call glHint
	mov dword [esp+0x4], 0x1101
	mov dword [esp], 0xc53
	call glHint
	mov [ebp-0x44], ebx
	mov [ebp-0x40], ebx
	mov [ebp-0x3c], ebx
	mov [ebp-0x38], ebx
	lea eax, [ebp-0x44]
	mov [esp+0x4], eax
	mov dword [esp], 0xb53
	call glLightModelfv
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0xb52
	call glLightModeli
	mov dword [esp], 0x1700
	call glMatrixMode
	call glLoadIdentity
	mov dword [esp], 0x1701
	call glMatrixMode
	call glLoadIdentity
	mov [ebp-0x54], ebx
	mov [ebp-0x50], ebx
	mov [ebp-0x4c], ebx
	mov [ebp-0x48], ebx
	mov esi, 0x3f800000
	mov [ebp-0x34], esi
	mov [ebp-0x30], esi
	mov [ebp-0x2c], esi
	mov [ebp-0x28], esi
	lea edx, [ebp-0x54]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x1200
	mov dword [esp], 0x408
	call glMaterialfv
	lea edi, [ebp-0x34]
	mov [esp+0x8], edi
	mov dword [esp+0x4], 0x1201
	mov dword [esp], 0x408
	call glMaterialfv
	lea ecx, [ebp-0x54]
	mov [esp+0x8], ecx
	mov dword [esp+0x4], 0x1202
	mov dword [esp], 0x408
	call glMaterialfv
	mov [esp+0x8], edi
	mov dword [esp+0x4], 0x1600
	mov dword [esp], 0x408
	call glMaterialfv
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x1601
	mov dword [esp], 0x408
	call glMaterialf
	mov [esp], esi
	call glPointSize
	mov dword [esp+0x4], 0x1b02
	mov dword [esp], 0x408
	call glPolygonMode
	mov dword [esp], 0x1d01
	call glShadeModel
	mov eax, [ebp+0x8]
	mov dword [eax+0x4], 0x0
	mov dword [esp], 0x84c0
	call glActiveTextureARB
	mov dword [esp], 0xb90
	call glDisable
	mov edx, [ebp+0x8]
	add edx, 0x14
	mov [ebp-0xac], edx
	mov ecx, [ebp+0x8]
	add ecx, 0x18
	mov [ebp-0xb0], ecx
	mov edx, [ebp+0x8]
	mov eax, [edx+0x18]
	mov edx, [edx+0x14]
	mov [esp+0x8], eax
	mov [esp+0x4], edx
	mov eax, [ebp-0xac]
	mov [esp], eax
	call _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7_
_ZN7COpenGL4InitEjj_420:
	mov esi, 0xde0
	xor edi, edi
_ZN7COpenGL4InitEjj_120:
	mov dword [esp], 0x38
	call _Znwm
	mov ebx, eax
	mov [esp+0x4], esi
	mov [esp], eax
	call _ZN14COpenGLTextureC1Em
	mov [ebp-0x20], ebx
	mov esi, [ebp+0x8]
	add esi, 0x2c
	mov edx, [esi+0x4]
	cmp edx, [esi+0x8]
	jz _ZN7COpenGL4InitEjj_70
	test edx, edx
	jz _ZN7COpenGL4InitEjj_80
	mov [edx], ebx
	mov edx, [esi+0x4]
_ZN7COpenGL4InitEjj_80:
	add edx, 0x4
	mov [esi+0x4], edx
_ZN7COpenGL4InitEjj_330:
	add edi, 0x1
	cmp edi, 0x4
	jg _ZN7COpenGL4InitEjj_90
	ja _ZN7COpenGL4InitEjj_100
	jmp dword [edi*4+_ZN7COpenGL4InitEjj_jumptab_0]
_ZN7COpenGL4InitEjj_20:
	mov dword [esp], 0x8006
	call glBlendEquationEXT
	jmp _ZN7COpenGL4InitEjj_110
_ZN7COpenGL4InitEjj_100:
	xor esi, esi
	jmp _ZN7COpenGL4InitEjj_120
_ZN7COpenGL4InitEjj_90:
	mov ecx, [ebp+0x10]
	test ecx, ecx
	jz _ZN7COpenGL4InitEjj_130
	xor edi, edi
	lea ebx, [ebp-0x80]
_ZN7COpenGL4InitEjj_190:
	mov edx, [ebp+0x8]
	cmp edi, [edx+0x4]
	jz _ZN7COpenGL4InitEjj_140
	mov [edx+0x4], edi
	lea eax, [edi+0x84c0]
	mov [esp], eax
	call glActiveTextureARB
_ZN7COpenGL4InitEjj_140:
	mov dword [ebp-0x6c], 0x0
	mov eax, 0x1
_ZN7COpenGL4InitEjj_150:
	mov dword [ebx+eax*4-0x4], 0x0
	add eax, 0x1
	cmp eax, 0x6
	jnz _ZN7COpenGL4InitEjj_150
	xor edx, edx
	mov ecx, [esi]
_ZN7COpenGL4InitEjj_160:
	mov eax, [ecx+edx]
	mov [edx+ebx], eax
	add edx, 0x4
	cmp edx, 0x14
	jnz _ZN7COpenGL4InitEjj_160
	mov dword [ebp-0x6c], 0x0
	mov ecx, [ebp-0xac]
	mov edx, [ecx+0x4]
	cmp edx, [ecx+0x8]
	jz _ZN7COpenGL4InitEjj_170
	test edx, edx
	jz _ZN7COpenGL4InitEjj_180
	mov eax, [ebp-0x80]
	mov [edx], eax
	mov eax, [ebp-0x7c]
	mov [edx+0x4], eax
	mov eax, [ebp-0x78]
	mov [edx+0x8], eax
	mov eax, [ebp-0x74]
	mov [edx+0xc], eax
	mov eax, [ebp-0x70]
	mov [edx+0x10], eax
	mov eax, [ebp-0x6c]
	mov [edx+0x14], eax
	mov edx, [ecx+0x4]
_ZN7COpenGL4InitEjj_180:
	lea eax, [edx+0x18]
	mov edx, [ebp-0xac]
	mov [edx+0x4], eax
_ZN7COpenGL4InitEjj_310:
	add edi, 0x1
	cmp [ebp+0x10], edi
	jnz _ZN7COpenGL4InitEjj_190
_ZN7COpenGL4InitEjj_130:
	mov edx, [ebp+0x8]
	mov dword [edx+0x8], 0x1700
	mov dword [esp], 0x1700
	call glMatrixMode
	mov eax, [ebp+0x8]
	mov edx, 0x60
_ZN7COpenGL4InitEjj_200:
	mov dword [eax+0x118], 0x1
	add eax, 0x14
	sub edx, 0x1
	jnz _ZN7COpenGL4InitEjj_200
	mov dword [esp], 0xb57
	call glDisable
	mov ecx, [ebp+0x8]
	mov dword [ecx+0xe0], 0x0
	mov byte [ecx+0xed], 0x0
	mov dword [esp], 0x8620
	call glDisable
	mov eax, [ebp+0x8]
	mov edx, 0x2
_ZN7COpenGL4InitEjj_210:
	mov dword [eax+0x38], 0x0
	add eax, 0x4
	sub edx, 0x1
	jnz _ZN7COpenGL4InitEjj_210
	mov eax, 0x1
	lea edx, [ebp-0x68]
_ZN7COpenGL4InitEjj_220:
	mov byte [eax+edx-0x1], 0xfc
	add eax, 0x1
	cmp eax, 0x11
	jnz _ZN7COpenGL4InitEjj_220
	mov dword [ebp-0x58], 0x0
	mov eax, [ebp-0x68]
	mov edx, [ebp+0x8]
	mov [edx+0x40], eax
	mov eax, [ebp-0x64]
	mov [edx+0x44], eax
	mov eax, [ebp-0x60]
	mov [edx+0x48], eax
	mov eax, [ebp-0x5c]
	mov [edx+0x4c], eax
	mov dword [edx+0x50], 0x0
	mov byte [edx+0x54], 0x1
	mov eax, edx
	mov edx, 0x10
_ZN7COpenGL4InitEjj_230:
	mov dword [eax+0x58], 0xffffffff
	mov dword [eax+0x98], 0xffffffff
	add eax, 0x4
	sub edx, 0x1
	jnz _ZN7COpenGL4InitEjj_230
	xor ebx, ebx
_ZN7COpenGL4InitEjj_240:
	mov [esp], ebx
	call glDisableVertexAttribArrayARB
	mov dword [esp+0x14], 0x0
	mov dword [esp+0x10], 0x0
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], 0x1406
	mov dword [esp+0x4], 0x4
	mov [esp], ebx
	call glVertexAttribPointerARB
	add ebx, 0x1
	cmp ebx, 0x10
	jnz _ZN7COpenGL4InitEjj_240
	call _ZN10MacDisplay11GetCardTypeEv
	cmp eax, 0x2
	jz _ZN7COpenGL4InitEjj_250
	call _ZN10MacDisplay11GetCardTypeEv
	sub eax, 0x1
	jz _ZN7COpenGL4InitEjj_260
_ZN7COpenGL4InitEjj_400:
	call _ZN14MacOpenGLUtils23GetPCPixelShaderVersionEv
	cmp eax, 0xffff01ff
	ja _ZN7COpenGL4InitEjj_270
_ZN7COpenGL4InitEjj_370:
	mov ecx, [ebp+0x8]
	mov edx, [ecx+0x4]
	test edx, edx
	jnz _ZN7COpenGL4InitEjj_280
	mov eax, ecx
_ZN7COpenGL4InitEjj_360:
	mov dword [eax+0xfc], 0xffffffff
	mov dword [eax+0x100], 0xffffffff
	mov byte [eax+0x104], 0x0
	mov dword [eax+0x89c], 0x0
	mov byte [eax+0x8a0], 0x0
	mov dword [eax+0x8a4], 0x0
	mov dword [eax+0x8a8], 0x0
	mov dword [eax+0x8ac], 0x0
	mov byte [eax+0x8b0], 0x0
	mov dword [eax+0x8b4], 0x0
	mov eax, [ebp+0x8]
	add eax, 0x898
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call glGenFramebuffersEXT
	mov edx, [ebp+0x8]
	mov eax, [edx+0x898]
	mov [esp+0x4], eax
	mov dword [esp], 0x8d40
	call glBindFramebufferEXT
	mov dword [esp], 0x0
	call glDrawBuffer
	mov dword [esp], 0x0
	call glReadBuffer
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x8d40
	call glBindFramebufferEXT
	mov eax, [ebp+0x8]
	add eax, 0x8b8
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call glGenTextures
	mov ecx, [ebp+0x8]
	cmp dword [ecx+0x4], 0xf
	jz _ZN7COpenGL4InitEjj_290
	mov dword [ecx+0x4], 0xf
	mov dword [esp], 0x84cf
	call glActiveTextureARB
	mov edx, [ebp+0x8]
_ZN7COpenGL4InitEjj_320:
	mov eax, [edx+0x8b8]
	mov [esp+0x4], eax
	mov dword [esp], 0xde1
	call glBindTexture
	mov dword [esp+0x8], 0x812f
	mov dword [esp+0x4], 0x2802
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x812f
	mov dword [esp+0x4], 0x2803
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x2601
	mov dword [esp+0x4], 0x2801
	mov dword [esp], 0xde1
	call glTexParameteri
	mov dword [esp+0x8], 0x2601
	mov dword [esp+0x4], 0x2800
	mov dword [esp], 0xde1
	call glTexParameteri
	mov ecx, [ebp+0x8]
	mov eax, [ecx+0x4]
	test eax, eax
	jz _ZN7COpenGL4InitEjj_300
	mov dword [ecx+0x4], 0x0
	mov dword [esp], 0x84c0
	call glActiveTextureARB
_ZN7COpenGL4InitEjj_300:
	add esp, 0xcc
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN7COpenGL4InitEjj_170:
	mov ecx, [ebp-0xb0]
	mov eax, [ecx]
	mov [esp+0x8], ebx
	mov [esp+0x4], eax
	mov eax, [ebp-0xac]
	mov [esp], eax
	call _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_
	jmp _ZN7COpenGL4InitEjj_310
_ZN7COpenGL4InitEjj_430:
	mov esi, 0xde1
	jmp _ZN7COpenGL4InitEjj_120
_ZN7COpenGL4InitEjj_440:
	mov esi, 0x84f5
	jmp _ZN7COpenGL4InitEjj_120
_ZN7COpenGL4InitEjj_450:
	mov esi, 0x806f
	jmp _ZN7COpenGL4InitEjj_120
_ZN7COpenGL4InitEjj_460:
	mov esi, 0x8513
	jmp _ZN7COpenGL4InitEjj_120
_ZN7COpenGL4InitEjj_290:
	mov edx, ecx
	jmp _ZN7COpenGL4InitEjj_320
_ZN7COpenGL4InitEjj_70:
	lea eax, [ebp-0x20]
	mov [esp+0x8], eax
	mov [esp+0x4], edx
	mov [esp], esi
	call _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_
	jmp _ZN7COpenGL4InitEjj_330
_ZN7COpenGL4InitEjj_10:
	xor esi, esi
	lea edi, [ebp-0xa0]
_ZN7COpenGL4InitEjj_340:
	lea ebx, [esi+0x3000]
	mov [esp], ebx
	call glDisable
	mov [esp+0x4], edi
	mov [esp], ebx
	call glClipPlane
	add esi, 0x1
	cmp esi, [ebp-0x1c]
	jl _ZN7COpenGL4InitEjj_340
	jmp _ZN7COpenGL4InitEjj_350
_ZN7COpenGL4InitEjj_280:
	mov dword [ecx+0x4], 0x0
	mov dword [esp], 0x84c0
	call glActiveTextureARB
	mov eax, [ebp+0x8]
	jmp _ZN7COpenGL4InitEjj_360
_ZN7COpenGL4InitEjj_270:
	mov dword [esp], 0x8804
	call glDisable
	jmp _ZN7COpenGL4InitEjj_370
_ZN7COpenGL4InitEjj_60:
	mov dword [esp], 0x404
	call glDrawBuffer
	mov dword [esp], 0x4000
	call glClear
	jmp _ZN7COpenGL4InitEjj_380
_ZN7COpenGL4InitEjj_30:
	mov edx, [ebp+0x8]
	mov dword [edx+0xc], 0x10
	jmp _ZN7COpenGL4InitEjj_390
_ZN7COpenGL4InitEjj_250:
	mov dword [esp], 0x86de
	call glDisable
	mov dword [esp], 0x8522
	call glDisable
	jmp _ZN7COpenGL4InitEjj_400
_ZN7COpenGL4InitEjj_50:
	xor ebx, ebx
_ZN7COpenGL4InitEjj_410:
	lea eax, [ebx+0x409]
	mov [esp], eax
	call glDrawBuffer
	mov dword [esp], 0x4500
	call glClear
	add ebx, 0x1
	cmp ebx, [ebp-0x24]
	jl _ZN7COpenGL4InitEjj_410
	jmp _ZN7COpenGL4InitEjj_40
_ZN7COpenGL4InitEjj_260:
	mov dword [esp], 0x8200
	call glDisable
	jmp _ZN7COpenGL4InitEjj_400
	mov esi, eax
	mov [esp], ebx
	call _ZdlPv
	mov [esp], esi
	call _Unwind_Resume
	mov [esp], eax
	call _Unwind_Resume
	nop
	add [eax], al
	
	
_ZN7COpenGL4InitEjj_jumptab_0:
	dd _ZN7COpenGL4InitEjj_420
	dd _ZN7COpenGL4InitEjj_430
	dd _ZN7COpenGL4InitEjj_440
	dd _ZN7COpenGL4InitEjj_450
	dd _ZN7COpenGL4InitEjj_460


;COpenGL::CTexUnit::SetTex(unsigned long, COpenGLTexture*)
_ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture:
	push ebp
	mov ebp, esp
	push ebx
	mov ebx, [ebp+0x8]
	mov edx, [ebp+0xc]
	mov ecx, [ebp+0x10]
	cmp edx, 0xde0
	jz _ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_10
	cmp edx, 0xde1
	jz _ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_20
	cmp edx, 0x84f5
	jz _ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_30
	cmp edx, 0x806f
	jz _ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_40
	cmp edx, 0x8513
	jz _ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_50
_ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_10:
	xor eax, eax
_ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_60:
	mov [ebx+eax*4], ecx
	mov eax, [ecx+0xc]
	mov eax, [eax]
	mov [ebp+0xc], eax
	mov [ebp+0x8], edx
	pop ebx
	pop ebp
	jmp glBindTexture
_ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_50:
	mov eax, 0x4
	mov [ebx+eax*4], ecx
	mov eax, [ecx+0xc]
	mov eax, [eax]
	mov [ebp+0xc], eax
	mov [ebp+0x8], edx
	pop ebx
	pop ebp
	jmp glBindTexture
_ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_40:
	mov eax, 0x3
	jmp _ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_60
_ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_20:
	mov eax, 0x1
	mov [ebx+eax*4], ecx
	mov eax, [ecx+0xc]
	mov eax, [eax]
	mov [ebp+0xc], eax
	mov [ebp+0x8], edx
	pop ebx
	pop ebp
	jmp glBindTexture
_ZN7COpenGL8CTexUnit6SetTexEmP14COpenGLTexture_30:
	mov eax, 0x2
	mov [ebx+eax*4], ecx
	mov eax, [ecx+0xc]
	mov eax, [eax]
	mov [ebp+0xc], eax
	mov [ebp+0x8], edx
	pop ebx
	pop ebp
	jmp glBindTexture
	nop


;COpenGL::SetBlend(bool, unsigned long, unsigned long)
_ZN7COpenGL8SetBlendEbmm:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	mov ecx, [ebp+0x10]
	mov edx, [ebp+0x14]
	cmp byte [ebp+0xc], 0x0
	jnz _ZN7COpenGL8SetBlendEbmm_10
	cmp ecx, [eax+0x108]
	jz _ZN7COpenGL8SetBlendEbmm_20
_ZN7COpenGL8SetBlendEbmm_10:
	mov [eax+0x108], ecx
	mov [eax+0x10c], edx
	mov [ebp+0xc], edx
	mov [ebp+0x8], ecx
	pop ebp
	jmp glBlendFunc
_ZN7COpenGL8SetBlendEbmm_20:
	cmp edx, [eax+0x10c]
	jnz _ZN7COpenGL8SetBlendEbmm_10
	pop ebp
	ret


;COpenGL::Shutdown()
_ZN7COpenGL8ShutdownEv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	call glFinish
	call _ZN13CMemoryBuffer5ResetEv
	xor ebx, ebx
	mov eax, [ebp+0x8]
	lea edi, [eax+0x14]
	mov esi, [eax+0x14]
_ZN7COpenGL8ShutdownEv_30:
	mov edx, [edi+0x4]
	sub edx, esi
	sar edx, 0x3
	lea eax, [edx+edx*4]
	mov ecx, eax
	shl ecx, 0x4
	add eax, ecx
	mov ecx, eax
	shl ecx, 0x8
	add eax, ecx
	mov ecx, eax
	shl ecx, 0x10
	add eax, ecx
	lea eax, [edx+eax*2]
	cmp ebx, eax
	jae _ZN7COpenGL8ShutdownEv_10
	mov edx, [ebp+0x8]
	cmp ebx, [edx+0x4]
	jz _ZN7COpenGL8ShutdownEv_20
	mov [edx+0x4], ebx
	lea eax, [ebx+0x84c0]
	mov [esp], eax
	call glActiveTextureARB
	mov eax, [ebp+0x8]
	mov esi, [eax+0x14]
_ZN7COpenGL8ShutdownEv_20:
	add ebx, 0x1
	jmp _ZN7COpenGL8ShutdownEv_30
_ZN7COpenGL8ShutdownEv_10:
	mov esi, [ebp+0x8]
	add esi, 0x24
	mov edx, [ebp+0x8]
	mov edi, [edx+0x24]
	cmp edi, esi
	jz _ZN7COpenGL8ShutdownEv_40
	mov eax, edi
	jmp _ZN7COpenGL8ShutdownEv_50
_ZN7COpenGL8ShutdownEv_60:
	mov edi, eax
_ZN7COpenGL8ShutdownEv_50:
	mov ebx, [eax+0x8]
	mov [esp+0x4], ebx
	mov dword [esp], 0x1
	call glDeleteTextures
	mov dword [ebx], 0x0
	mov eax, [edi]
	cmp eax, esi
	jnz _ZN7COpenGL8ShutdownEv_60
_ZN7COpenGL8ShutdownEv_40:
	mov eax, [esi]
	cmp esi, eax
	jnz _ZN7COpenGL8ShutdownEv_70
	jmp _ZN7COpenGL8ShutdownEv_80
_ZN7COpenGL8ShutdownEv_90:
	mov eax, ebx
_ZN7COpenGL8ShutdownEv_70:
	mov ebx, [eax]
	mov [esp], eax
	call _ZdlPv
	cmp esi, ebx
	jnz _ZN7COpenGL8ShutdownEv_90
_ZN7COpenGL8ShutdownEv_80:
	mov [esi], esi
	mov [esi+0x4], esi
	mov edi, [ebp+0x8]
	add edi, 0x2c
	mov eax, [ebp+0x8]
	mov ebx, [eax+0x2c]
	mov esi, eax
	add esi, 0x30
	cmp ebx, [eax+0x30]
	jz _ZN7COpenGL8ShutdownEv_100
_ZN7COpenGL8ShutdownEv_120:
	mov edx, [ebx]
	test edx, edx
	jz _ZN7COpenGL8ShutdownEv_110
	mov eax, [edx]
	mov [esp], edx
	call dword [eax+0x4]
_ZN7COpenGL8ShutdownEv_110:
	add ebx, 0x4
	mov edx, [esi]
	cmp ebx, edx
	jnz _ZN7COpenGL8ShutdownEv_120
_ZN7COpenGL8ShutdownEv_200:
	mov eax, [edi]
	mov [esp+0x8], edx
	mov [esp+0x4], eax
	mov [esp], edi
	call _ZNSt6vectorIP14COpenGLTextureSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7_
	mov edi, [ebp+0x8]
	add edi, 0xd8
	mov edx, [ebp+0x8]
	mov eax, [edx+0xd8]
	cmp eax, edi
	jz _ZN7COpenGL8ShutdownEv_130
	mov esi, eax
	jmp _ZN7COpenGL8ShutdownEv_140
_ZN7COpenGL8ShutdownEv_150:
	mov eax, esi
_ZN7COpenGL8ShutdownEv_140:
	mov ebx, [eax+0x8]
	mov [esp+0x4], ebx
	mov dword [esp], 0x1
	call glDeleteVertexArraysAPPLE
	mov dword [ebx], 0x0
	mov esi, [esi]
	cmp esi, edi
	jnz _ZN7COpenGL8ShutdownEv_150
_ZN7COpenGL8ShutdownEv_130:
	mov eax, [edi]
	cmp edi, eax
	jnz _ZN7COpenGL8ShutdownEv_160
	jmp _ZN7COpenGL8ShutdownEv_170
_ZN7COpenGL8ShutdownEv_180:
	mov eax, ebx
_ZN7COpenGL8ShutdownEv_160:
	mov ebx, [eax]
	mov [esp], eax
	call _ZdlPv
	cmp ebx, edi
	jnz _ZN7COpenGL8ShutdownEv_180
_ZN7COpenGL8ShutdownEv_170:
	mov [edi], edi
	mov [edi+0x4], edi
	mov eax, [ebp+0x8]
	mov edx, [eax+0x8a4]
	test edx, edx
	jz _ZN7COpenGL8ShutdownEv_190
	add eax, 0x8a4
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call glDeleteRenderbuffersEXT
_ZN7COpenGL8ShutdownEv_190:
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x8d40
	call glBindFramebufferEXT
	mov eax, [ebp+0x8]
	add eax, 0x898
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call glDeleteFramebuffersEXT
	mov eax, [ebp+0x8]
	add eax, 0x8b8
	mov [esp+0x4], eax
	mov dword [esp], 0x1
	call glDeleteTextures
	mov edx, [ebp+0x8]
	mov dword [edx+0x8b8], 0x0
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZN7COpenGL8ShutdownEv_100:
	mov edx, [esi]
	jmp _ZN7COpenGL8ShutdownEv_200


;COpenGL::SetDither(bool)
_ZN7COpenGL9SetDitherEb:
	push ebp
	mov ebp, esp
	mov ecx, [ebp+0x8]
	mov edx, [ebp+0xc]
	cmp [ecx+0x10], dl
	jz _ZN7COpenGL9SetDitherEb_10
	mov [ecx+0x10], dl
	test dl, dl
	jnz _ZN7COpenGL9SetDitherEb_20
	mov dword [ebp+0x8], 0xbd0
	pop ebp
	jmp glDisable
_ZN7COpenGL9SetDitherEb_20:
	mov dword [ebp+0x8], 0xbd0
	pop ebp
	jmp glEnable
_ZN7COpenGL9SetDitherEb_10:
	pop ebp
	ret
	nop


;COpenGL::COpenGL()
_ZN7COpenGLC1Ev:
	push ebp
	mov ebp, esp
	mov ecx, [ebp+0x8]
	mov dword [ecx], _ZTV7COpenGL+0x8
	lea eax, [ecx+0x14]
	mov dword [ecx+0x14], 0x0
	mov dword [eax+0x4], 0x0
	mov dword [eax+0x8], 0x0
	lea eax, [ecx+0x24]
	mov [ecx+0x24], eax
	mov [eax+0x4], eax
	lea eax, [ecx+0x2c]
	mov dword [ecx+0x2c], 0x0
	mov dword [eax+0x4], 0x0
	mov dword [eax+0x8], 0x0
	lea eax, [ecx+0x40]
	mov dword [eax+0x10], 0x0
	xor edx, edx
_ZN7COpenGLC1Ev_10:
	mov byte [eax], 0xfc
	add edx, 0x1
	add eax, 0x1
	cmp edx, 0x10
	jnz _ZN7COpenGLC1Ev_10
	lea eax, [ecx+0xd8]
	mov [ecx+0xd8], eax
	mov [eax+0x4], eax
	mov dword [ecx+0xe0], 0x0
	mov dword [ecx+0xe4], 0x0
	pop ebp
	ret


;COpenGL::~COpenGL()
_ZN7COpenGLD0Ev:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov edi, [ebp+0x8]
	mov dword [edi], _ZTV7COpenGL+0x8
	lea esi, [edi+0xd8]
	mov eax, [edi+0xd8]
	cmp eax, esi
	jnz _ZN7COpenGLD0Ev_10
	jmp _ZN7COpenGLD0Ev_20
_ZN7COpenGLD0Ev_30:
	mov eax, ebx
_ZN7COpenGLD0Ev_10:
	mov ebx, [eax]
	mov [esp], eax
	call _ZdlPv
	cmp esi, ebx
	jnz _ZN7COpenGLD0Ev_30
_ZN7COpenGLD0Ev_20:
	lea ecx, [edi+0x2c]
	mov edx, [ecx+0x4]
	mov eax, [edi+0x2c]
	cmp edx, eax
	jz _ZN7COpenGLD0Ev_40
_ZN7COpenGLD0Ev_50:
	add eax, 0x4
	cmp edx, eax
	jnz _ZN7COpenGLD0Ev_50
_ZN7COpenGLD0Ev_40:
	mov eax, [ecx]
	test eax, eax
	jz _ZN7COpenGLD0Ev_60
	mov [esp], eax
	call _ZdlPv
_ZN7COpenGLD0Ev_60:
	lea esi, [edi+0x24]
	mov eax, [edi+0x24]
	cmp eax, esi
	jnz _ZN7COpenGLD0Ev_70
	jmp _ZN7COpenGLD0Ev_80
_ZN7COpenGLD0Ev_90:
	mov eax, ebx
_ZN7COpenGLD0Ev_70:
	mov ebx, [eax]
	mov [esp], eax
	call _ZdlPv
	cmp esi, ebx
	jnz _ZN7COpenGLD0Ev_90
_ZN7COpenGLD0Ev_80:
	lea ecx, [edi+0x14]
	mov edx, [ecx+0x4]
	mov eax, [edi+0x14]
	cmp edx, eax
	jz _ZN7COpenGLD0Ev_100
_ZN7COpenGLD0Ev_110:
	add eax, 0x18
	cmp edx, eax
	jnz _ZN7COpenGLD0Ev_110
_ZN7COpenGLD0Ev_100:
	mov eax, [ecx]
	test eax, eax
	jz _ZN7COpenGLD0Ev_120
	mov [esp], eax
	call _ZdlPv
_ZN7COpenGLD0Ev_120:
	mov [ebp+0x8], edi
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _ZdlPv
	nop


;COpenGL::~COpenGL()
_ZN7COpenGLD1Ev:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov edi, [ebp+0x8]
	mov dword [edi], _ZTV7COpenGL+0x8
	lea esi, [edi+0xd8]
	mov eax, [edi+0xd8]
	cmp eax, esi
	jnz _ZN7COpenGLD1Ev_10
	jmp _ZN7COpenGLD1Ev_20
_ZN7COpenGLD1Ev_30:
	mov eax, ebx
_ZN7COpenGLD1Ev_10:
	mov ebx, [eax]
	mov [esp], eax
	call _ZdlPv
	cmp esi, ebx
	jnz _ZN7COpenGLD1Ev_30
_ZN7COpenGLD1Ev_20:
	lea ecx, [edi+0x2c]
	mov edx, [ecx+0x4]
	mov eax, [edi+0x2c]
	cmp edx, eax
	jz _ZN7COpenGLD1Ev_40
_ZN7COpenGLD1Ev_50:
	add eax, 0x4
	cmp edx, eax
	jnz _ZN7COpenGLD1Ev_50
_ZN7COpenGLD1Ev_40:
	mov eax, [ecx]
	test eax, eax
	jz _ZN7COpenGLD1Ev_60
	mov [esp], eax
	call _ZdlPv
_ZN7COpenGLD1Ev_60:
	lea esi, [edi+0x24]
	mov eax, [edi+0x24]
	cmp eax, esi
	jnz _ZN7COpenGLD1Ev_70
	jmp _ZN7COpenGLD1Ev_80
_ZN7COpenGLD1Ev_90:
	mov eax, ebx
_ZN7COpenGLD1Ev_70:
	mov ebx, [eax]
	mov [esp], eax
	call _ZdlPv
	cmp ebx, esi
	jnz _ZN7COpenGLD1Ev_90
_ZN7COpenGLD1Ev_80:
	lea ecx, [edi+0x14]
	mov edx, [ecx+0x4]
	mov eax, [edi+0x14]
	cmp edx, eax
	jz _ZN7COpenGLD1Ev_100
_ZN7COpenGLD1Ev_110:
	add eax, 0x18
	cmp edx, eax
	jnz _ZN7COpenGLD1Ev_110
_ZN7COpenGLD1Ev_100:
	mov eax, [ecx]
	test eax, eax
	jz _ZN7COpenGLD1Ev_120
	mov [ebp+0x8], eax
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _ZdlPv
_ZN7COpenGLD1Ev_120:
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
	nop


;std::list<unsigned long*, std::allocator<unsigned long*> >::erase(std::_List_iterator<unsigned long*>)
_ZNSt4listIPmSaIS0_EE5eraseESt14_List_iteratorIS0_E:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov ebx, [ebp+0xc]
	mov esi, [ebx]
	mov [esp], ebx
	call _ZNSt15_List_node_base6unhookEv
	mov [esp], ebx
	call _ZdlPv
	mov eax, esi
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret


;std::vector<COpenGL::CTexUnit, std::allocator<COpenGL::CTexUnit> >::_M_insert_aux(__gnu_cxx::__normal_iterator<COpenGL::CTexUnit*, std::vector<COpenGL::CTexUnit, std::allocator<COpenGL::CTexUnit> > >, COpenGL::CTexUnit const&)
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4c
	mov edi, [ebp+0xc]
	mov esi, [ebp+0x10]
	mov [ebp-0x3c], edi
	mov eax, [ebp+0x8]
	mov ecx, [eax+0x4]
	cmp ecx, [eax+0x8]
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__10
	lea edx, [ecx-0x18]
	test ecx, ecx
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__20
	mov eax, [ecx-0x18]
	mov [ecx], eax
	mov eax, [edx+0x4]
	mov [ecx+0x4], eax
	mov eax, [edx+0x8]
	mov [ecx+0x8], eax
	mov eax, [edx+0xc]
	mov [ecx+0xc], eax
	mov eax, [edx+0x10]
	mov [ecx+0x10], eax
	mov eax, [edx+0x14]
	mov [ecx+0x14], eax
	mov edx, [ebp+0x8]
	mov ecx, [edx+0x4]
	mov eax, edx
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__50:
	mov edx, ecx
	add ecx, 0x18
	mov [eax+0x4], ecx
	mov eax, [esi]
	mov [ebp-0x30], eax
	mov eax, [esi+0x4]
	mov [ebp-0x2c], eax
	mov eax, [esi+0x8]
	mov [ebp-0x28], eax
	mov eax, [esi+0xc]
	mov [ebp-0x24], eax
	mov eax, [esi+0x10]
	mov [ebp-0x20], eax
	mov eax, [esi+0x14]
	mov [ebp-0x1c], eax
	lea esi, [edx-0x18]
	mov ebx, edx
	mov ecx, esi
	sub ecx, [ebp-0x3c]
	sar ecx, 0x3
	lea eax, [ecx+ecx*4]
	mov edx, eax
	shl edx, 0x4
	add eax, edx
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	mov edx, eax
	shl edx, 0x10
	add eax, edx
	lea ecx, [ecx+eax*2]
	test ecx, ecx
	jle _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__30
	xor edx, edx
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__40:
	sub esi, 0x18
	sub ebx, 0x18
	mov eax, [esi]
	mov [ebx], eax
	mov eax, [esi+0x4]
	mov [ebx+0x4], eax
	mov eax, [esi+0x8]
	mov [ebx+0x8], eax
	mov eax, [esi+0xc]
	mov [ebx+0xc], eax
	mov eax, [esi+0x10]
	mov [ebx+0x10], eax
	mov eax, [esi+0x14]
	mov [ebx+0x14], eax
	add edx, 0x1
	cmp ecx, edx
	jnz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__40
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__30:
	mov eax, [ebp-0x30]
	mov [edi], eax
	mov eax, [ebp-0x2c]
	mov [edi+0x4], eax
	mov eax, [ebp-0x28]
	mov [edi+0x8], eax
	mov eax, [ebp-0x24]
	mov [edi+0xc], eax
	mov eax, [ebp-0x20]
	mov [edi+0x10], eax
	mov eax, [ebp-0x1c]
	mov [edi+0x14], eax
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__20:
	mov eax, [ebp+0x8]
	jmp _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__50
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__10:
	sub ecx, [eax]
	sar ecx, 0x3
	lea eax, [ecx+ecx*4]
	mov edx, eax
	shl edx, 0x4
	add eax, edx
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	mov edx, eax
	shl edx, 0x10
	add eax, edx
	lea eax, [ecx+eax*2]
	cmp eax, 0xaaaaaaa
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__60
	test eax, eax
	jnz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__70
	mov edx, 0x1
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__200:
	lea eax, [edx+edx*2]
	shl eax, 0x3
	mov [ebp-0x44], eax
	mov [esp], eax
	call _Znwm
	mov [ebp-0x40], eax
	mov eax, [ebp+0x8]
	mov edx, [eax]
	mov ecx, [ebp-0x40]
	cmp edi, edx
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__80
	mov ebx, edx
	jmp _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__90
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__110:
	mov edx, ebx
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__90:
	test ecx, ecx
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__100
	mov eax, [edx]
	mov [ecx], eax
	mov eax, [edx+0x4]
	mov [ecx+0x4], eax
	mov eax, [edx+0x8]
	mov [ecx+0x8], eax
	mov eax, [edx+0xc]
	mov [ecx+0xc], eax
	mov eax, [edx+0x10]
	mov [ecx+0x10], eax
	mov eax, [edx+0x14]
	mov [ecx+0x14], eax
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__100:
	add ebx, 0x18
	add ecx, 0x18
	cmp edi, ebx
	jnz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__110
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__80:
	test ecx, ecx
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__120
	mov eax, [esi]
	mov [ecx], eax
	mov eax, [esi+0x4]
	mov [ecx+0x4], eax
	mov eax, [esi+0x8]
	mov [ecx+0x8], eax
	mov eax, [esi+0xc]
	mov [ecx+0xc], eax
	mov eax, [esi+0x10]
	mov [ecx+0x10], eax
	mov eax, [esi+0x14]
	mov [ecx+0x14], eax
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__120:
	mov edi, [ebp+0x8]
	add edi, 0x4
	mov edx, [ebp+0x8]
	mov esi, [edx+0x4]
	mov edx, [ebp-0x3c]
	lea ebx, [ecx+0x18]
	cmp esi, edx
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__130
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__150:
	mov ecx, edx
	test ebx, ebx
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__140
	mov eax, [edx]
	mov [ebx], eax
	mov eax, [edx+0x4]
	mov [ebx+0x4], eax
	mov eax, [edx+0x8]
	mov [ebx+0x8], eax
	mov eax, [edx+0xc]
	mov [ebx+0xc], eax
	mov eax, [edx+0x10]
	mov [ebx+0x10], eax
	mov eax, [edx+0x14]
	mov [ebx+0x14], eax
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__140:
	lea edx, [ecx+0x18]
	add ebx, 0x18
	cmp edx, esi
	jnz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__150
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__130:
	mov edx, [edi]
	mov eax, [ebp+0x8]
	mov ecx, [eax]
	mov eax, ecx
	cmp edx, ecx
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__160
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__170:
	add eax, 0x18
	cmp edx, eax
	jnz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__170
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__160:
	test ecx, ecx
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__180
	mov [esp], ecx
	call _ZdlPv
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__180:
	mov eax, [ebp-0x40]
	mov edx, [ebp+0x8]
	mov [edx], eax
	mov [edx+0x4], ebx
	mov eax, [ebp-0x40]
	add eax, [ebp-0x44]
	mov [edx+0x8], eax
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__70:
	lea edx, [eax+eax]
	cmp edx, eax
	jb _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__190
	cmp edx, 0xaaaaaaa
	jbe _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__200
	call _ZSt17__throw_bad_allocv
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__190:
	mov edx, 0xaaaaaaa
	jmp _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__200
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__60:
	mov dword [esp], _cstring_vector_m_insert_
	call _ZSt20__throw_length_errorPKc


;std::vector<COpenGL::CTexUnit, std::allocator<COpenGL::CTexUnit> >::erase(__gnu_cxx::__normal_iterator<COpenGL::CTexUnit*, std::vector<COpenGL::CTexUnit, std::allocator<COpenGL::CTexUnit> > >, __gnu_cxx::__normal_iterator<COpenGL::CTexUnit*, std::vector<COpenGL::CTexUnit, std::allocator<COpenGL::CTexUnit> > >)
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7_:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4
	mov eax, [ebp+0x8]
	add eax, 0x4
	mov [ebp-0x10], eax
	mov eax, [ebp+0x8]
	mov edi, [eax+0x4]
	mov ebx, [ebp+0x10]
	mov esi, [ebp+0xc]
	mov ecx, edi
	sub ecx, ebx
	sar ecx, 0x3
	lea eax, [ecx+ecx*4]
	mov edx, eax
	shl edx, 0x4
	add eax, edx
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	mov edx, eax
	shl edx, 0x10
	add eax, edx
	lea ecx, [ecx+eax*2]
	test ecx, ecx
	jle _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__10
	xor edx, edx
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__20:
	mov eax, [ebx]
	mov [esi], eax
	mov eax, [ebx+0x4]
	mov [esi+0x4], eax
	mov eax, [ebx+0x8]
	mov [esi+0x8], eax
	mov eax, [ebx+0xc]
	mov [esi+0xc], eax
	mov eax, [ebx+0x10]
	mov [esi+0x10], eax
	mov eax, [ebx+0x14]
	mov [esi+0x14], eax
	add ebx, 0x18
	add esi, 0x18
	add edx, 0x1
	cmp ecx, edx
	jnz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__20
	mov eax, [ebp+0x8]
	mov edi, [eax+0x4]
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__10:
	mov eax, [ebp-0x10]
	mov edx, [eax]
	mov eax, esi
	cmp edx, esi
	jz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__30
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__40:
	add eax, 0x18
	cmp edx, eax
	jnz _ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__40
_ZNSt6vectorIN7COpenGL8CTexUnitESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__30:
	mov ecx, [ebp+0x10]
	sub ecx, [ebp+0xc]
	sar ecx, 0x3
	lea eax, [ecx+ecx*4]
	mov edx, eax
	shl edx, 0x4
	add eax, edx
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	mov edx, eax
	shl edx, 0x10
	add eax, edx
	lea eax, [ecx+eax*2]
	lea eax, [eax+eax*2]
	shl eax, 0x3
	sub edi, eax
	mov eax, [ebp+0x8]
	mov [eax+0x4], edi
	mov eax, [ebp+0xc]
	add esp, 0x4
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;std::vector<COpenGLTexture*, std::allocator<COpenGLTexture*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<COpenGLTexture**, std::vector<COpenGLTexture*, std::allocator<COpenGLTexture*> > >, COpenGLTexture* const&)
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov edi, [ebp+0x8]
	mov edx, [edi+0x4]
	cmp edx, [edi+0x8]
	jz _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__10
	test edx, edx
	jz _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__20
	mov eax, [edx-0x4]
	mov [edx], eax
	mov edx, [edi+0x4]
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__20:
	mov eax, edx
	add edx, 0x4
	mov [edi+0x4], edx
	mov edx, [ebp+0x10]
	mov ebx, [edx]
	lea edx, [eax-0x4]
	sub edx, [ebp+0xc]
	and edx, 0xfffffffc
	mov [esp+0x8], edx
	mov ecx, [ebp+0xc]
	mov [esp+0x4], ecx
	sub eax, edx
	mov [esp], eax
	call memmove
	mov eax, [ebp+0xc]
	mov [eax], ebx
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__10:
	mov eax, edx
	sub eax, [edi]
	sar eax, 0x2
	cmp eax, 0x3fffffff
	jz _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__30
	test eax, eax
	jnz _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__40
	mov edx, 0x1
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__100:
	shl edx, 0x2
	mov [ebp-0x1c], edx
	mov [esp], edx
	call _Znwm
	mov [ebp-0x20], eax
	mov eax, [edi]
	mov ebx, [ebp+0xc]
	sub ebx, eax
	mov [esp+0x8], ebx
	mov [esp+0x4], eax
	mov edx, [ebp-0x20]
	mov [esp], edx
	call memmove
	mov edx, [ebp-0x20]
	add edx, ebx
	jz _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__50
	mov ecx, [ebp+0x10]
	mov eax, [ecx]
	mov [edx], eax
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__50:
	lea esi, [edx+0x4]
	mov ebx, [edi+0x4]
	sub ebx, [ebp+0xc]
	mov [esp+0x8], ebx
	mov eax, [ebp+0xc]
	mov [esp+0x4], eax
	mov [esp], esi
	call memmove
	add ebx, esi
	mov edx, [edi+0x4]
	mov ecx, [edi]
	mov eax, ecx
	cmp ecx, edx
	jz _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__60
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__70:
	add eax, 0x4
	cmp eax, edx
	jnz _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__70
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__60:
	test ecx, ecx
	jz _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__80
	mov [esp], ecx
	call _ZdlPv
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__80:
	mov edx, [ebp-0x20]
	mov [edi], edx
	mov [edi+0x4], ebx
	mov eax, edx
	add eax, [ebp-0x1c]
	mov [edi+0x8], eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__40:
	lea edx, [eax+eax]
	cmp edx, eax
	jb _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__90
	cmp edx, 0x3fffffff
	jbe _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__100
	call _ZSt17__throw_bad_allocv
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__90:
	mov edx, 0x3fffffff
	jmp _ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__100
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__30:
	mov dword [esp], _cstring_vector_m_insert_
	call _ZSt20__throw_length_errorPKc


;std::vector<COpenGLTexture*, std::allocator<COpenGLTexture*> >::erase(__gnu_cxx::__normal_iterator<COpenGLTexture**, std::vector<COpenGLTexture*, std::allocator<COpenGLTexture*> > >, __gnu_cxx::__normal_iterator<COpenGLTexture**, std::vector<COpenGLTexture*, std::allocator<COpenGLTexture*> > >)
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7_:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov edi, [ebp+0xc]
	mov esi, [ebp+0x10]
	mov eax, [ebp+0x8]
	mov ebx, [eax+0x4]
	sub ebx, esi
	mov [esp+0x8], ebx
	mov [esp+0x4], esi
	mov [esp], edi
	call memmove
	mov eax, [ebp+0x8]
	mov edx, [eax+0x4]
	lea eax, [edi+ebx]
	cmp edx, eax
	jz _ZNSt6vectorIP14COpenGLTextureSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__10
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__20:
	add eax, 0x4
	cmp edx, eax
	jnz _ZNSt6vectorIP14COpenGLTextureSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__20
_ZNSt6vectorIP14COpenGLTextureSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7__10:
	sub esi, edi
	and esi, 0xfffffffc
	sub edx, esi
	mov eax, [ebp+0x8]
	mov [eax+0x4], edx
	mov eax, edi
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;Initialized global or static variables of COpenGL:
SECTION .data
_ZZN7COpenGL12LoadTexImageE10_D3DFORMATjjjmlmmmPKvE2ft: dd 0x1, 0x0, 0x0, 0x0, 0x0
_ZN7COpenGL11sFrameCountE: dd 0x0


;Initialized constant data of COpenGL:
SECTION .rdata
;VTable for COpenGLVertexProgram:
_ZTV20COpenGLVertexProgram: dd 0x0, 0x3b4be0, _ZN20COpenGLVertexProgramD1Ev, _ZN20COpenGLVertexProgramD0Ev
;VTable for COpenGL:
_ZTV7COpenGL: dd 0x0, 0x3b4c00, _ZN7COpenGLD1Ev, _ZN7COpenGLD0Ev


;Zero initialized global or static variables of COpenGL:
SECTION .bss
_ZN7COpenGL7sOpenGLE: resb 0x904


;All cstrings:
SECTION .rdata
_cstring_:		db "::",0
_cstring_s:		db "%s",0ah,0
_cstring_basic_stringsubs:		db "basic_string::substr",0
_cstring_gl_ext_blend_sub:		db "GL_EXT_blend_subtract",0
_cstring_gl_ext_blend_min:		db "GL_EXT_blend_minmax",0
_cstring_gl_ext_blend_fun:		db "GL_EXT_blend_func_separate",0
_cstring_gl_ext_stencil_w:		db "GL_EXT_stencil_wrap",0
_cstring_gl_ext_texture_l:		db "GL_EXT_texture_lod_bias",0
_cstring_vector_m_insert_:		db "vector::_M_insert_aux",0



;All constant floats and doubles:
SECTION .rdata
_data16_7fffffff:		dd 0x7fffffff, 0x0, 0x0, 0x0	; OWORD
_float_0_00000012:		dd 0x34000000	; 1.19209e-07

