// File: /workspace/github_c_makefile_star2_O2/stetre[P]moongl/src/uniform.c
// Function: Uniform
static int Uniform(lua_State *L)
    {
    GLint location = luaL_checkinteger(L, 1);
    GLenum type = checkuniformtype(L, 2);
#define arg_first 3
    switch(type)
        {
        case NONGL_BOOLEAN: return Uniform_b(L, location, arg_first);
        case GL_INT: return Uniform_i(L, location, arg_first);
        case GL_UNSIGNED_INT: return Uniform_ui(L, location, arg_first);
        case GL_FLOAT: return Uniform_f(L, location, arg_first);
        case GL_DOUBLE: return Uniform_d(L, location, arg_first);
        default:
            return luaL_error(L, UNEXPECTED_ERROR);
        }
    return 0;
#undef arg_first
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
pushq $0x1
popq %rsi
callq 0x11af0
movq %rax, %r14
pushq $0x34
popq %rsi
pushq $0x2
popq %rdx
movq %rbx, %rdi
callq 0x11150
leal -0x1404(%rax), %ecx
cmpl $0x6, %ecx
ja 0x376d0
leaq 0x103b0(%rip), %rax     # 0x47a34
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
pushq $0x3
popq %rsi
movq %rbx, %rdi
callq 0x38801
cmpl $0x4, %eax
jg 0x377cf
movl %eax, %ebp
xorl %r15d, %r15d
testl %eax, %eax
movl $0x0, %r12d
cmovgl %eax, %r12d
cmpq %r15, %r12
je 0x377fb
leaq 0x3(%r15), %rsi
movq %rbx, %rdi
callq 0x11af0
movl %eax, (%rsp,%r15,4)
incq %r15
jmp 0x376b2
testl %eax, %eax
jne 0x3771a
pushq $0x3
popq %rsi
movq %rbx, %rdi
callq 0x38801
cmpl $0x4, %eax
jg 0x377cf
movl %eax, %ebp
xorl %r15d, %r15d
testl %eax, %eax
movl $0x0, %r12d
cmovgl %eax, %r12d
cmpq %r15, %r12
je 0x3786a
leaq 0x3(%r15), %rsi
movq %rbx, %rdi
callq 0x11500
movzbl %al, %eax
movl %eax, (%rsp,%r15,4)
incq %r15
jmp 0x376f9
leaq 0x3b64(%rip), %rsi      # 0x3b285
leaq 0xedcf(%rip), %rdx      # 0x464f7
pushq $0x57
popq %rcx
movq %rbx, %rdi
xorl %eax, %eax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x11ae0
pushq $0x3
popq %rsi
movq %rbx, %rdi
callq 0x38801
cmpl $0x4, %eax
jg 0x377cf
movl %eax, %ebp
xorl %r15d, %r15d
testl %eax, %eax
movl $0x0, %r12d
cmovgl %eax, %r12d
cmpq %r15, %r12
je 0x377e5
leaq 0x3(%r15), %rsi
movq %rbx, %rdi
callq 0x11a80
cvtsd2ss %xmm0, %xmm0
movss %xmm0, (%rsp,%r15,4)
incq %r15
jmp 0x37762
pushq $0x3
popq %rsi
movq %rbx, %rdi
callq 0x38801
cmpl $0x4, %eax
jg 0x377cf
movl %eax, %ebp
xorl %r15d, %r15d
testl %eax, %eax
movl $0x0, %r12d
cmovgl %eax, %r12d
cmpq %r15, %r12
je 0x37817
leaq 0x3(%r15), %rsi
movq %rbx, %rdi
callq 0x11a80
movsd %xmm0, (%rsp,%r15,8)
incq %r15
jmp 0x377a3
pushq $0x3
popq %rsi
movq %rbx, %rdi
callq 0x38801
cmpl $0x4, %eax
jle 0x3782d
leaq 0x3da8(%rip), %rsi      # 0x3b57e
movq %rbx, %rdi
xorl %eax, %eax
callq 0x11ae0
jmp 0x378e6
decl %ebp
cmpl $0x4, %ebp
jae 0x37895
movl %ebp, %eax
leaq 0x1d4f7(%rip), %rcx     # 0x54cf0
jmp 0x3787a
decl %ebp
cmpl $0x4, %ebp
jb 0x37871
leaq 0x3a7c(%rip), %rsi      # 0x3b285
leaq 0xece7(%rip), %rdx      # 0x464f7
pushq $0x45
jmp 0x378db
decl %ebp
cmpl $0x4, %ebp
jae 0x378a7
movl %ebp, %eax
leaq 0x1d4e5(%rip), %rcx     # 0x54d10
jmp 0x3787a
movl %eax, %ebp
xorl %r15d, %r15d
testl %eax, %eax
movl $0x0, %r12d
cmovgl %eax, %r12d
cmpq %r15, %r12
je 0x37858
leaq 0x3(%r15), %rsi
movq %rbx, %rdi
callq 0x11af0
movl %eax, (%rsp,%r15,4)
incq %r15
jmp 0x3783e
decl %ebp
cmpl $0x4, %ebp
jae 0x378b9
movl %ebp, %eax
leaq 0x1d468(%rip), %rcx     # 0x54cd0
jmp 0x3787a
decl %ebp
cmpl $0x4, %ebp
jae 0x378cb
movl %ebp, %eax
leaq 0x1d436(%rip), %rcx     # 0x54cb0
movq (%rcx,%rax,8), %rax
pushq $0x1
popq %rsi
movq %rsp, %rdx
movl %r14d, %edi
callq *(%rax)
movq %rbx, %rdi
callq 0x11870
xorl %eax, %eax
jmp 0x378e6
leaq 0x39e9(%rip), %rsi      # 0x3b285
leaq 0xec54(%rip), %rdx      # 0x464f7
pushq $0x47
jmp 0x378db
leaq 0x39d7(%rip), %rsi      # 0x3b285
leaq 0xec42(%rip), %rdx      # 0x464f7
pushq $0x48
jmp 0x378db
leaq 0x39c5(%rip), %rsi      # 0x3b285
leaq 0xec30(%rip), %rdx      # 0x464f7
pushq $0x46
jmp 0x378db
leaq 0x39b3(%rip), %rsi      # 0x3b285
leaq 0xec1e(%rip), %rdx      # 0x464f7
pushq $0x44
popq %rcx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x11ae0
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq