// File: /workspace/github_c_makefile_star2_O1/stetre[P]moonglfw/src/win.c
// Function: moonglfw_win_free
void win_free(win_t* win)
    {
    if(win_search(win->id) == win)
        {
        /* release callback references */
        CALLBACK_UNREF(win->WindowPos);
        CALLBACK_UNREF(win->WindowSize);
        CALLBACK_UNREF(win->WindowClose);
        CALLBACK_UNREF(win->WindowRefresh);
        CALLBACK_UNREF(win->WindowFocus);
        CALLBACK_UNREF(win->WindowIconify);
        CALLBACK_UNREF(win->WindowMaximize);
        CALLBACK_UNREF(win->WindowContentScale);
        CALLBACK_UNREF(win->FramebufferSize);
        CALLBACK_UNREF(win->Key);
        CALLBACK_UNREF(win->Char);
        CALLBACK_UNREF(win->CharMods);
        CALLBACK_UNREF(win->MouseButton);
        CALLBACK_UNREF(win->CursorPos);
        CALLBACK_UNREF(win->CursorEnter);
        CALLBACK_UNREF(win->Scroll);
        CALLBACK_UNREF(win->Drop);
        win_remove(win);
        }
    id_free(win->id);
    free(win);
    }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0xbbf1(%rip), %rax      # 0x1c8b0
testq %rax, %rax
je 0x10cda
movl 0x20(%rbx), %ecx
cmpl %ecx, 0x20(%rax)
jg 0x10cd2
jge 0x10cdc
addq $0x8, %rax
movq (%rax), %rax
testq %rax, %rax
jne 0x10cc7
xorl %eax, %eax
cmpq %rbx, %rax
jne 0x112fd
movl 0x34(%rbx), %edx
cmpl $-0x2, %edx
je 0x10d08
movq 0xb2e4(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x34(%rbx) # imm = 0xFFFFFFFE
movl 0x38(%rbx), %edx
cmpl $-0x2, %edx
je 0x10d2b
movq 0xb2c1(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x38(%rbx) # imm = 0xFFFFFFFE
movl 0x3c(%rbx), %edx
cmpl $-0x2, %edx
je 0x10d4e
movq 0xb29e(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x3c(%rbx) # imm = 0xFFFFFFFE
movl 0x40(%rbx), %edx
cmpl $-0x2, %edx
je 0x10d71
movq 0xb27b(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x40(%rbx) # imm = 0xFFFFFFFE
movl 0x44(%rbx), %edx
cmpl $-0x2, %edx
je 0x10d94
movq 0xb258(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x44(%rbx) # imm = 0xFFFFFFFE
movl 0x48(%rbx), %edx
cmpl $-0x2, %edx
je 0x10db7
movq 0xb235(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x48(%rbx) # imm = 0xFFFFFFFE
movl 0x4c(%rbx), %edx
cmpl $-0x2, %edx
je 0x10dda
movq 0xb212(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x4c(%rbx) # imm = 0xFFFFFFFE
movl 0x50(%rbx), %edx
cmpl $-0x2, %edx
je 0x10dfd
movq 0xb1ef(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x50(%rbx) # imm = 0xFFFFFFFE
movl 0x54(%rbx), %edx
cmpl $-0x2, %edx
je 0x10e20
movq 0xb1cc(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x54(%rbx) # imm = 0xFFFFFFFE
movl 0x58(%rbx), %edx
cmpl $-0x2, %edx
je 0x10e43
movq 0xb1a9(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x58(%rbx) # imm = 0xFFFFFFFE
movl 0x5c(%rbx), %edx
cmpl $-0x2, %edx
je 0x10e66
movq 0xb186(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x5c(%rbx) # imm = 0xFFFFFFFE
movl 0x60(%rbx), %edx
cmpl $-0x2, %edx
je 0x10e89
movq 0xb163(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x60(%rbx) # imm = 0xFFFFFFFE
movl 0x64(%rbx), %edx
cmpl $-0x2, %edx
je 0x10eac
movq 0xb140(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x64(%rbx) # imm = 0xFFFFFFFE
movl 0x68(%rbx), %edx
cmpl $-0x2, %edx
je 0x10ecf
movq 0xb11d(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x68(%rbx) # imm = 0xFFFFFFFE
movl 0x6c(%rbx), %edx
cmpl $-0x2, %edx
je 0x10ef2
movq 0xb0fa(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x6c(%rbx) # imm = 0xFFFFFFFE
movl 0x70(%rbx), %edx
cmpl $-0x2, %edx
je 0x10f15
movq 0xb0d7(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x70(%rbx) # imm = 0xFFFFFFFE
movl 0x74(%rbx), %edx
cmpl $-0x2, %edx
je 0x10f38
movq 0xb0b4(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5670
movl $0xfffffffe, 0x74(%rbx) # imm = 0xFFFFFFFE
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
testq %rax, %rax
je 0x10fe6
testq %rcx, %rcx
je 0x10fe9
movq %rcx, %rsi
movq (%rcx), %rcx
testq %rcx, %rcx
jne 0x10f51
movq 0x8(%rsi), %rax
movq 0x10(%rsi), %rcx
movl 0x18(%rsi), %edx
testq %rax, %rax
je 0x10f70
movq %rcx, 0x10(%rax)
leaq 0xb939(%rip), %rdi      # 0x1c8b0
movq %rdi, %r8
testq %rcx, %rcx
je 0x10f8d
xorl %r8d, %r8d
cmpq %rsi, (%rcx)
setne %r8b
leaq (%rcx,%r8,8), %r8
movq %rax, (%r8)
cmpq %rbx, 0x10(%rsi)
cmoveq %rsi, %rcx
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsi)
movups %xmm0, (%rsi)
movq 0x10(%rbx), %r8
testq %r8, %r8
je 0x10fbc
xorl %edi, %edi
cmpq %rbx, (%r8)
setne %dil
leaq (%r8,%rdi,8), %rdi
movq %rsi, (%rdi)
movq (%rbx), %rdi
movq %rsi, 0x10(%rdi)
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x10fd3
movq %rsi, 0x10(%rdi)
testq %rcx, %rcx
je 0x11019
movq %rcx, %rsi
movq 0x10(%rsi), %rsi
testq %rsi, %rsi
jne 0x10fdb
jmp 0x11019
movq %rcx, %rax
movq 0x10(%rbx), %rcx
movl 0x18(%rbx), %edx
testq %rax, %rax
je 0x10ff9
movq %rcx, 0x10(%rax)
testq %rcx, %rcx
je 0x1100d
xorl %esi, %esi
cmpq %rbx, (%rcx)
setne %sil
leaq (%rcx,%rsi,8), %rsi
jmp 0x11016
leaq 0xb89c(%rip), %rsi      # 0x1c8b0
xorl %ecx, %ecx
movq %rax, (%rsi)
testl %edx, %edx
jne 0x112fd
leaq 0xb888(%rip), %rdx      # 0x1c8b0
movq %rax, %rsi
movq %rcx, %rax
testq %rsi, %rsi
je 0x1103d
cmpl $0x0, 0x18(%rsi)
jne 0x112f1
cmpq 0xb86c(%rip), %rsi      # 0x1c8b0
je 0x112f1
movq (%rax), %rcx
cmpq %rsi, %rcx
je 0x110cb
cmpl $0x1, 0x18(%rcx)
jne 0x110a5
movl $0x0, 0x18(%rcx)
movl $0x1, 0x18(%rax)
movq 0x8(%rcx), %rsi
movq %rsi, (%rax)
testq %rsi, %rsi
je 0x11076
movq %rax, 0x10(%rsi)
movq 0x10(%rax), %rdi
movq %rdi, 0x10(%rcx)
movq %rdx, %rsi
testq %rdi, %rdi
je 0x11097
movq 0x10(%rax), %rsi
xorl %edi, %edi
cmpq (%rsi), %rax
setne %dil
leaq (%rsi,%rdi,8), %rsi
movq %rcx, (%rsi)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rax)
movq (%rax), %rcx
movq (%rcx), %rsi
testq %rsi, %rsi
je 0x110b7
cmpl $0x0, 0x18(%rsi)
jne 0x1114f
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
je 0x1113f
cmpl $0x0, 0x18(%rdi)
je 0x1113f
jmp 0x1114f
movq 0x8(%rax), %rcx
cmpl $0x1, 0x18(%rcx)
jne 0x11122
movl $0x0, 0x18(%rcx)
movl $0x1, 0x18(%rax)
movq (%rcx), %rsi
movq %rsi, 0x8(%rax)
testq %rsi, %rsi
je 0x110f3
movq %rax, 0x10(%rsi)
movq 0x10(%rax), %rdi
movq %rdi, 0x10(%rcx)
movq %rdx, %rsi
testq %rdi, %rdi
je 0x11114
movq 0x10(%rax), %rsi
xorl %edi, %edi
cmpq (%rsi), %rax
setne %dil
leaq (%rsi,%rdi,8), %rsi
movq %rcx, (%rsi)
movq %rax, (%rcx)
movq %rcx, 0x10(%rax)
movq 0x8(%rax), %rcx
movq (%rcx), %rsi
testq %rsi, %rsi
je 0x11130
cmpl $0x0, 0x18(%rsi)
jne 0x111a5
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
je 0x1113f
cmpl $0x0, 0x18(%rdi)
jne 0x111a5
movl $0x1, 0x18(%rcx)
movq 0x10(%rax), %rcx
jmp 0x11028
testq %rsi, %rsi
je 0x1115e
cmpl $0x0, 0x18(%rsi)
jne 0x11213
movq 0x8(%rcx), %rdx
testq %rdx, %rdx
je 0x1116e
movl $0x0, 0x18(%rdx)
movl $0x1, 0x18(%rcx)
movq (%rdx), %rsi
movq %rsi, 0x8(%rcx)
testq %rsi, %rsi
je 0x11185
movq %rcx, 0x10(%rsi)
movq 0x10(%rcx), %rsi
movq %rsi, 0x10(%rdx)
testq %rsi, %rsi
je 0x111ff
movq 0x10(%rcx), %rsi
xorl %edi, %edi
cmpq (%rsi), %rcx
setne %dil
leaq (%rsi,%rdi,8), %rsi
jmp 0x11206
movq 0x8(%rcx), %rdx
testq %rdx, %rdx
je 0x111b8
cmpl $0x0, 0x18(%rdx)
jne 0x11288
testq %rsi, %rsi
je 0x111c4
movl $0x0, 0x18(%rsi)
movl $0x1, 0x18(%rcx)
movq 0x8(%rsi), %rdx
movq %rdx, (%rcx)
testq %rdx, %rdx
je 0x111db
movq %rcx, 0x10(%rdx)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rsi)
testq %rdx, %rdx
je 0x11272
movq 0x10(%rcx), %rdx
xorl %edi, %edi
cmpq (%rdx), %rcx
setne %dil
leaq (%rdx,%rdi,8), %rdx
jmp 0x11279
leaq 0xb6aa(%rip), %rsi      # 0x1c8b0
movq %rdx, (%rsi)
movq %rcx, (%rdx)
movq %rdx, 0x10(%rcx)
movq (%rax), %rcx
movl 0x18(%rax), %edx
movl %edx, 0x18(%rcx)
movl $0x0, 0x18(%rax)
movq (%rcx), %rcx
testq %rcx, %rcx
je 0x1122f
movl $0x0, 0x18(%rcx)
movq (%rax), %rcx
movq 0x8(%rcx), %rdx
movq %rdx, (%rax)
testq %rdx, %rdx
je 0x11242
movq %rax, 0x10(%rdx)
movq 0x10(%rax), %rdx
movq %rdx, 0x10(%rcx)
testq %rdx, %rdx
je 0x11262
movq 0x10(%rax), %rdx
xorl %esi, %esi
cmpq (%rdx), %rax
setne %sil
leaq (%rdx,%rsi,8), %rdx
jmp 0x11269
leaq 0xb647(%rip), %rdx      # 0x1c8b0
movq %rcx, (%rdx)
movq %rax, 0x8(%rcx)
jmp 0x112e6
leaq 0xb637(%rip), %rdx      # 0x1c8b0
movq %rsi, (%rdx)
movq %rcx, 0x8(%rsi)
movq %rsi, 0x10(%rcx)
movq 0x8(%rax), %rcx
movl 0x18(%rax), %edx
movl %edx, 0x18(%rcx)
movl $0x0, 0x18(%rax)
movq 0x8(%rcx), %rcx
testq %rcx, %rcx
je 0x112a5
movl $0x0, 0x18(%rcx)
movq 0x8(%rax), %rcx
movq (%rcx), %rdx
movq %rdx, 0x8(%rax)
testq %rdx, %rdx
je 0x112b9
movq %rax, 0x10(%rdx)
movq 0x10(%rax), %rdx
movq %rdx, 0x10(%rcx)
testq %rdx, %rdx
je 0x112d9
movq 0x10(%rax), %rdx
xorl %esi, %esi
cmpq (%rdx), %rax
setne %sil
leaq (%rdx,%rsi,8), %rdx
jmp 0x112e0
leaq 0xb5d0(%rip), %rdx      # 0x1c8b0
movq %rcx, (%rdx)
movq %rax, (%rcx)
movq %rcx, 0x10(%rax)
movq 0xb5bf(%rip), %rsi      # 0x1c8b0
testq %rsi, %rsi
je 0x112fd
movl $0x0, 0x18(%rsi)
movl 0x20(%rbx), %edi
callq 0x55b0
movq %rbx, %rdi
popq %rbx
jmp 0x50b0