// File: /workspace/github_c_makefile_star2_O1/jonof[P]jftekwar/jfbuild/src/glbuild.c
// Function: enumerate_configure
static void enumerate_configure(const char *ext) {
	if (!Bstrcmp(ext, "GL_EXT_texture_filter_anisotropic")) {
			// supports anisotropy. get the maximum anisotropy level
#ifdef GL_EXT_texture_filter_anisotropic
		glfunc.glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &glinfo.maxanisotropy);
#endif
	} else if (!Bstrcmp(ext, "GL_EXT_texture_edge_clamp") ||
			!Bstrcmp(ext, "GL_SGIS_texture_edge_clamp")) {
			// supports GL_CLAMP_TO_EDGE
		glinfo.clamptoedge = 1;
	} else if (!Bstrcmp(ext, "GL_EXT_bgra") ||
			!Bstrcmp(ext, "GL_EXT_texture_format_BGRA8888")) {
			// support bgra textures
		glinfo.bgra = 1;
	} else if (!Bstrcmp(ext, "GL_EXT_texture_compression_s3tc")) {
			// support DXT1 and DXT5 texture compression
		glinfo.texcomprdxt1 = 1;
		glinfo.texcomprdxt5 = 1;
	} else if (!Bstrcmp(ext, "GL_EXT_texture_compression_dxt1")) {
			// support DXT1 texture compression
		glinfo.texcomprdxt1 = 1;
	} else if (!Bstrcmp(ext, "GL_OES_compressed_ETC1_RGB8_texture")) {
			// support ETC1 texture compression
		glinfo.texcompretc1 = 1;
	} else if (!Bstrcmp(ext, "GL_ARB_texture_non_power_of_two") ||
			!Bstrcmp(ext, "GL_OES_texture_npot")) {
			// support non-power-of-two texture sizes
		glinfo.texnpot = 1;
	} else if (!Bstrcmp(ext, "GL_ARB_multisample")) {
			// supports multisampling
		glinfo.multisample = 1;
	} else if (!Bstrcmp(ext, "GL_NV_multisample_filter_hint")) {
			// supports nvidia's multisample hint extension
		glinfo.nvmultisamplehint = 1;
	} else if (!Bstrcmp(ext, "GL_ARB_sample_shading")) {
			// supports sample shading extension
		glinfo.sampleshading = 1;
	} else if (!strcmp(ext, "GL_ARB_shading_language_100")) {
		const char *ver;

		// Clear the error queue, then query the version string.
		while (glfunc.glGetError() != GL_NO_ERROR) { }
		ver = (const char *) glfunc.glGetString(GL_SHADING_LANGUAGE_VERSION);

		if (!ver && glfunc.glGetError() == GL_INVALID_ENUM) {
			// GLSL 1.00 (1.051).
			glinfo.glslmajver = 1;
			glinfo.glslminver = 0;
		} else if (ver) {
			// GLSL 1.10 or newer.
			sscanf(ver, "%d.%d", &glinfo.glslmajver, &glinfo.glslminver);
		}
#ifdef GL_KHR_debug
	} else if (!strcmp(ext, "GL_KHR_debug") && glinfo.debugext < 2) {
		glinfo.debugext = 2;
#endif
#ifdef GL_ARB_debug_output
	} else if (!strcmp(ext, "GL_ARB_debug_output") && glinfo.debugext < 1) {
		glinfo.debugext = 1;
#endif
	}
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
leaq 0x2c311(%rip), %rsi     # 0x78a5f
callq 0x68d0
testl %eax, %eax
je 0x4c8cb
leaq 0x2c31f(%rip), %rsi     # 0x78a81
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c8be
leaq 0x2c322(%rip), %rsi     # 0x78a9b
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c8be
leaq 0x2c326(%rip), %rsi     # 0x78ab6
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c8e8
leaq 0x2c31b(%rip), %rsi     # 0x78ac2
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c8e8
leaq 0x2c323(%rip), %rsi     # 0x78ae1
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c8f8
leaq 0x2c32c(%rip), %rsi     # 0x78b01
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c949
leaq 0x2c335(%rip), %rsi     # 0x78b21
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c963
leaq 0x2c342(%rip), %rsi     # 0x78b45
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c956
leaq 0x2c34b(%rip), %rsi     # 0x78b65
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c956
leaq 0x2c348(%rip), %rsi     # 0x78b79
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c970
leaq 0x2c344(%rip), %rsi     # 0x78b8c
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c980
leaq 0x2c34b(%rip), %rsi     # 0x78baa
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c990
leaq 0x2c34a(%rip), %rsi     # 0x78bc0
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4c907
leaq 0x2c34f(%rip), %rsi     # 0x78bdc
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
sete %al
leaq 0x1309af(%rip), %r14    # 0x17d250
movb 0x30(%r14), %bpl
cmpb $0x2, %bpl
setl %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x4c9a0
movb $0x2, 0x30(%r14)
jmp 0x4c8f3
leaq 0x13098b(%rip), %rax    # 0x17d250
movb $0x1, 0x19(%rax)
jmp 0x4c8f3
movq 0x5acebe(%rip), %rax    # 0x5f9790
leaq 0x130977(%rip), %rsi    # 0x17d250
addq $0x14, %rsi
movl $0x84ff, %edi           # imm = 0x84FF
popq %rbx
popq %r14
popq %rbp
jmpq *%rax
leaq 0x130961(%rip), %rax    # 0x17d250
movb $0x1, 0x18(%rax)
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x130951(%rip), %rax    # 0x17d250
movw $0x101, 0x1a(%rax)      # imm = 0x101
jmp 0x4c8f3
callq *0x5ace9b(%rip)         # 0x5f97a8
testl %eax, %eax
jne 0x4c907
movl $0x8b8c, %edi           # imm = 0x8B8C
callq *0x5ace84(%rip)         # 0x5f97a0
testq %rax, %rax
je 0x4c9cf
leaq 0x130924(%rip), %rcx    # 0x17d250
leaq 0xc(%rcx), %rdx
addq $0x10, %rcx
leaq 0x29663(%rip), %rsi     # 0x75f9e
movq %rax, %rdi
xorl %eax, %eax
popq %rbx
popq %r14
popq %rbp
jmp 0x60f0
leaq 0x130900(%rip), %rax    # 0x17d250
movb $0x1, 0x1a(%rax)
jmp 0x4c8f3
leaq 0x1308f3(%rip), %rax    # 0x17d250
movb $0x1, 0x1d(%rax)
jmp 0x4c8f3
leaq 0x1308e6(%rip), %rax    # 0x17d250
movb $0x1, 0x1c(%rax)
jmp 0x4c8f3
leaq 0x1308d9(%rip), %rax    # 0x17d250
movb $0x1, 0x1e(%rax)
jmp 0x4c8f3
leaq 0x1308c9(%rip), %rax    # 0x17d250
movb $0x1, 0x1f(%rax)
jmp 0x4c8f3
leaq 0x1308b9(%rip), %rax    # 0x17d250
movb $0x1, 0x20(%rax)
jmp 0x4c8f3
leaq 0x2c242(%rip), %rsi     # 0x78be9
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
sete %al
testb %bpl, %bpl
setle %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x4c8f3
movb $0x1, 0x30(%r14)
jmp 0x4c8f3
callq *0x5acdd3(%rip)         # 0x5f97a8
cmpl $0x500, %eax            # imm = 0x500
jne 0x4c8f3
leaq 0x130869(%rip), %rax    # 0x17d250
movq $0x1, 0xc(%rax)
jmp 0x4c8f3