// File: /workspace/github_cpp_makefile_star2_O1/nilnilnil[P]autocomplete/./include/phrase_map.hpp
// Function: phrase_map::test()
int
    test() {
        PhraseMap pm;
        pm.insert(1, "duckduckgo", "");
        pm.insert(2, "duckduckgeese", "");
        pm.insert(1, "duckduckgoose", "");
        pm.insert(9, "duckduckgoo", "");
        pm.insert(10, "duckgo", "");
        pm.insert(3, "dukgo", "");
        pm.insert(2, "luckkuckgo", "");
        pm.insert(5, "chuckchuckgo", "");
        pm.insert(15, "dilli - no one killed jessica", "");
        pm.insert(11, "aaitbaar - no one killed jessica", "");

        pm.finalize();

        show_indexes(pm, "a");
        assert(naive_query(pm, "a") == pm.query("a"));

        show_indexes(pm, "b");
        assert(naive_query(pm, "b") == pm.query("b"));

        show_indexes(pm, "c");
        assert(naive_query(pm, "c") == pm.query("c"));

        show_indexes(pm, "d");
        assert(naive_query(pm, "d") == pm.query("d"));

        show_indexes(pm, "duck");
        assert(naive_query(pm, "duck") == pm.query("duck"));

        show_indexes(pm, "ka");
        assert(naive_query(pm, "ka") == pm.query("ka"));

        return 0;
    }

// Assembly:
pushq %r14
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
leaq 0x20(%rsp), %rdi
movl $0xe4e1c0, %esi         # imm = 0xE4E1C0
callq 0xbee4
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xe7d8(%rip), %rsi      # 0x1509f
leaq 0xe7db(%rip), %rdx      # 0x150a9
movq %rsp, %rdi
callq 0xdea6
leaq 0xf965(%rip), %rbx      # 0x16242
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x1, %esi
callq 0xbf1c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6914
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe789(%rip), %rsi      # 0x150aa
leaq 0xe78f(%rip), %rdx      # 0x150b7
callq 0xdea6
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x2, %esi
callq 0xbf1c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6964
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe747(%rip), %rsi      # 0x150b8
leaq 0xe74d(%rip), %rdx      # 0x150c5
callq 0xdea6
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x1, %esi
callq 0xbf1c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x69b4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe705(%rip), %rsi      # 0x150c6
leaq 0xe709(%rip), %rdx      # 0x150d1
callq 0xdea6
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x9, %esi
callq 0xbf1c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6a04
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe692(%rip), %rsi      # 0x150a3
leaq 0xe691(%rip), %rdx      # 0x150a9
callq 0xdea6
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0xa, %esi
callq 0xbf1c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6a54
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe671(%rip), %rsi      # 0x150d2
leaq 0xe66f(%rip), %rdx      # 0x150d7
callq 0xdea6
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x3, %esi
callq 0xbf1c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6aa4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe627(%rip), %rsi      # 0x150d8
leaq 0xe62a(%rip), %rdx      # 0x150e2
callq 0xdea6
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x2, %esi
callq 0xbf1c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6af4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe5e2(%rip), %rsi      # 0x150e3
leaq 0xe5e7(%rip), %rdx      # 0x150ef
callq 0xdea6
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x5, %esi
callq 0xbf1c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6b44
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe59f(%rip), %rsi      # 0x150f0
leaq 0xe5b5(%rip), %rdx      # 0x1510d
callq 0xdea6
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0xf, %esi
callq 0xbf1c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6b94
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe56d(%rip), %rsi      # 0x1510e
leaq 0xe586(%rip), %rdx      # 0x1512e
callq 0xdea6
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0xb, %esi
callq 0xbf1c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6be4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0xbfe2
leaq 0xf8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xe509(%rip), %rsi      # 0x1510c
leaq 0xe503(%rip), %rdx      # 0x1510d
leaq 0xe8(%rsp), %rdi
callq 0xdea6
leaq 0x20(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x66d4
movq 0xe8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6c46
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0xd8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xee35(%rip), %rsi      # 0x15a8e
leaq 0xee2f(%rip), %rdx      # 0x15a8f
leaq 0xc8(%rsp), %rdi
callq 0xdea6
leaq 0x20(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x66d4
movq 0xc8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6c9c
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xfcfb(%rip), %rsi      # 0x169aa
leaq 0xfcf5(%rip), %rdx      # 0x169ab
leaq 0xa8(%rsp), %rdi
callq 0xdea6
leaq 0x20(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x66d4
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6cf2
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xeae5(%rip), %rsi      # 0x157ea
leaq 0xeadf(%rip), %rdx      # 0x157eb
leaq 0x88(%rsp), %rdi
callq 0xdea6
leaq 0x20(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x66d4
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x6d48
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x78(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xe3d7(%rip), %rsi      # 0x1512f
leaq 0xe3d4(%rip), %rdx      # 0x15133
leaq 0x68(%rsp), %rdi
callq 0xdea6
leaq 0x20(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x66d4
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0x6d8f
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xe395(%rip), %rsi      # 0x15134
leaq 0xe390(%rip), %rdx      # 0x15136
leaq 0x48(%rsp), %rdi
callq 0xdea6
leaq 0x20(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x66d4
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x6dd6
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x20(%rsp), %rdi
callq 0xc17a
xorl %eax, %eax
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r14
retq
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x6eef
movq 0x58(%rsp), %rsi
jmp 0x6ee2
jmp 0x6eec
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0x6eef
movq 0x78(%rsp), %rsi
jmp 0x6ee2
jmp 0x6eec
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x6eef
movq 0x98(%rsp), %rsi
jmp 0x6ee2
jmp 0x6eec
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6eef
movq 0xb8(%rsp), %rsi
jmp 0x6ee2
jmp 0x6eec
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6eef
movq 0xd8(%rsp), %rsi
jmp 0x6ee2
jmp 0x6eec
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6eef
movq 0xf8(%rsp), %rsi
jmp 0x6ee2
jmp 0x6eec
jmp 0x6eec
jmp 0x6ed1
jmp 0x6eec
jmp 0x6ed1
jmp 0x6eec
jmp 0x6ed1
jmp 0x6eec
jmp 0x6ed1
jmp 0x6eec
jmp 0x6ed1
jmp 0x6eec
jmp 0x6ed1
jmp 0x6eec
jmp 0x6ed1
jmp 0x6eec
jmp 0x6ed1
jmp 0x6eec
jmp 0x6ed1
jmp 0x6eec
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6eef
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
jmp 0x6eef
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0xc17a
movq %rbx, %rdi
callq 0x58e0