// File: /workspace/github_c_makefile_star2_O3/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 0xbad7(%rip), %rax      # 0x1c8b8
testq %rax, %rax
je 0x10dfc
movl 0x20(%rbx), %ecx
cmpl %ecx, 0x20(%rax)
jg 0x10df4
jge 0x10dfe
addq $0x8, %rax
movq (%rax), %rax
testq %rax, %rax
jne 0x10de9
xorl %eax, %eax
cmpq %rbx, %rax
jne 0x1144d
movl 0x34(%rbx), %edx
cmpl $-0x2, %edx
je 0x10e2a
movq 0xb1c2(%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 0x10e4d
movq 0xb19f(%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 0x10e70
movq 0xb17c(%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 0x10e93
movq 0xb159(%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 0x10eb6
movq 0xb136(%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 0x10ed9
movq 0xb113(%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 0x10efc
movq 0xb0f0(%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 0x10f1f
movq 0xb0cd(%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 0x10f42
movq 0xb0aa(%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 0x10f65
movq 0xb087(%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 0x10f88
movq 0xb064(%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 0x10fab
movq 0xb041(%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 0x10fce
movq 0xb01e(%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 0x10ff1
movq 0xaffb(%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 0x11014
movq 0xafd8(%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 0x11037
movq 0xafb5(%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 0x1105a
movq 0xaf92(%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 0x11108
testq %rdi, %rdi
je 0x11119
movq %rdi, %rsi
movq (%rdi), %rdi
testq %rdi, %rdi
jne 0x11073
movq 0x8(%rsi), %rax
movq 0x10(%rsi), %rcx
movl 0x18(%rsi), %edx
testq %rax, %rax
je 0x11092
movq %rcx, 0x10(%rax)
leaq 0xb81f(%rip), %rdi      # 0x1c8b8
movq %rdi, %r8
testq %rcx, %rcx
je 0x110af
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 0x110de
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 0x110f5
movq %rsi, 0x10(%rdi)
testq %rcx, %rcx
je 0x11126
movq %rcx, %rsi
movq 0x10(%rsi), %rsi
testq %rsi, %rsi
jne 0x110fd
jmp 0x1114a
movq 0x10(%rbx), %rcx
movl 0x18(%rbx), %edx
testq %rdi, %rdi
je 0x1112a
movq %rdi, %rax
jmp 0x11120
movq 0x10(%rbx), %rcx
movl 0x18(%rbx), %edx
movq %rcx, 0x10(%rax)
jmp 0x1112c
xorl %ecx, %ecx
jmp 0x1114a
xorl %eax, %eax
testq %rcx, %rcx
je 0x11140
xorl %esi, %esi
cmpq %rbx, (%rcx)
setne %sil
leaq (%rcx,%rsi,8), %rsi
jmp 0x11147
leaq 0xb771(%rip), %rsi      # 0x1c8b8
movq %rax, (%rsi)
testl %edx, %edx
jne 0x1144d
jmp 0x111ae
movq 0x8(%rcx), %rdx
testq %rdx, %rdx
je 0x111a3
cmpl $0x0, 0x18(%rdx)
je 0x111a3
jmp 0x112ac
movq %rcx, 0xb749(%rip)      # 0x1c8b8
jmp 0x11174
movq %rcx, (%rsi)
movq %rax, (%rcx)
movq %rcx, 0x10(%rax)
movq %rdx, %rcx
movq (%rcx), %rdx
testq %rdx, %rdx
je 0x11190
cmpl $0x0, 0x18(%rdx)
jne 0x112c9
movq 0x8(%rcx), %rsi
testq %rsi, %rsi
je 0x111a3
cmpl $0x0, 0x18(%rsi)
jne 0x112d8
movl $0x1, 0x18(%rcx)
movq 0x10(%rax), %rcx
movq %rax, %rdx
movq %rcx, %rax
testq %rdx, %rdx
je 0x111d1
cmpl $0x0, 0x18(%rdx)
jne 0x11446
cmpq 0xb6ee(%rip), %rdx      # 0x1c8b8
jne 0x111df
jmp 0x11446
cmpq $0x0, 0xb6df(%rip)      # 0x1c8b8
je 0x1144d
movq (%rax), %rcx
cmpq %rdx, %rcx
je 0x11227
cmpl $0x1, 0x18(%rcx)
jne 0x11294
movl $0x0, 0x18(%rcx)
movl $0x1, 0x18(%rax)
movq 0x8(%rcx), %rdx
movq %rdx, (%rax)
testq %rdx, %rdx
je 0x1120f
movq %rax, 0x10(%rdx)
movq 0x10(%rax), %rsi
movq %rsi, 0x10(%rcx)
testq %rsi, %rsi
je 0x1127a
cmpq (%rsi), %rax
je 0x11283
movq %rcx, 0x8(%rsi)
jmp 0x11289
movq 0x8(%rax), %rcx
cmpl $0x1, 0x18(%rcx)
jne 0x1117e
movl $0x0, 0x18(%rcx)
movl $0x1, 0x18(%rax)
movq (%rcx), %rdx
movq %rdx, 0x8(%rax)
testq %rdx, %rdx
je 0x11253
movq %rax, 0x10(%rdx)
movq 0x10(%rax), %rsi
movq %rsi, 0x10(%rcx)
testq %rsi, %rsi
je 0x11168
cmpq (%rsi), %rax
je 0x11171
movq %rcx, 0x8(%rsi)
movq 0x8(%rax), %rdx
jmp 0x11174
movq %rcx, 0xb637(%rip)      # 0x1c8b8
jmp 0x11289
movq %rcx, (%rsi)
movq (%rax), %rdx
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rax)
movq %rdx, %rcx
movq (%rcx), %rsi
testq %rsi, %rsi
je 0x11154
cmpl $0x0, 0x18(%rsi)
je 0x11154
jmp 0x112b7
testq %rsi, %rsi
je 0x112ea
cmpl $0x0, 0x18(%rsi)
je 0x112ea
movl 0x18(%rax), %edx
movl %edx, 0x18(%rcx)
movl $0x0, 0x18(%rax)
jmp 0x11387
movq 0x8(%rcx), %rsi
testq %rsi, %rsi
je 0x11324
cmpl $0x0, 0x18(%rsi)
je 0x11324
movl 0x18(%rax), %edx
movl %edx, 0x18(%rcx)
movl $0x0, 0x18(%rax)
jmp 0x113f6
movl $0x0, 0x18(%rdx)
movl $0x1, 0x18(%rcx)
movq (%rdx), %rsi
movq %rsi, 0x8(%rcx)
testq %rsi, %rsi
je 0x11308
movq %rcx, 0x10(%rsi)
movq 0x10(%rcx), %rsi
movq %rsi, 0x10(%rdx)
testq %rsi, %rsi
je 0x1135e
xorl %edi, %edi
cmpq (%rsi), %rcx
setne %dil
leaq (%rsi,%rdi,8), %rsi
jmp 0x11365
movl $0x0, 0x18(%rdx)
movl $0x1, 0x18(%rcx)
movq 0x8(%rdx), %rsi
movq %rsi, (%rcx)
testq %rsi, %rsi
je 0x11342
movq %rcx, 0x10(%rsi)
movq 0x10(%rcx), %rsi
movq %rsi, 0x10(%rdx)
testq %rsi, %rsi
je 0x113ca
xorl %edi, %edi
cmpq (%rsi), %rcx
setne %dil
leaq (%rsi,%rdi,8), %rsi
jmp 0x113d1
leaq 0xb553(%rip), %rsi      # 0x1c8b8
movq %rdx, (%rsi)
movq %rcx, (%rdx)
movq %rdx, 0x10(%rcx)
movq (%rax), %rcx
movq (%rcx), %rsi
movl 0x18(%rax), %edx
movl %edx, 0x18(%rcx)
movl $0x0, 0x18(%rax)
testq %rsi, %rsi
je 0x1138e
movl $0x0, 0x18(%rsi)
movq 0x8(%rcx), %rdx
movq %rdx, (%rax)
testq %rdx, %rdx
je 0x1139e
movq %rax, 0x10(%rdx)
movq 0x10(%rax), %rdx
movq %rdx, 0x10(%rcx)
testq %rdx, %rdx
je 0x113ba
xorl %esi, %esi
cmpq (%rdx), %rax
setne %sil
leaq (%rdx,%rsi,8), %rdx
jmp 0x113c1
leaq 0xb4f7(%rip), %rdx      # 0x1c8b8
movq %rcx, (%rdx)
movq %rax, 0x8(%rcx)
jmp 0x11436
leaq 0xb4e7(%rip), %rsi      # 0x1c8b8
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)
movl $0x0, 0x18(%rax)
testq %rsi, %rsi
je 0x113fd
movl $0x0, 0x18(%rsi)
movq (%rcx), %rdx
movq %rdx, 0x8(%rax)
testq %rdx, %rdx
je 0x1140d
movq %rax, 0x10(%rdx)
movq 0x10(%rax), %rdx
movq %rdx, 0x10(%rcx)
testq %rdx, %rdx
je 0x11429
xorl %esi, %esi
cmpq (%rdx), %rax
setne %sil
leaq (%rdx,%rsi,8), %rdx
jmp 0x11430
leaq 0xb488(%rip), %rdx      # 0x1c8b8
movq %rcx, (%rdx)
movq %rax, (%rcx)
movq %rcx, 0x10(%rax)
movq 0xb477(%rip), %rdx      # 0x1c8b8
testq %rdx, %rdx
je 0x1144d
movl $0x0, 0x18(%rdx)
movl 0x20(%rbx), %edi
callq 0x55c0
movq %rbx, %rdi
popq %rbx
jmp 0x50b0