	.file	"uniform.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	" COULD NOT LOAD SHADER! "
	.text
	.globl	ProgramSize
	.type	ProgramSize, @function
ProgramSize:
.LFB22:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r12
	pushq	%rbx
	.cfi_offset 12, -24
	.cfi_offset 3, -32
1:	call	mcount
	movl	$0, %esi
	movl	$0, %eax
	call	open
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L4
	movl	$2, %edx
	movl	$0, %esi
	movl	%eax, %edi
	call	lseek
	movq	%rax, %r12
	leaq	15(%rax), %rax
	andq	$-16, %rax
	subq	%rax, %rsp
	movq	%r12, %rdx
	movq	%rsp, %rsi
	movl	%ebx, %edi
	call	read
	movl	%ebx, %edi
	call	close
.L1:
	movq	%r12, %rax
	leaq	-16(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%rbp
	.cfi_remember_state
	.cfi_def_cfa 7, 8
	ret
.L4:
	.cfi_restore_state
	movl	$.LC0, %edi
	call	puts
	movq	$-1, %r12
	jmp	.L1
	.cfi_endproc
.LFE22:
	.size	ProgramSize, .-ProgramSize
	.section	.rodata.str1.1
.LC1:
	.string	" SHADER CONTAINS ERRORS! "
.LC2:
	.string	"%s \n"
	.text
	.globl	outputLog
	.type	outputLog, @function
outputLog:
.LFB25:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r12
	pushq	%rbx
	subq	$16, %rsp
	.cfi_offset 12, -24
	.cfi_offset 3, -32
1:	call	mcount
	movl	%edi, %r12d
	movl	$0, -20(%rbp)
	movl	$0, -24(%rbp)
	leaq	-20(%rbp), %rdx
	movl	$35716, %esi
	call	*__glewGetShaderiv(%rip)
	movslq	-20(%rbp), %rdi
	call	malloc
	movq	%rax, %rbx
	movl	$.LC1, %edi
	call	puts
	movq	%rbx, %rcx
	leaq	-24(%rbp), %rdx
	movl	-20(%rbp), %esi
	movl	%r12d, %edi
	call	*__glewGetShaderInfoLog(%rip)
	movq	%rbx, %rsi
	movl	$.LC2, %edi
	movl	$0, %eax
	call	printf
	movq	%rbx, %rdi
	call	free
	addq	$16, %rsp
	popq	%rbx
	popq	%r12
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	outputLog, .-outputLog
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC3:
	.string	" COULD NOT COMPILE SHADER: %d \n"
	.text
	.globl	compileShader
	.type	compileShader, @function
compileShader:
.LFB24:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$24, %rsp
	.cfi_offset 3, -24
1:	call	mcount
	movl	%edi, %ebx
	call	*__glewCompileShader(%rip)
	movl	$33280, -20(%rbp)
	leaq	-20(%rbp), %rdx
	movl	$35713, %esi
	movl	%ebx, %edi
	call	*__glewGetShaderiv(%rip)
	cmpl	$0, -20(%rbp)
	je	.L9
	movl	%ebx, %eax
.L6:
	movq	-8(%rbp), %rbx
	leave
	.cfi_remember_state
	.cfi_def_cfa 7, 8
	ret
.L9:
	.cfi_restore_state
	movl	%ebx, %esi
	movl	$.LC3, %edi
	movl	$0, %eax
	call	printf
	movl	%ebx, %edi
	call	outputLog
	movl	%ebx, %edi
	call	*__glewDeleteShader(%rip)
	movl	$-1, %eax
	jmp	.L6
	.cfi_endproc
.LFE24:
	.size	compileShader, .-compileShader
	.section	.rodata.str1.1
.LC4:
	.string	"rb"
	.section	.rodata.str1.8
	.align 8
.LC5:
	.string	" COULD NOT COMPILE THE SHADERS! "
	.text
	.globl	createShader
	.type	createShader, @function
createShader:
.LFB23:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$8, %rsp
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
1:	call	mcount
	movq	%rdi, %rbx
	movq	%rsi, %r12
	movl	$1, %edi
	call	*__glewCreateShaderObjectARB(%rip)
	movl	%eax, vertShader(%rip)
	movl	$1, %edi
	call	*__glewCreateShaderObjectARB(%rip)
	movl	%eax, fragShader(%rip)
	movq	%rbx, vertShader+16(%rip)
	movq	%r12, fragShader+16(%rip)
	movl	$.LC4, %esi
	movq	%rbx, %rdi
	call	fopen
	movq	%rax, vertShader+8(%rip)
	movl	$.LC4, %esi
	movq	fragShader+16(%rip), %rdi
	call	fopen
	movq	%rax, fragShader+8(%rip)
	movq	vertShader+16(%rip), %rdi
	call	ProgramSize
	movq	%rax, %r13
	movq	fragShader+16(%rip), %rdi
	call	ProgramSize
	movq	%rax, %rbx
	movq	%r13, %rdi
	call	malloc
	movq	%rax, %r12
	movq	%rax, vertShader+24(%rip)
	movq	%rbx, %rdi
	call	malloc
	movq	%rax, fragShader+24(%rip)
	movq	vertShader+8(%rip), %rcx
	movl	$1, %edx
	movq	%r13, %rsi
	movq	%r12, %rdi
	call	fread
	movl	%eax, vertShader(%rip)
	movq	fragShader+8(%rip), %rcx
	movl	$1, %edx
	movq	%rbx, %rsi
	movq	fragShader+24(%rip), %rdi
	call	fread
	movl	%eax, fragShader(%rip)
	cmpq	$0, vertShader+24(%rip)
	je	.L11
	cmpq	$0, fragShader+24(%rip)
	je	.L11
	movl	$0, %ecx
	movl	$vertShader+24, %edx
	movl	$1, %esi
	movl	vertShader(%rip), %edi
	call	*__glewShaderSource(%rip)
	movl	$0, %ecx
	movl	$fragShader+24, %edx
	movl	$1, %esi
	movl	fragShader(%rip), %edi
	call	*__glewShaderSource(%rip)
	movl	vertShader(%rip), %edi
	call	compileShader
	testl	%eax, %eax
	je	.L13
	movl	fragShader(%rip), %edi
	call	compileShader
	testl	%eax, %eax
	jne	.L14
.L13:
	movl	$.LC5, %edi
	call	puts
.L14:
	movq	vertShader+8(%rip), %rdi
	call	fclose
	movq	fragShader+8(%rip), %rdi
	call	fclose
	movq	vertShader+24(%rip), %rdi
	call	free
	movq	fragShader+24(%rip), %rdi
	call	free
	addq	$8, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%rbp
	.cfi_remember_state
	.cfi_def_cfa 7, 8
	ret
.L11:
	.cfi_restore_state
	movl	$1, %edi
	call	exit
	.cfi_endproc
.LFE23:
	.size	createShader, .-createShader
	.section	.rodata.str1.1
.LC6:
	.string	" COULD NOT LINK PROGRAM: "
	.text
	.globl	createProgram
	.type	createProgram, @function
createProgram:
.LFB26:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$24, %rsp
	.cfi_offset 3, -24
1:	call	mcount
	movl	$0, -20(%rbp)
	movl	$0, -24(%rbp)
	call	*__glewCreateProgram(%rip)
	movl	%eax, %ebx
	movl	vertShader(%rip), %esi
	movl	%eax, %edi
	call	*__glewAttachShader(%rip)
	movl	fragShader(%rip), %esi
	movl	%ebx, %edi
	call	*__glewAttachShader(%rip)
	movl	%ebx, %edi
	call	*__glewLinkProgram(%rip)
	leaq	-20(%rbp), %rdx
	movl	$35714, %esi
	movl	%ebx, %edi
	call	*__glewGetProgramiv(%rip)
	cmpl	$0, -20(%rbp)
	je	.L18
	movl	%ebx, %eax
.L15:
	movq	-8(%rbp), %rbx
	leave
	.cfi_remember_state
	.cfi_def_cfa 7, 8
	ret
.L18:
	.cfi_restore_state
	movl	$0, %ecx
	leaq	-24(%rbp), %rdx
	movl	$0, %esi
	movl	%ebx, %edi
	call	*__glewGetProgramInfoLog(%rip)
	movl	$.LC6, %edi
	call	puts
	movl	%ebx, %edi
	call	*__glewDeleteShader(%rip)
	movl	$-1, %eax
	jmp	.L15
	.cfi_endproc
.LFE26:
	.size	createProgram, .-createProgram
	.globl	linkProgram
	.type	linkProgram, @function
linkProgram:
.LFB27:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
1:	call	mcount
	call	*__glewLinkProgram(%rip)
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	linkProgram, .-linkProgram
	.globl	Location
	.type	Location, @function
Location:
.LFB28:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r12
	pushq	%rbx
	.cfi_offset 12, -24
	.cfi_offset 3, -32
1:	call	mcount
	movl	%edi, %ebx
	movq	%rdx, %r12
	movq	%rdx, %rsi
	call	*__glewGetAttribLocation(%rip)
	movl	%eax, %esi
	movq	%r12, %rdx
	movl	%ebx, %edi
	call	*__glewBindAttribLocation(%rip)
	popq	%rbx
	popq	%r12
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	Location, .-Location
	.globl	Uniform
	.type	Uniform, @function
Uniform:
.LFB29:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
1:	call	mcount
	movss	%xmm0, -4(%rbp)
	call	*__glewGetUniformLocation(%rip)
	movl	%eax, %edi
	movl	%eax, location(%rip)
	movss	-4(%rbp), %xmm0
	call	*__glewUniform1f(%rip)
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	Uniform, .-Uniform
	.globl	Uniform4x4
	.type	Uniform4x4, @function
Uniform4x4:
.LFB30:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$8, %rsp
	.cfi_offset 3, -24
1:	call	mcount
	movq	%rcx, %rbx
	call	*__glewGetUniformLocation(%rip)
	movl	%eax, %edi
	movl	%eax, location(%rip)
	movq	%rbx, %rcx
	movl	$0, %edx
	movl	$1, %esi
	call	*__glewUniformMatrix4fv(%rip)
	movq	-8(%rbp), %rbx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	Uniform4x4, .-Uniform4x4
	.globl	Uniform3x3
	.type	Uniform3x3, @function
Uniform3x3:
.LFB31:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$8, %rsp
	.cfi_offset 3, -24
1:	call	mcount
	movq	%rcx, %rbx
	call	*__glewGetUniformLocation(%rip)
	movl	%eax, %edi
	movl	%eax, location(%rip)
	movq	%rbx, %rcx
	movl	$0, %edx
	movl	$1, %esi
	call	*__glewUniformMatrix3fv(%rip)
	movq	-8(%rbp), %rbx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	Uniform3x3, .-Uniform3x3
	.globl	sendUniform4f
	.type	sendUniform4f, @function
sendUniform4f:
.LFB32:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
1:	call	mcount
	movss	%xmm0, -4(%rbp)
	movss	%xmm1, -8(%rbp)
	movss	%xmm2, -12(%rbp)
	movss	%xmm3, -16(%rbp)
	call	*__glewGetUniformLocation(%rip)
	movl	%eax, %edi
	movl	%eax, location(%rip)
	movss	-16(%rbp), %xmm3
	movss	-12(%rbp), %xmm2
	movss	-8(%rbp), %xmm1
	movss	-4(%rbp), %xmm0
	call	*__glewUniform4f(%rip)
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	sendUniform4f, .-sendUniform4f
	.globl	sendUniform3f
	.type	sendUniform3f, @function
sendUniform3f:
.LFB33:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
1:	call	mcount
	movss	%xmm0, -4(%rbp)
	movss	%xmm1, -8(%rbp)
	movss	%xmm2, -12(%rbp)
	call	*__glewGetUniformLocation(%rip)
	movl	%eax, %edi
	movl	%eax, location(%rip)
	movss	-12(%rbp), %xmm2
	movss	-8(%rbp), %xmm1
	movss	-4(%rbp), %xmm0
	call	*__glewUniform3f(%rip)
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	sendUniform3f, .-sendUniform3f
	.globl	sendUniform
	.type	sendUniform, @function
sendUniform:
.LFB34:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
1:	call	mcount
	movss	%xmm0, -4(%rbp)
	call	*__glewGetUniformLocation(%rip)
	movl	%eax, %edi
	movl	%eax, location(%rip)
	movss	-4(%rbp), %xmm0
	call	*__glewUniform1f(%rip)
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	sendUniform, .-sendUniform
	.globl	bindShader
	.type	bindShader, @function
bindShader:
.LFB35:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
1:	call	mcount
	call	*__glewUseProgram(%rip)
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	bindShader, .-bindShader
	.section	.rodata.str1.1
.LC7:
	.string	" COULD NOT DELETE SHADER: "
	.text
	.globl	DeleteShader
	.type	DeleteShader, @function
DeleteShader:
.LFB36:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$24, %rsp
	.cfi_offset 3, -24
1:	call	mcount
	movl	%edi, %ebx
	movl	$33280, -20(%rbp)
	movl	$0, -24(%rbp)
	movl	$0, %edi
	call	*__glewUseProgram(%rip)
	movl	vertShader(%rip), %esi
	movl	%ebx, %edi
	call	*__glewDetachShader(%rip)
	movl	fragShader(%rip), %esi
	movl	%ebx, %edi
	call	*__glewDetachShader(%rip)
	movl	vertShader(%rip), %edi
	call	*__glewDeleteShader(%rip)
	movl	fragShader(%rip), %edi
	call	*__glewDeleteShader(%rip)
	movl	%ebx, %edi
	call	*__glewDeleteShader(%rip)
	leaq	-20(%rbp), %rdx
	movl	$35712, %esi
	movl	%ebx, %edi
	call	*__glewGetProgramiv(%rip)
	cmpl	$0, -20(%rbp)
	jne	.L28
	movl	$0, %ecx
	leaq	-24(%rbp), %rdx
	movl	$0, %esi
	movl	%ebx, %edi
	call	*__glewGetProgramInfoLog(%rip)
	movl	$.LC7, %edi
	call	puts
.L28:
	movq	-8(%rbp), %rbx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	DeleteShader, .-DeleteShader
	.globl	shaderProgram
	.bss
	.align 4
	.type	shaderProgram, @object
	.size	shaderProgram, 4
shaderProgram:
	.zero	4
	.globl	fragShader
	.align 32
	.type	fragShader, @object
	.size	fragShader, 32
fragShader:
	.zero	32
	.globl	vertShader
	.align 32
	.type	vertShader, @object
	.size	vertShader, 32
vertShader:
	.zero	32
	.globl	location
	.align 4
	.type	location, @object
	.size	location, 4
location:
	.zero	4
	.ident	"GCC: (GNU) 12.2.1 20220819 (Red Hat 12.2.1-2)"
	.section	.note.GNU-stack,"",@progbits
