// File: /workspace/github_cpp_makefile_star2_O2/srcmake[P]tries/src/main.cpp
// Function: main
int main()  
	{
	cout << "Program started.\n";

	Trie trie;
	
	trie.Insert("apple");
	trie.Insert("banana");
	trie.Insert("apricot");

	assert(trie.Contains("apple") == true);
	assert(trie.Contains("app") == false);
	assert(trie.Contains("apricot") == true);

	assert(trie.Contains("bananas") == false);
	assert(trie.Contains("banana") == true);
	
	assert(trie.PrefixExists("app") == true);
	assert(trie.PrefixExists("banana") == true);
	assert(trie.PrefixExists("bann") == false);

	cout << "Program ended.\n";	
	return 0;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x38, %rsp
movq 0x2b3e(%rip), %rdi      # 0x3fd8
leaq 0xb63(%rip), %rsi       # 0x2004
callq 0x10c0
leaq -0x18(%rbp), %rdi
callq 0x127c
leaq 0xb60(%rip), %rsi       # 0x2016
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x12c4
leaq -0x38(%rbp), %rdi
callq 0x1070
leaq 0xb3c(%rip), %rsi       # 0x201c
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x12c4
leaq -0x38(%rbp), %rdi
callq 0x1070
leaq 0xb19(%rip), %rsi       # 0x2023
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x12c4
leaq -0x38(%rbp), %rdi
callq 0x1070
leaq 0xae2(%rip), %rsi       # 0x2016
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1390
testb %al, %al
je 0x16d9
leaq -0x38(%rbp), %rdi
callq 0x1070
leaq 0xafc(%rip), %rsi       # 0x2062
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1390
testb %al, %al
jne 0x16f5
leaq -0x38(%rbp), %rdi
callq 0x1070
leaq 0xa8b(%rip), %rsi       # 0x2023
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1390
testb %al, %al
je 0x1711
leaq -0x38(%rbp), %rdi
callq 0x1070
leaq 0xadb(%rip), %rsi       # 0x20a5
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1390
testb %al, %al
jne 0x172a
leaq -0x38(%rbp), %rdi
callq 0x1070
leaq 0xa20(%rip), %rsi       # 0x201c
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1390
testb %al, %al
je 0x1743
leaq -0x38(%rbp), %rdi
callq 0x1070
leaq 0xa34(%rip), %rsi       # 0x2062
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x140e
testb %al, %al
je 0x175c
leaq -0x38(%rbp), %rdi
callq 0x1070
leaq 0x9bc(%rip), %rsi       # 0x201c
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x140e
testb %al, %al
je 0x1775
leaq -0x38(%rbp), %rdi
callq 0x1070
leaq 0xaa2(%rip), %rsi       # 0x2134
leaq -0x38(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1050
leaq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x140e
testb %al, %al
jne 0x178e
leaq -0x38(%rbp), %rdi
callq 0x1070
movq 0x2914(%rip), %rdi      # 0x3fd8
leaq 0xa91(%rip), %rsi       # 0x215c
callq 0x10c0
xorl %eax, %eax
addq $0x38, %rsp
popq %rbx
popq %rbp
retq
leaq 0x94b(%rip), %rdi       # 0x202b
leaq 0x963(%rip), %rsi       # 0x204a
leaq 0x969(%rip), %rcx       # 0x2057
pushq $0x11
jmp 0x17a5
leaq 0x96a(%rip), %rdi       # 0x2066
leaq 0x947(%rip), %rsi       # 0x204a
leaq 0x94d(%rip), %rcx       # 0x2057
pushq $0x12
jmp 0x17a5
leaq 0x96c(%rip), %rdi       # 0x2084
leaq 0x92b(%rip), %rsi       # 0x204a
leaq 0x931(%rip), %rcx       # 0x2057
pushq $0x13
jmp 0x17a5
leaq 0x97c(%rip), %rdi       # 0x20ad
leaq 0x912(%rip), %rsi       # 0x204a
leaq 0x918(%rip), %rcx       # 0x2057
pushq $0x15
jmp 0x17a5
leaq 0x985(%rip), %rdi       # 0x20cf
leaq 0x8f9(%rip), %rsi       # 0x204a
leaq 0x8ff(%rip), %rcx       # 0x2057
pushq $0x16
jmp 0x17a5
leaq 0x98c(%rip), %rdi       # 0x20ef
leaq 0x8e0(%rip), %rsi       # 0x204a
leaq 0x8e6(%rip), %rcx       # 0x2057
pushq $0x18
jmp 0x17a5
leaq 0x994(%rip), %rdi       # 0x2110
leaq 0x8c7(%rip), %rsi       # 0x204a
leaq 0x8cd(%rip), %rcx       # 0x2057
pushq $0x19
jmp 0x17a5
leaq 0x9a4(%rip), %rdi       # 0x2139
leaq 0x8ae(%rip), %rsi       # 0x204a
leaq 0x8b4(%rip), %rcx       # 0x2057
pushq $0x1a
popq %rdx
callq 0x1090
jmp 0x17d3
jmp 0x17e1
jmp 0x17d3
jmp 0x17e1
jmp 0x17d3
jmp 0x17e1
jmp 0x17d3
jmp 0x17e1
jmp 0x17d3
jmp 0x17e1
jmp 0x17d3
jmp 0x17e1
jmp 0x17d3
jmp 0x17e1
jmp 0x17d3
jmp 0x17e1
jmp 0x17d3
jmp 0x17e1
jmp 0x17d3
jmp 0x17e1
movq %rax, %rbx
leaq -0x38(%rbp), %rdi
callq 0x1070
jmp 0x17e4
movq %rax, %rbx
movq %rbx, %rdi
callq 0x1130