// File: /workspace/github_c_makefile_star2_O2/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
movl 0x20(%rdi), %edi
callq 0x5430
cmpq %rbx, %rax
jne 0x10aea
movl 0x34(%rbx), %edx
cmpl $-0x2, %edx
je 0x104fb
movq 0xbaf1(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x34(%rbx) # imm = 0xFFFFFFFE
movl 0x38(%rbx), %edx
cmpl $-0x2, %edx
je 0x1051e
movq 0xbace(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x38(%rbx) # imm = 0xFFFFFFFE
movl 0x3c(%rbx), %edx
cmpl $-0x2, %edx
je 0x10541
movq 0xbaab(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x3c(%rbx) # imm = 0xFFFFFFFE
movl 0x40(%rbx), %edx
cmpl $-0x2, %edx
je 0x10564
movq 0xba88(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x40(%rbx) # imm = 0xFFFFFFFE
movl 0x44(%rbx), %edx
cmpl $-0x2, %edx
je 0x10587
movq 0xba65(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x44(%rbx) # imm = 0xFFFFFFFE
movl 0x48(%rbx), %edx
cmpl $-0x2, %edx
je 0x105aa
movq 0xba42(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x48(%rbx) # imm = 0xFFFFFFFE
movl 0x4c(%rbx), %edx
cmpl $-0x2, %edx
je 0x105cd
movq 0xba1f(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x4c(%rbx) # imm = 0xFFFFFFFE
movl 0x50(%rbx), %edx
cmpl $-0x2, %edx
je 0x105f0
movq 0xb9fc(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x50(%rbx) # imm = 0xFFFFFFFE
movl 0x54(%rbx), %edx
cmpl $-0x2, %edx
je 0x10613
movq 0xb9d9(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x54(%rbx) # imm = 0xFFFFFFFE
movl 0x58(%rbx), %edx
cmpl $-0x2, %edx
je 0x10636
movq 0xb9b6(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x58(%rbx) # imm = 0xFFFFFFFE
movl 0x5c(%rbx), %edx
cmpl $-0x2, %edx
je 0x10659
movq 0xb993(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x5c(%rbx) # imm = 0xFFFFFFFE
movl 0x60(%rbx), %edx
cmpl $-0x2, %edx
je 0x1067c
movq 0xb970(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x60(%rbx) # imm = 0xFFFFFFFE
movl 0x64(%rbx), %edx
cmpl $-0x2, %edx
je 0x1069f
movq 0xb94d(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x64(%rbx) # imm = 0xFFFFFFFE
movl 0x68(%rbx), %edx
cmpl $-0x2, %edx
je 0x106c2
movq 0xb92a(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x68(%rbx) # imm = 0xFFFFFFFE
movl 0x6c(%rbx), %edx
cmpl $-0x2, %edx
je 0x106e5
movq 0xb907(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x6c(%rbx) # imm = 0xFFFFFFFE
movl 0x70(%rbx), %edx
cmpl $-0x2, %edx
je 0x10708
movq 0xb8e4(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x70(%rbx) # imm = 0xFFFFFFFE
movl 0x74(%rbx), %edx
cmpl $-0x2, %edx
je 0x1072b
movq 0xb8c1(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
movl $0xfff0b9d8, %esi       # imm = 0xFFF0B9D8
callq 0x5680
movl $0xfffffffe, 0x74(%rbx) # imm = 0xFFFFFFFE
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
testq %rax, %rax
je 0x107d9
testq %rdi, %rdi
je 0x107ea
movq %rdi, %rsi
movq (%rdi), %rdi
testq %rdi, %rdi
jne 0x10744
movq 0x8(%rsi), %rax
movq 0x10(%rsi), %rcx
movl 0x18(%rsi), %edx
testq %rax, %rax
je 0x10763
movq %rcx, 0x10(%rax)
leaq 0xc15e(%rip), %rdi      # 0x1c8c8
movq %rdi, %r8
testq %rcx, %rcx
je 0x10780
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 0x107af
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 0x107c6
movq %rsi, 0x10(%rdi)
testq %rcx, %rcx
je 0x107f7
movq %rcx, %rsi
movq 0x10(%rsi), %rsi
testq %rsi, %rsi
jne 0x107ce
jmp 0x1081b
movq 0x10(%rbx), %rcx
movl 0x18(%rbx), %edx
testq %rdi, %rdi
je 0x107fb
movq %rdi, %rax
jmp 0x107f1
movq 0x10(%rbx), %rcx
movl 0x18(%rbx), %edx
movq %rcx, 0x10(%rax)
jmp 0x107fd
xorl %ecx, %ecx
jmp 0x1081b
xorl %eax, %eax
testq %rcx, %rcx
je 0x10811
xorl %esi, %esi
cmpq %rbx, (%rcx)
setne %sil
leaq (%rcx,%rsi,8), %rsi
jmp 0x10818
leaq 0xc0b0(%rip), %rsi      # 0x1c8c8
movq %rax, (%rsi)
testl %edx, %edx
jne 0x10aea
jmp 0x1087f
movq 0x8(%rcx), %rdx
testq %rdx, %rdx
je 0x10874
cmpl $0x0, 0x18(%rdx)
je 0x10874
jmp 0x1097a
movq %rcx, 0xc088(%rip)      # 0x1c8c8
jmp 0x10845
movq %rcx, (%rsi)
movq %rax, (%rcx)
movq %rcx, 0x10(%rax)
movq %rdx, %rcx
movq (%rcx), %rdx
testq %rdx, %rdx
je 0x10861
cmpl $0x0, 0x18(%rdx)
jne 0x109c0
movq 0x8(%rcx), %rsi
testq %rsi, %rsi
je 0x10874
cmpl $0x0, 0x18(%rsi)
jne 0x10a8a
movl $0x1, 0x18(%rcx)
movq 0x10(%rax), %rcx
movq %rax, %rdx
movq %rcx, %rax
testq %rdx, %rdx
je 0x108a2
cmpl $0x0, 0x18(%rdx)
jne 0x10ae6
cmpq 0xc02d(%rip), %rdx      # 0x1c8c8
jne 0x108b0
jmp 0x10ae6
cmpq $0x0, 0xc01e(%rip)      # 0x1c8c8
je 0x10aea
movq (%rax), %rcx
cmpq %rdx, %rcx
je 0x108f5
cmpl $0x1, 0x18(%rcx)
jne 0x1095f
andl $0x0, 0x18(%rcx)
movl $0x1, 0x18(%rax)
movq 0x8(%rcx), %rdx
movq %rdx, (%rax)
testq %rdx, %rdx
je 0x108dd
movq %rax, 0x10(%rdx)
movq 0x10(%rax), %rsi
movq %rsi, 0x10(%rcx)
testq %rsi, %rsi
je 0x10945
cmpq (%rsi), %rax
je 0x1094e
movq %rcx, 0x8(%rsi)
jmp 0x10954
movq 0x8(%rax), %rcx
cmpl $0x1, 0x18(%rcx)
jne 0x1084f
andl $0x0, 0x18(%rcx)
movl $0x1, 0x18(%rax)
movq (%rcx), %rdx
movq %rdx, 0x8(%rax)
testq %rdx, %rdx
je 0x1091e
movq %rax, 0x10(%rdx)
movq 0x10(%rax), %rsi
movq %rsi, 0x10(%rcx)
testq %rsi, %rsi
je 0x10839
cmpq (%rsi), %rax
je 0x10842
movq %rcx, 0x8(%rsi)
movq 0x8(%rax), %rdx
jmp 0x10845
movq %rcx, 0xbf7c(%rip)      # 0x1c8c8
jmp 0x10954
movq %rcx, (%rsi)
movq (%rax), %rdx
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rax)
movq %rdx, %rcx
movq (%rcx), %rsi
testq %rsi, %rsi
je 0x10825
cmpl $0x0, 0x18(%rsi)
je 0x10825
jmp 0x10a21
testq %rsi, %rsi
je 0x10989
cmpl $0x0, 0x18(%rsi)
jne 0x10a21
andl $0x0, 0x18(%rdx)
movl $0x1, 0x18(%rcx)
movq (%rdx), %rsi
movq %rsi, 0x8(%rcx)
testq %rsi, %rsi
je 0x109a4
movq %rcx, 0x10(%rsi)
movq 0x10(%rcx), %rsi
movq %rsi, 0x10(%rdx)
testq %rsi, %rsi
je 0x10a0a
xorl %edi, %edi
cmpq (%rsi), %rcx
setne %dil
leaq (%rsi,%rdi,8), %rsi
jmp 0x10a11
movq 0x8(%rcx), %rsi
testq %rsi, %rsi
je 0x109d3
cmpl $0x0, 0x18(%rsi)
jne 0x10a8a
andl $0x0, 0x18(%rdx)
movl $0x1, 0x18(%rcx)
movq 0x8(%rdx), %rsi
movq %rsi, (%rcx)
testq %rsi, %rsi
je 0x109ee
movq %rcx, 0x10(%rsi)
movq 0x10(%rcx), %rsi
movq %rsi, 0x10(%rdx)
testq %rsi, %rsi
je 0x10a70
xorl %edi, %edi
cmpq (%rsi), %rcx
setne %dil
leaq (%rsi,%rdi,8), %rsi
jmp 0x10a77
leaq 0xbeb7(%rip), %rsi      # 0x1c8c8
movq %rdx, (%rsi)
movq %rcx, (%rdx)
movq %rdx, 0x10(%rcx)
movq (%rax), %rcx
movq (%rcx), %rsi
movl 0x18(%rax), %edx
movl %edx, 0x18(%rcx)
andl $0x0, 0x18(%rax)
testq %rsi, %rsi
je 0x10a34
andl $0x0, 0x18(%rsi)
movq 0x8(%rcx), %rdx
movq %rdx, (%rax)
testq %rdx, %rdx
je 0x10a44
movq %rax, 0x10(%rdx)
movq 0x10(%rax), %rdx
movq %rdx, 0x10(%rcx)
testq %rdx, %rdx
je 0x10a60
xorl %esi, %esi
cmpq (%rdx), %rax
setne %sil
leaq (%rdx,%rsi,8), %rdx
jmp 0x10a67
leaq 0xbe61(%rip), %rdx      # 0x1c8c8
movq %rcx, (%rdx)
movq %rax, 0x8(%rcx)
jmp 0x10ad6
leaq 0xbe51(%rip), %rsi      # 0x1c8c8
movq %rdx, (%rsi)
movq %rcx, 0x8(%rdx)
movq %rdx, 0x10(%rcx)
movq 0x8(%rax), %rcx
movq 0x8(%rcx), %rsi
movl 0x18(%rax), %edx
movl %edx, 0x18(%rcx)
andl $0x0, 0x18(%rax)
testq %rsi, %rsi
je 0x10a9d
andl $0x0, 0x18(%rsi)
movq (%rcx), %rdx
movq %rdx, 0x8(%rax)
testq %rdx, %rdx
je 0x10aad
movq %rax, 0x10(%rdx)
movq 0x10(%rax), %rdx
movq %rdx, 0x10(%rcx)
testq %rdx, %rdx
je 0x10ac9
xorl %esi, %esi
cmpq (%rdx), %rax
setne %sil
leaq (%rdx,%rsi,8), %rdx
jmp 0x10ad0
leaq 0xbdf8(%rip), %rdx      # 0x1c8c8
movq %rcx, (%rdx)
movq %rax, (%rcx)
movq %rcx, 0x10(%rax)
movq 0xbde7(%rip), %rdx      # 0x1c8c8
testq %rdx, %rdx
je 0x10aea
andl $0x0, 0x18(%rdx)
movl 0x20(%rbx), %edi
callq 0x55c0
movq %rbx, %rdi
popq %rbx
jmp 0x50b0