// File: /workspace/github_c_makefile_star2_O3/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::~Widget()
S::GUI::Widget::~Widget()
{
	/* Clean up everything in case this widget
	 * is not deleted using DeleteObject.
	 */
	DeactivateTooltip();

	CloseContextMenu();

	while (widgets.Length()) Remove(widgets.GetFirst());

	widgets.RemoveAll();

	if (registered && container != NIL) container->Remove(this);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0xfde5a(%rip), %rax     # 0x16ba48
addq $0x10, %rax
movq %rax, (%rdi)
callq 0x59208
movq %rbx, %rdi
callq 0x59128
leaq 0x38(%rbx), %r14
cmpl $0x0, 0x40(%rbx)
je 0x6dc22
movq %r14, %rdi
callq 0x60af6
movq (%rax), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x38(%rax)
jmp 0x6dc06
movq %r14, %rdi
callq 0x5ada0
cmpb $0x1, 0xca(%rbx)
jne 0x6dc48
movq 0x190(%rbx), %rdi
testq %rdi, %rdi
je 0x6dc48
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x38(%rax)
leaq 0x598(%rbx), %rdi
leaq 0xf3af2(%rip), %r15     # 0x161748
movq %r15, 0x598(%rbx)
callq 0x70a9a
leaq 0x578(%rbx), %rdi
leaq 0xf3bb8(%rip), %r12     # 0x161828
movq %r12, 0x578(%rbx)
callq 0x70e32
leaq 0x558(%rbx), %rdi
movq %r12, 0x558(%rbx)
callq 0x70e32
leaq 0x538(%rbx), %rdi
movq %r15, 0x538(%rbx)
callq 0x70a9a
leaq 0x518(%rbx), %rdi
movq %r15, 0x518(%rbx)
callq 0x70a9a
leaq 0x4f8(%rbx), %rdi
movq %r15, 0x4f8(%rbx)
callq 0x70a9a
leaq 0x4d8(%rbx), %rdi
movq %r15, 0x4d8(%rbx)
callq 0x70a9a
leaq 0x4b8(%rbx), %rdi
movq %r15, 0x4b8(%rbx)
callq 0x70a9a
leaq 0x498(%rbx), %rdi
movq %r15, 0x498(%rbx)
callq 0x70a9a
leaq 0x478(%rbx), %rdi
movq %r15, 0x478(%rbx)
callq 0x70a9a
leaq 0x458(%rbx), %rdi
leaq 0xf3ace(%rip), %rax     # 0x1617f0
movq %rax, 0x458(%rbx)
callq 0x70d4c
leaq 0x438(%rbx), %rdi
leaq 0xf3a44(%rip), %r12     # 0x161780
movq %r12, 0x438(%rbx)
callq 0x70b80
leaq 0x418(%rbx), %rdi
movq %r12, 0x418(%rbx)
callq 0x70b80
leaq 0x3f8(%rbx), %rdi
movq %r12, 0x3f8(%rbx)
callq 0x70b80
leaq 0x3d8(%rbx), %rdi
movq %r12, 0x3d8(%rbx)
callq 0x70b80
leaq 0x3b8(%rbx), %rdi
movq %r12, 0x3b8(%rbx)
callq 0x70b80
leaq 0x398(%rbx), %rdi
movq %r12, 0x398(%rbx)
callq 0x70b80
leaq 0x378(%rbx), %rdi
movq %r12, 0x378(%rbx)
callq 0x70b80
leaq 0x358(%rbx), %rdi
movq %r12, 0x358(%rbx)
callq 0x70b80
leaq 0x338(%rbx), %rdi
movq %r12, 0x338(%rbx)
callq 0x70b80
leaq 0x318(%rbx), %rdi
movq %r12, 0x318(%rbx)
callq 0x70b80
leaq 0x2f8(%rbx), %rdi
movq %r12, 0x2f8(%rbx)
callq 0x70b80
leaq 0x2d8(%rbx), %rdi
movq %r15, 0x2d8(%rbx)
callq 0x70a9a
leaq 0x2b8(%rbx), %rdi
movq %r15, 0x2b8(%rbx)
callq 0x70a9a
leaq 0x298(%rbx), %rdi
leaq 0xf397e(%rip), %rax     # 0x1617b8
movq %rax, 0x298(%rbx)
callq 0x70c66
leaq 0x278(%rbx), %rdi
movq %r12, 0x278(%rbx)
callq 0x70b80
leaq 0x258(%rbx), %rdi
movq %r15, 0x258(%rbx)
callq 0x70a9a
leaq 0x238(%rbx), %rdi
movq %r15, 0x238(%rbx)
callq 0x70a9a
leaq 0x218(%rbx), %rdi
movq %r15, 0x218(%rbx)
callq 0x70a9a
leaq 0x1f8(%rbx), %rdi
movq %r15, 0x1f8(%rbx)
callq 0x70a9a
leaq 0x1d0(%rbx), %rdi
leaq 0xf3825(%rip), %rax     # 0x1616d8
movq %rax, 0x1d0(%rbx)
callq 0x708ca
leaq 0x1a8(%rbx), %rdi
leaq 0xf379b(%rip), %rax     # 0x161668
movq %rax, 0x1a8(%rbx)
callq 0x70790
leaq 0x140(%rbx), %rdi
callq 0x56720
leaq 0x120(%rbx), %rdi
callq 0x59200
leaq 0x108(%rbx), %rdi
callq 0x59200
leaq 0xf0(%rbx), %rdi
callq 0x59200
movq %r14, %rdi
callq 0x5b0ee
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x55c60
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
jmp 0x6df66
movq %rax, %rdi
callq 0x5aeae