// File: Nallantli[P]Rossa/main/rossa/node/node.cpp
// Function: SwitchNode::printTree(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool) const
void SwitchNode::printTree(std::string indent, bool last) const
{
	std::cout << indent;
	if (last)
	{
		std::cout << "└─";
		indent += "  ";
	}
	else
	{
		std::cout << "├─";
		indent += "│ ";
	}
	printc(deHashVec(path) + " ", RED_TEXT);
	std::cout << "SWITCH\n";
	switchs->printTree(indent, gotos.empty() && cases.empty());
	size_t i = 0;
	for (auto &e : cases)
	{
		e.first->printTree(indent, i == (cases.size() + gotos.size()) - 1 && !elses);
		i++;
	}
	for (auto &e : gotos)
	{
		e->printTree(indent, i == (cases.size() + gotos.size()) - 1 && !elses);
		i++;
	}
	if (elses)
		elses->printTree(indent, true);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rsi, -0x140(%rbp)
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x138(%rbp)
movq 0x10221d(%rip), %rdi    # 0x1e4fa0
callq 0x114e0
testb $0x1, -0x11(%rbp)
je 0xe2db6
movq 0x10220b(%rip), %rdi    # 0x1e4fa0
leaq 0x709cc(%rip), %rsi     # 0x153768
callq 0x11560
movq -0x140(%rbp), %rdi
leaq 0x709c0(%rip), %rsi     # 0x15376f
callq 0x11540
jmp 0xe2ddc
movq 0x1021e3(%rip), %rdi    # 0x1e4fa0
leaq 0x709ae(%rip), %rsi     # 0x153772
callq 0x11560
movq -0x140(%rbp), %rdi
leaq 0x709a2(%rip), %rsi     # 0x153779
callq 0x11540
movq -0x138(%rbp), %rsi
addq $0x8, %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0xd27b0
movq -0x148(%rbp), %rsi
leaq 0x7096b(%rip), %rdx     # 0x153770
leaq -0x38(%rbp), %rdi
callq 0x24ec0
jmp 0xe2e10
movl $0x1f, -0x68(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x247f0
jmp 0xe2e26
leaq -0x38(%rbp), %rdi
callq 0x11360
leaq -0x58(%rbp), %rdi
callq 0x11360
movq 0x102161(%rip), %rdi    # 0x1e4fa0
leaq 0x70ae8(%rip), %rsi     # 0x15392e
callq 0x11560
movq -0x138(%rbp), %rdi
addq $0xa8, %rdi
callq 0x2d030
movq -0x140(%rbp), %rsi
movq %rax, -0x158(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x11250
movq -0x138(%rbp), %rdi
addq $0xe8, %rdi
callq 0xe6820
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x149(%rbp)
jne 0xe2e9c
jmp 0xe2eb5
movq -0x138(%rbp), %rdi
addq $0xb8, %rdi
callq 0xea770
movb %al, -0x149(%rbp)
movq -0x158(%rbp), %rdi
movb -0x149(%rbp), %cl
movq (%rdi), %rax
movq 0x10(%rax), %rax
movzbl %cl, %edx
andl $0x1, %edx
leaq -0x88(%rbp), %rsi
callq *%rax
jmp 0xe2eda
leaq -0x88(%rbp), %rdi
callq 0x11360
movq -0x138(%rbp), %rax
movq $0x0, -0x90(%rbp)
addq $0xb8, %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rdi
callq 0xea2f0
movq %rax, -0xa0(%rbp)
movq -0x98(%rbp), %rdi
callq 0xea320
movq %rax, -0xa8(%rbp)
leaq -0xa0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0xea350
testb $0x1, %al
jne 0xe2f47
jmp 0xe30b7
leaq -0xa0(%rbp), %rdi
callq 0xea380
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rdi
callq 0x2d030
movq -0x140(%rbp), %rsi
movq %rax, -0x178(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x11250
movq -0x138(%rbp), %rdi
movq -0x90(%rbp), %rax
movq %rax, -0x168(%rbp)
addq $0xb8, %rdi
callq 0xea790
movq -0x138(%rbp), %rdi
movq %rax, -0x170(%rbp)
addq $0xe8, %rdi
callq 0x593c0
movq -0x170(%rbp), %rdx
movq -0x168(%rbp), %rcx
addq %rax, %rdx
subq $0x1, %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, -0x159(%rbp)
jne 0xe2ff8
movq -0x138(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0x57630
xorb $-0x1, %al
movb %al, -0x159(%rbp)
movq -0x178(%rbp), %rdi
movb -0x159(%rbp), %cl
movq (%rdi), %rax
movq 0x10(%rax), %rax
movzbl %cl, %edx
andl $0x1, %edx
leaq -0xd0(%rbp), %rsi
callq *%rax
jmp 0xe301d
leaq -0xd0(%rbp), %rdi
callq 0x11360
movq -0x90(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x90(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0xea570
jmp 0xe2f2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xe306f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x11360
leaq -0x58(%rbp), %rdi
callq 0x11360
jmp 0xe32cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x11360
jmp 0xe32cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x11360
jmp 0xe32cb
movq -0x138(%rbp), %rax
addq $0xe8, %rax
movq %rax, -0xd8(%rbp)
movq -0xd8(%rbp), %rdi
callq 0xe5310
movq %rax, -0xe0(%rbp)
movq -0xd8(%rbp), %rdi
callq 0xe5340
movq %rax, -0xe8(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0xe5370
testb $0x1, %al
jne 0xe310d
jmp 0xe322f
leaq -0xe0(%rbp), %rdi
callq 0xe53b0
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rdi
callq 0x2d030
movq -0x140(%rbp), %rsi
movq %rax, -0x198(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x11250
movq -0x138(%rbp), %rdi
movq -0x90(%rbp), %rax
movq %rax, -0x188(%rbp)
addq $0xb8, %rdi
callq 0xea790
movq -0x138(%rbp), %rdi
movq %rax, -0x190(%rbp)
addq $0xe8, %rdi
callq 0x593c0
movq -0x190(%rbp), %rdx
movq -0x188(%rbp), %rcx
addq %rax, %rdx
subq $0x1, %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, -0x179(%rbp)
jne 0xe31be
movq -0x138(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0x57630
xorb $-0x1, %al
movb %al, -0x179(%rbp)
movq -0x198(%rbp), %rdi
movb -0x179(%rbp), %cl
movq (%rdi), %rax
movq 0x10(%rax), %rax
movzbl %cl, %edx
andl $0x1, %edx
leaq -0x110(%rbp), %rsi
callq *%rax
jmp 0xe31e3
leaq -0x110(%rbp), %rdi
callq 0x11360
movq -0x90(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x90(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0xe5430
jmp 0xe30f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x11360
jmp 0xe32cb
movq -0x138(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0x57630
testb $0x1, %al
jne 0xe3248
jmp 0xe32c2
movq -0x138(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0x2d030
movq -0x140(%rbp), %rsi
movq %rax, -0x1a8(%rbp)
leaq -0x130(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x11250
movq -0x1a8(%rbp), %rdi
movq -0x1a0(%rbp), %rsi
movq (%rdi), %rax
movq 0x10(%rax), %rax
movl $0x1, %edx
callq *%rax
jmp 0xe329a
leaq -0x130(%rbp), %rdi
callq 0x11360
jmp 0xe32c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x11360
jmp 0xe32cb
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x119c0
nopw %cs:(%rax,%rax)