// File: /workspace/github_c_makefile_star2_O2/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 0x293ce(%rip), %rsi     # 0x6eabf
callq 0x68d0
testl %eax, %eax
je 0x4586e
leaq 0x293dc(%rip), %rsi     # 0x6eae1
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x45861
leaq 0x293df(%rip), %rsi     # 0x6eafb
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x45861
leaq 0x293e3(%rip), %rsi     # 0x6eb16
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4588b
leaq 0x293d8(%rip), %rsi     # 0x6eb22
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4588b
leaq 0x293e0(%rip), %rsi     # 0x6eb41
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x4589b
leaq 0x293e9(%rip), %rsi     # 0x6eb61
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x458ec
leaq 0x293f2(%rip), %rsi     # 0x6eb81
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x45906
leaq 0x293ff(%rip), %rsi     # 0x6eba5
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x458f9
leaq 0x29408(%rip), %rsi     # 0x6ebc5
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x458f9
leaq 0x29405(%rip), %rsi     # 0x6ebd9
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x45913
leaq 0x29401(%rip), %rsi     # 0x6ebec
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x45923
leaq 0x29408(%rip), %rsi     # 0x6ec0a
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x45933
leaq 0x29407(%rip), %rsi     # 0x6ec20
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
je 0x458aa
leaq 0x2940c(%rip), %rsi     # 0x6ec3c
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
sete %al
leaq 0x131a0c(%rip), %r14    # 0x177250
movb 0x30(%r14), %bpl
cmpb $0x2, %bpl
setl %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x45943
movb $0x2, 0x30(%r14)
jmp 0x45896
leaq 0x1319e8(%rip), %rax    # 0x177250
movb $0x1, 0x19(%rax)
jmp 0x45896
movq 0x5adf1b(%rip), %rax    # 0x5f3790
leaq 0x1319d4(%rip), %rsi    # 0x177250
addq $0x14, %rsi
movl $0x84ff, %edi           # imm = 0x84FF
popq %rbx
popq %r14
popq %rbp
jmpq *%rax
leaq 0x1319be(%rip), %rax    # 0x177250
movb $0x1, 0x18(%rax)
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x1319ae(%rip), %rax    # 0x177250
movw $0x101, 0x1a(%rax)      # imm = 0x101
jmp 0x45896
callq *0x5adef8(%rip)         # 0x5f37a8
testl %eax, %eax
jne 0x458aa
movl $0x8b8c, %edi           # imm = 0x8B8C
callq *0x5adee1(%rip)         # 0x5f37a0
testq %rax, %rax
je 0x45972
leaq 0x131981(%rip), %rcx    # 0x177250
leaq 0xc(%rcx), %rdx
addq $0x10, %rcx
leaq 0x26700(%rip), %rsi     # 0x6bfde
movq %rax, %rdi
xorl %eax, %eax
popq %rbx
popq %r14
popq %rbp
jmp 0x60f0
leaq 0x13195d(%rip), %rax    # 0x177250
movb $0x1, 0x1a(%rax)
jmp 0x45896
leaq 0x131950(%rip), %rax    # 0x177250
movb $0x1, 0x1d(%rax)
jmp 0x45896
leaq 0x131943(%rip), %rax    # 0x177250
movb $0x1, 0x1c(%rax)
jmp 0x45896
leaq 0x131936(%rip), %rax    # 0x177250
movb $0x1, 0x1e(%rax)
jmp 0x45896
leaq 0x131926(%rip), %rax    # 0x177250
movb $0x1, 0x1f(%rax)
jmp 0x45896
leaq 0x131916(%rip), %rax    # 0x177250
movb $0x1, 0x20(%rax)
jmp 0x45896
leaq 0x292ff(%rip), %rsi     # 0x6ec49
movq %rbx, %rdi
callq 0x68d0
testl %eax, %eax
sete %al
testb %bpl, %bpl
setle %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x45896
movb $0x1, 0x30(%r14)
jmp 0x45896
callq *0x5ade30(%rip)         # 0x5f37a8
cmpl $0x500, %eax            # imm = 0x500
jne 0x45896
leaq 0x1318c6(%rip), %rax    # 0x177250
movq $0x1, 0xc(%rax)
jmp 0x45896