Function at 0x64f310
Capabilities:
Link many functions at runtime

Disassembly:
push ecx
push esi
push edi
call fcn.0064edd0
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f335
push str.glActiveTexture
push eax
call esi
test eax, eax
jne 0x64f341
jmp 0x64f337
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f341
or byte [edi + 0xc], 1
mov dword [0x7a7d1c], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f362
push str.glAttachShader
push eax
call esi
test eax, eax
jne 0x64f36e
jmp 0x64f364
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f36e
or byte [edi + 0xc], 1
mov dword [0x7a7c80], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f38f
push str.glBindAttribLocation
push eax
call esi
test eax, eax
jne 0x64f39b
jmp 0x64f391
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f39b
or byte [edi + 0xc], 1
mov dword [0x7a7c6c], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f3bc
push str.glBindBuffer
push eax
call esi
test eax, eax
jne 0x64f3c8
jmp 0x64f3be
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f3c8
or byte [edi + 0xc], 1
mov dword [0x7a7d10], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f3e9
push str.glBindFramebuffer
push eax
call esi
test eax, eax
jne 0x64f3f5
jmp 0x64f3eb
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f3f5
or byte [edi + 0xc], 1
mov dword [0x7a7db0], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f414
push str.glBindRenderbuffer
push eax
call esi
test eax, eax
jne 0x64f41e
cmp byte [edi + 4], 0
jne 0x64f41e
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f43a
push str.glBindTexture
push eax
call esi
test eax, eax
jne 0x64f446
jmp 0x64f43c
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f446
or byte [edi + 0xc], 1
mov dword [0x7a7dc0], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f467
push str.glBlendColor
push eax
call esi
test eax, eax
jne 0x64f473
jmp 0x64f469
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f473
or byte [edi + 0xc], 1
mov dword [0x7a7ca0], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f492
push str.glBlendEquation
push eax
call esi
test eax, eax
jne 0x64f49c
cmp byte [edi + 4], 0
jne 0x64f49c
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f4b8
push str.glBlendEquationSeparate
push eax
call esi
test eax, eax
jne 0x64f4c4
jmp 0x64f4ba
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f4c4
or byte [edi + 0xc], 1
mov dword [0x7a7da4], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f4e3
push str.glBlendFunc
push eax
call esi
test eax, eax
jne 0x64f4ed
cmp byte [edi + 4], 0
jne 0x64f4ed
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f509
push str.glBlendFuncSeparate
push eax
call esi
test eax, eax
jne 0x64f515
jmp 0x64f50b
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f515
or byte [edi + 0xc], 1
mov dword [0x7a7da8], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f536
push str.glBufferData
push eax
call esi
test eax, eax
jne 0x64f542
jmp 0x64f538
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f542
or byte [edi + 0xc], 1
mov dword [0x7a7ce8], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f563
push str.glBufferSubData
push eax
call esi
test eax, eax
jne 0x64f56f
jmp 0x64f565
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f56f
or byte [edi + 0xc], 1
mov dword [0x7a7d0c], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f58e
push str.glCheckFramebufferStatus
push eax
call esi
test eax, eax
jne 0x64f598
cmp byte [edi + 4], 0
jne 0x64f598
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f5b4
push str.glClear
push eax
call esi
test eax, eax
jne 0x64f5c0
jmp 0x64f5b6
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f5c0
or byte [edi + 0xc], 1
mov dword [0x7a7c48], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f5e1
push str.glClearColor
push eax
call esi
test eax, eax
jne 0x64f5ed
jmp 0x64f5e3
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f5ed
or byte [edi + 0xc], 1
mov dword [0x7a7c38], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f60e
push str.glClearDepthf
push eax
call esi
test eax, eax
jne 0x64f61a
jmp 0x64f610
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f61a
or byte [edi + 0xc], 1
mov dword [0x7a7c40], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f63b
push str.glClearStencil
push eax
call esi
test eax, eax
jne 0x64f647
jmp 0x64f63d
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f647
or byte [edi + 0xc], 1
mov dword [0x7a7c5c], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f668
push str.glColorMask
push eax
call esi
test eax, eax
jne 0x64f674
jmp 0x64f66a
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f674
or byte [edi + 0xc], 1
mov dword [0x7a7c54], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f695
push str.glCompileShader
push eax
call esi
test eax, eax
jne 0x64f6a1
jmp 0x64f697
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f6a1
or byte [edi + 0xc], 1
mov dword [0x7a7c68], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f6c2
push str.glCompressedTexImage2D
push eax
call esi
test eax, eax
jne 0x64f6ce
jmp 0x64f6c4
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f6ce
or byte [edi + 0xc], 1
mov dword [0x7a7d3c], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f6ef
push str.glCompressedTexSubImage2D
push eax
call esi
test eax, eax
jne 0x64f6fb
jmp 0x64f6f1
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f6fb
or byte [edi + 0xc], 1
mov dword [0x7a7c1c], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f71a
push str.glCopyTexImage2D
push eax
call esi
test eax, eax
jne 0x64f724
cmp byte [edi + 4], 0
jne 0x64f724
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f73e
push str.glCopyTexSubImage2D
push eax
call esi
test eax, eax
jne 0x64f748
cmp byte [edi + 4], 0
jne 0x64f748
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f764
push str.glCreateProgram
push eax
call esi
test eax, eax
jne 0x64f770
jmp 0x64f766
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f770
or byte [edi + 0xc], 1
mov dword [0x7a7d9c], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f791
push str.glCreateShader
push eax
call esi
test eax, eax
jne 0x64f79d
jmp 0x64f793
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f79d
or byte [edi + 0xc], 1
mov dword [0x7a7c70], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f7be
push str.glCullFace
push eax
call esi
test eax, eax
jne 0x64f7ca
jmp 0x64f7c0
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f7ca
or byte [edi + 0xc], 1
mov dword [0x7a7da0], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f7eb
push str.glDeleteBuffers
push eax
call esi
test eax, eax
jne 0x64f7f7
jmp 0x64f7ed
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f7f7
or byte [edi + 0xc], 1
mov dword [0x7a7d00], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f816
push str.glDeleteFramebuffers
push eax
call esi
test eax, eax
jne 0x64f820
cmp byte [edi + 4], 0
jne 0x64f820
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f83c
push str.glDeleteTextures
push eax
call esi
test eax, eax
jne 0x64f848
jmp 0x64f83e
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f848
or byte [edi + 0xc], 1
mov dword [0x7a7c10], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f867
push str.glDeleteProgram
push eax
call esi
test eax, eax
jne 0x64f871
cmp byte [edi + 4], 0
jne 0x64f871
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f88b
push str.glDeleteRenderbuffers
push eax
call esi
test eax, eax
jne 0x64f895
cmp byte [edi + 4], 0
jne 0x64f895
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f8b1
push str.glDeleteShader
push eax
call esi
test eax, eax
jne 0x64f8bd
jmp 0x64f8b3
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f8bd
or byte [edi + 0xc], 1
mov dword [0x7a7d40], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f8dc
push str.glDetachShader
push eax
call esi
test eax, eax
jne 0x64f8e6
cmp byte [edi + 4], 0
jne 0x64f8e6
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f902
push str.glDepthFunc
push eax
call esi
test eax, eax
jne 0x64f90e
jmp 0x64f904
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f90e
or byte [edi + 0xc], 1
mov dword [0x7a7d94], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f92f
push str.glDepthMask
push eax
call esi
test eax, eax
jne 0x64f93b
jmp 0x64f931
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f93b
or byte [edi + 0xc], 1
mov dword [0x7a7c44], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f95a
push str.glDepthRangef
push eax
call esi
test eax, eax
jne 0x64f964
cmp byte [edi + 4], 0
jne 0x64f964
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f980
push str.glDisable
push eax
call esi
test eax, eax
jne 0x64f98c
jmp 0x64f982
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f98c
or byte [edi + 0xc], 1
mov dword [0x7a7c30], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f9ad
push str.glDisableVertexAttribArray
push eax
call esi
test eax, eax
jne 0x64f9b9
jmp 0x64f9af
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f9b9
or byte [edi + 0xc], 1
mov dword [0x7a7cfc], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64f9da
push str.glDrawArrays
push eax
call esi
test eax, eax
jne 0x64f9e6
jmp 0x64f9dc
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64f9e6
or byte [edi + 0xc], 1
mov dword [0x7a7ca8], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fa07
push str.glDrawElements
push eax
call esi
test eax, eax
jne 0x64fa13
jmp 0x64fa09
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64fa13
or byte [edi + 0xc], 1
mov dword [0x7a7cd8], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fa34
push str.glEnable
push eax
call esi
test eax, eax
jne 0x64fa40
jmp 0x64fa36
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64fa40
or byte [edi + 0xc], 1
mov dword [0x7a7c4c], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fa61
push str.glEnableVertexAttribArray
push eax
call esi
test eax, eax
jne 0x64fa6d
jmp 0x64fa63
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64fa6d
or byte [edi + 0xc], 1
mov dword [0x7a7c98], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fa8e
push str.glFinish
push eax
call esi
test eax, eax
jne 0x64fa9a
jmp 0x64fa90
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64fa9a
or byte [edi + 0xc], 1
mov dword [0x7a7d80], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fab9
push str.glFlush
push eax
call esi
test eax, eax
jne 0x64fac3
cmp byte [edi + 4], 0
jne 0x64fac3
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fadd
push str.glFramebufferRenderbuffer
push eax
call esi
test eax, eax
jne 0x64fae7
cmp byte [edi + 4], 0
jne 0x64fae7
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fb01
push str.glFramebufferTexture2D
push eax
call esi
test eax, eax
jne 0x64fb0b
cmp byte [edi + 4], 0
jne 0x64fb0b
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fb27
push str.glFrontFace
push eax
call esi
test eax, eax
jne 0x64fb33
jmp 0x64fb29
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64fb33
or byte [edi + 0xc], 1
mov dword [0x7a7d8c], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fb54
push str.glGenBuffers
push eax
call esi
test eax, eax
jne 0x64fb60
jmp 0x64fb56
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64fb60
or byte [edi + 0xc], 1
mov dword [0x7a7ce0], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fb7f
push str.glGenerateMipmap
push eax
call esi
test eax, eax
jne 0x64fb89
cmp byte [edi + 4], 0
jne 0x64fb89
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fba3
push str.glGenFramebuffers
push eax
call esi
test eax, eax
jne 0x64fbad
cmp byte [edi + 4], 0
jne 0x64fbad
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fbc7
push str.glGenRenderbuffers
push eax
call esi
test eax, eax
jne 0x64fbd1
cmp byte [edi + 4], 0
jne 0x64fbd1
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fbed
push str.glGenTextures
push eax
call esi
test eax, eax
jne 0x64fbf9
jmp 0x64fbef
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64fbf9
or byte [edi + 0xc], 1
mov dword [0x7a7c14], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fc18
push str.glGetActiveAttrib
push eax
call esi
test eax, eax
jne 0x64fc22
cmp byte [edi + 4], 0
jne 0x64fc22
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fc3c
push str.glGetActiveUniform
push eax
call esi
test eax, eax
jne 0x64fc46
cmp byte [edi + 4], 0
jne 0x64fc46
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fc60
push str.glGetAttachedShaders
push eax
call esi
test eax, eax
jne 0x64fc6a
cmp byte [edi + 4], 0
jne 0x64fc6a
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fc86
push str.glGetAttribLocation
push eax
call esi
test eax, eax
jne 0x64fc92
jmp 0x64fc88
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64fc92
or byte [edi + 0xc], 1
mov dword [0x7a7db4], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fcb1
push str.glGetBooleanv
push eax
call esi
test eax, eax
jne 0x64fcbb
cmp byte [edi + 4], 0
jne 0x64fcbb
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fcd5
push str.glGetBufferParameteriv
push eax
call esi
test eax, eax
jne 0x64fcdf
cmp byte [edi + 4], 0
jne 0x64fcdf
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fcfb
push str.glGetError
push eax
call esi
test eax, eax
jne 0x64fd07
jmp 0x64fcfd
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64fd07
or byte [edi + 0xc], 1
mov dword [0x7a7d84], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fd26
push str.glGetFloatv
push eax
call esi
test eax, eax
jne 0x64fd30
cmp byte [edi + 4], 0
jne 0x64fd30
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fd4a
push str.glGetFramebufferAttachmentParameteriv
push eax
call esi
test eax, eax
jne 0x64fd54
cmp byte [edi + 4], 0
jne 0x64fd54
or byte [edi + 0xc], 1
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fd70
push str.glGetIntegerv
push eax
call esi
test eax, eax
jne 0x64fd7c
jmp 0x64fd72
xor eax, eax
cmp byte [edi + 4], 0
jne 0x64fd7c
or byte [edi + 0xc], 1
mov dword [0x7a7dbc], eax
call fcn.0064edd0
mov edi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x64fd9d