// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/xml/xul/popupmenu.cpp
// Function: smooth::XML::XUL::PopupMenu::PopupMenu(smooth::XML::Node*)
S::XML::XUL::PopupMenu::PopupMenu(Node *node) : Widget(node)
{
	menu = NIL;

	if (node != NIL)
	{
		name	= GetXMLAttributeValue(node, "label");

		if (node->GetNthNode(0)->GetName() == "menupopup")
		{
			node = node->GetNthNode(0);

			menu = new GUI::PopupMenu();

			for (Int i = 0; i < node->GetNOfNodes(); i++)
			{
				Node	*entry = node->GetNthNode(i);

				if (entry->GetName() == "menuitem")
				{
					menu->AddEntry(GetXMLAttributeValue(entry, "label"));
				}
				else if (entry->GetName() == "menuseparator")
				{
					menu->AddEntry();
				}
				else if (entry->GetName() == "menu")
				{
					XUL::PopupMenu	*popup = new XUL::PopupMenu(entry);

					menu->AddEntry(popup->GetName(), NIL, (GUI::PopupMenu *) popup->GetWidget());

					entries.Add(popup);
				}
			}
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
movq -0x10(%rbp), %rsi
callq 0x5c180
movq -0xc8(%rbp), %rdi
leaq 0xf490b(%rip), %rax     # 0x206640
movq %rax, (%rdi)
addq $0x88, %rdi
movq %rdi, -0xc0(%rbp)
callq 0x111c10
jmp 0x111d4d
movq -0xc8(%rbp), %rdi
addq $0xe0, %rdi
movq %rdi, -0xd0(%rbp)
xorl %esi, %esi
callq 0x5da90
jmp 0x111d6b
movq -0xc8(%rbp), %rax
movq $0x0, 0x80(%rax)
cmpq $0x0, -0x10(%rbp)
je 0x11226a
movq -0x10(%rbp), %rax
movq %rax, -0xd8(%rbp)
leaq 0x94613(%rip), %rsi     # 0x1a63ad
leaq -0x50(%rbp), %rdi
callq 0x5c1f0
jmp 0x111da5
movq -0xd8(%rbp), %rdx
movq -0xc8(%rbp), %rsi
leaq -0x38(%rbp), %rdi
leaq -0x50(%rbp), %rcx
callq 0x5a8d0
jmp 0x111dc2
movq -0xc8(%rbp), %rdi
addq $0xe0, %rdi
leaq -0x38(%rbp), %rsi
callq 0x59760
jmp 0x111ddb
leaq -0x38(%rbp), %rdi
callq 0x5df00
leaq -0x50(%rbp), %rdi
callq 0x5df00
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x5c710
movq %rax, -0xe0(%rbp)
jmp 0x111e01
movq -0xe0(%rbp), %rdi
callq 0x5c630
movq %rax, -0xe8(%rbp)
jmp 0x111e16
movq -0xe8(%rbp), %rdi
leaq 0x9468a(%rip), %rsi     # 0x1a64ae
callq 0x5c7f0
movb %al, -0xe9(%rbp)
jmp 0x111e31
movb -0xe9(%rbp), %al
testb $0x1, %al
jne 0x111e40
jmp 0x112268
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x5c710
movq %rax, -0xf8(%rbp)
jmp 0x111e54
movq -0xf8(%rbp), %rax
movq %rax, -0x10(%rbp)
movl $0x6b8, %edi            # imm = 0x6B8
callq 0x59820
movq %rax, -0x100(%rbp)
jmp 0x111e72
movq -0x100(%rbp), %rdi
callq 0x5d910
jmp 0x111e80
movq -0xc8(%rbp), %rax
movq -0x100(%rbp), %rcx
movq %rcx, 0x80(%rax)
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movl %eax, -0x108(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5a380
movl %eax, -0x104(%rbp)
jmp 0x111eb6
movl -0x108(%rbp), %eax
movl -0x104(%rbp), %ecx
cmpl %ecx, %eax
jge 0x112266
movq -0x10(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x5c710
movq %rax, -0x110(%rbp)
jmp 0x111edf
movq -0x110(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
callq 0x5c630
movq %rax, -0x118(%rbp)
jmp 0x111efc
movq -0x118(%rbp), %rdi
leaq 0x945ae(%rip), %rsi     # 0x1a64b8
callq 0x5c7f0
movb %al, -0x119(%rbp)
jmp 0x111f17
movb -0x119(%rbp), %al
testb $0x1, %al
jne 0x111f26
jmp 0x112065
movq -0xc8(%rbp), %rax
movq 0x80(%rax), %rax
movq %rax, -0x130(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x128(%rbp)
leaq 0x94460(%rip), %rsi     # 0x1a63ad
leaq -0x90(%rbp), %rdi
callq 0x5c1f0
jmp 0x111f5b
movq -0x128(%rbp), %rdx
movq -0xc8(%rbp), %rsi
leaq -0x78(%rbp), %rdi
leaq -0x90(%rbp), %rcx
callq 0x5a8d0
jmp 0x111f7b
movq -0x130(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
leaq -0x78(%rbp), %rsi
callq 0x59b50
jmp 0x111f91
leaq -0x78(%rbp), %rdi
callq 0x5df00
leaq -0x90(%rbp), %rdi
callq 0x5df00
jmp 0x112256
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x11228b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x11227f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x112273
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x112001
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x5df00
leaq -0x50(%rbp), %rdi
callq 0x5df00
jmp 0x112273
movq -0x100(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x6b8, %esi            # imm = 0x6B8
callq 0x595b0
jmp 0x112273
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x112054
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x5df00
leaq -0x90(%rbp), %rdi
callq 0x5df00
jmp 0x112273
movq -0x60(%rbp), %rdi
callq 0x5c630
movq %rax, -0x138(%rbp)
jmp 0x112077
movq -0x138(%rbp), %rdi
leaq 0x9443c(%rip), %rsi     # 0x1a64c1
callq 0x5c7f0
movb %al, -0x139(%rbp)
jmp 0x112092
movb -0x139(%rbp), %al
testb $0x1, %al
jne 0x11209e
jmp 0x11210a
movq -0xc8(%rbp), %rax
movq 0x80(%rax), %rax
movq %rax, -0x148(%rbp)
leaq -0xa8(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0x1120c3
movq -0x148(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
leaq -0xa8(%rbp), %rsi
callq 0x59b50
jmp 0x1120dc
leaq -0xa8(%rbp), %rdi
callq 0x5df00
jmp 0x112254
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x5df00
jmp 0x112273
movq -0x60(%rbp), %rdi
callq 0x5c630
movq %rax, -0x150(%rbp)
jmp 0x11211c
movq -0x150(%rbp), %rdi
leaq 0x9432c(%rip), %rsi     # 0x1a6456
callq 0x5c7f0
movb %al, -0x151(%rbp)
jmp 0x112137
movb -0x151(%rbp), %al
testb $0x1, %al
jne 0x112146
jmp 0x112252
movl $0xf8, %edi
callq 0x59820
movq %rax, -0x160(%rbp)
jmp 0x112159
movq -0x160(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x111d00
jmp 0x11216b
movq -0xc8(%rbp), %rax
movq -0x160(%rbp), %rcx
movq %rcx, -0xb0(%rbp)
movq 0x80(%rax), %rax
movq %rax, -0x170(%rbp)
movq -0xb0(%rbp), %rdi
callq 0x1122a0
movq %rax, -0x168(%rbp)
jmp 0x1121a3
leaq -0xb8(%rbp), %rdi
xorl %esi, %esi
callq 0x5d4a0
jmp 0x1121b3
movq -0xb0(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0x178(%rbp)
jmp 0x1121cc
movq -0x178(%rbp), %rcx
movq -0x168(%rbp), %rsi
movq -0x170(%rbp), %rdi
leaq -0xb8(%rbp), %rdx
callq 0x5c4c0
jmp 0x1121ef
leaq -0xb8(%rbp), %rdi
callq 0x5de40
movq -0xc8(%rbp), %rdi
addq $0x88, %rdi
leaq -0xb0(%rbp), %rsi
callq 0x111c50
jmp 0x112217
jmp 0x112252
movq -0x160(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0xf8, %esi
callq 0x595b0
jmp 0x112273
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x5de40
jmp 0x112273
jmp 0x112254
jmp 0x112256
jmp 0x112258
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x111e9c
jmp 0x112268
jmp 0x11226a
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
movq -0xd0(%rbp), %rdi
callq 0x5df00
movq -0xc0(%rbp), %rdi
callq 0x111c80
movq -0xc8(%rbp), %rdi
callq 0x5dd00
movq -0x18(%rbp), %rdi
callq 0x5b6b0