// File: /workspace/github_c_makefile_star2_O3/stetre[P]moonglfw/src/hint.c
// Function: GetWindowAttrib
static int GetWindowAttrib(lua_State *L)
    {
    win_t *win = checkwindow(L, 1);
    int attrib = checktarget(L, 2);
    
    switch(attrib)
        {
        case GLFW_FOCUSED:
        case GLFW_ICONIFIED:
        case GLFW_VISIBLE:
        case GLFW_RESIZABLE:
        case GLFW_DECORATED:
        case GLFW_FLOATING:
        case GLFW_MAXIMIZED:
        case GLFW_CENTER_CURSOR:
        case GLFW_TRANSPARENT_FRAMEBUFFER:
        case GLFW_HOVERED:
        case GLFW_FOCUS_ON_SHOW:
        case GLFW_SCALE_TO_MONITOR:
        case GLFW_MOUSE_PASSTHROUGH:
        case GLFW_SCALE_FRAMEBUFFER:
        case GLFW_WIN32_KEYBOARD_MENU:
        case GLFW_WIN32_SHOWDEFAULT:
        case GLFW_COCOA_GRAPHICS_SWITCHING:
            return GetBoolean(L, win->window, attrib);
        case GLFW_CLIENT_API: GET_ENUM(L, win->window, attrib, pushapi);
        case GLFW_CONTEXT_CREATION_API: GET_ENUM(L, win->window, attrib, pushcontextcreationapi);
        case GLFW_CONTEXT_VERSION_MAJOR:
        case GLFW_CONTEXT_VERSION_MINOR:
        case GLFW_CONTEXT_REVISION:
            return GetInteger(L, win->window, attrib);
        case GLFW_OPENGL_FORWARD_COMPAT:
        case GLFW_OPENGL_DEBUG_CONTEXT:
            return GetBoolean(L, win->window, attrib);
        case GLFW_OPENGL_PROFILE: GET_ENUM(L, win->window, attrib, pushprofile);
        case GLFW_CONTEXT_ROBUSTNESS: GET_ENUM(L, win->window, attrib, pushrobustness);
        case GLFW_CONTEXT_RELEASE_BEHAVIOR: GET_ENUM(L, win->window, attrib, pushreleasebehavior);
        default:
            return luaL_error(L, "invalid attribute '%s'", lua_tostring(L, 2));
        }
    return 0;
    }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x1, %esi
callq 0x5570
movq %rax, %r14
movq %rbx, %rdi
movl $0x3, %esi
movl $0x2, %edx
callq 0x5450
movl %eax, %esi
cmpl $0x22000, %eax          # imm = 0x22000
jle 0xc399
leal -0x22001(%rax), %ecx
cmpl $0xc, %ecx
ja 0xc3c8
leaq 0x87ad(%rip), %rax      # 0x14b1c
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq 0x28(%r14), %rdi
movq 0xfc65(%rip), %rax      # 0x1bfe8
callq *0x140(%rax)
movslq %eax, %rsi
movq %rbx, %rdi
callq 0x5310
jmp 0xc4a9
addl $0xfffdffff, %eax       # imm = 0xFFFDFFFF
cmpl $0xc, %eax
ja 0xc3da
cmpl $0x5, %eax
je 0xc3da
movq 0x28(%r14), %rdi
movq 0xfc35(%rip), %rax      # 0x1bfe8
callq *0x140(%rax)
movq %rbx, %rdi
movl %eax, %esi
callq 0x5480
jmp 0xc4a9
leal -0x25001(%rax), %ecx
cmpl $0x2, %ecx
jb 0xc3a8
cmpl $0x23003, %eax          # imm = 0x23003
je 0xc3a8
movq %rbx, %rdi
movl $0x2, %esi
xorl %edx, %edx
callq 0x51e0
leaq 0x886a(%rip), %rsi      # 0x14c5a
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x55b0
movq 0xfbdd(%rip), %rax      # 0x1bfe8
movq 0x28(%r14), %rdi
movl $0x2200b, %esi          # imm = 0x2200B
callq *0x140(%rax)
movq %rbx, %rdi
movl $0xb, %esi
jmp 0xc4a2
movq 0xfbbd(%rip), %rax      # 0x1bfe8
movq 0x28(%r14), %rdi
movl $0x22001, %esi          # imm = 0x22001
callq *0x140(%rax)
movq %rbx, %rdi
movl $0x4, %esi
jmp 0xc4a2
movq 0xfb9d(%rip), %rax      # 0x1bfe8
movq 0x28(%r14), %rdi
movl $0x22005, %esi          # imm = 0x22005
callq *0x140(%rax)
movq %rbx, %rdi
movl $0x5, %esi
jmp 0xc4a2
movq 0xfb7d(%rip), %rax      # 0x1bfe8
movq 0x28(%r14), %rdi
movl $0x22009, %esi          # imm = 0x22009
callq *0x140(%rax)
movq %rbx, %rdi
movl $0x6, %esi
jmp 0xc4a2
movq 0xfb5d(%rip), %rax      # 0x1bfe8
movq 0x28(%r14), %rdi
movl $0x22008, %esi          # imm = 0x22008
callq *0x140(%rax)
movq %rbx, %rdi
movl $0x7, %esi
movl %eax, %edx
callq 0x55e0
movl $0x1, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq