// File: /workspace/github_cpp_makefile_star2_O3/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 0xbee6
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xe7d3(%rip), %rsi      # 0x1509f
leaq 0xe7d6(%rip), %rdx      # 0x150a9
movq %rsp, %rdi
callq 0xde28
leaq 0xf95d(%rip), %rbx      # 0x1623f
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x1, %esi
callq 0xbf1e
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6919
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe784(%rip), %rsi      # 0x150aa
leaq 0xe78a(%rip), %rdx      # 0x150b7
callq 0xde28
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x2, %esi
callq 0xbf1e
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6969
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe742(%rip), %rsi      # 0x150b8
leaq 0xe748(%rip), %rdx      # 0x150c5
callq 0xde28
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x1, %esi
callq 0xbf1e
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x69b9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe700(%rip), %rsi      # 0x150c6
leaq 0xe704(%rip), %rdx      # 0x150d1
callq 0xde28
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x9, %esi
callq 0xbf1e
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6a09
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe68d(%rip), %rsi      # 0x150a3
leaq 0xe68c(%rip), %rdx      # 0x150a9
callq 0xde28
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0xa, %esi
callq 0xbf1e
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6a59
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe66c(%rip), %rsi      # 0x150d2
leaq 0xe66a(%rip), %rdx      # 0x150d7
callq 0xde28
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x3, %esi
callq 0xbf1e
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6aa9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe622(%rip), %rsi      # 0x150d8
leaq 0xe625(%rip), %rdx      # 0x150e2
callq 0xde28
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x2, %esi
callq 0xbf1e
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6af9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe5dd(%rip), %rsi      # 0x150e3
leaq 0xe5e2(%rip), %rdx      # 0x150ef
callq 0xde28
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0x5, %esi
callq 0xbf1e
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6b49
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe59a(%rip), %rsi      # 0x150f0
leaq 0xe5b0(%rip), %rdx      # 0x1510d
callq 0xde28
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0xf, %esi
callq 0xbf1e
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6b99
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xe568(%rip), %rsi      # 0x1510e
leaq 0xe581(%rip), %rdx      # 0x1512e
callq 0xde28
leaq 0x38(%rsp), %rcx
movq %rbx, (%rcx)
movl $0x0, 0x8(%rcx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movl $0xb, %esi
callq 0xbf1e
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6be9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0xbfe4
leaq 0xf8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xe504(%rip), %rsi      # 0x1510c
leaq 0xe4fe(%rip), %rdx      # 0x1510d
leaq 0xe8(%rsp), %rdi
callq 0xde28
leaq 0x20(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x66d9
movq 0xe8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6c4b
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0xd8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xee30(%rip), %rsi      # 0x15a8e
leaq 0xee2a(%rip), %rdx      # 0x15a8f
leaq 0xc8(%rsp), %rdi
callq 0xde28
leaq 0x20(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x66d9
movq 0xc8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6ca1
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xfcf3(%rip), %rsi      # 0x169a7
leaq 0xfced(%rip), %rdx      # 0x169a8
leaq 0xa8(%rsp), %rdi
callq 0xde28
leaq 0x20(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x66d9
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6cf7
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xeae0(%rip), %rsi      # 0x157ea
leaq 0xeada(%rip), %rdx      # 0x157eb
leaq 0x88(%rsp), %rdi
callq 0xde28
leaq 0x20(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x66d9
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x6d4d
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x78(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xe3d2(%rip), %rsi      # 0x1512f
leaq 0xe3cf(%rip), %rdx      # 0x15133
leaq 0x68(%rsp), %rdi
callq 0xde28
leaq 0x20(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x66d9
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0x6d94
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xe390(%rip), %rsi      # 0x15134
leaq 0xe38b(%rip), %rdx      # 0x15136
leaq 0x48(%rsp), %rdi
callq 0xde28
leaq 0x20(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x66d9
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x6ddb
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 0x6ef4
movq 0x58(%rsp), %rsi
jmp 0x6ee7
jmp 0x6ef1
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0x6ef4
movq 0x78(%rsp), %rsi
jmp 0x6ee7
jmp 0x6ef1
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x6ef4
movq 0x98(%rsp), %rsi
jmp 0x6ee7
jmp 0x6ef1
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6ef4
movq 0xb8(%rsp), %rsi
jmp 0x6ee7
jmp 0x6ef1
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6ef4
movq 0xd8(%rsp), %rsi
jmp 0x6ee7
jmp 0x6ef1
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6ef4
movq 0xf8(%rsp), %rsi
jmp 0x6ee7
jmp 0x6ef1
jmp 0x6ef1
jmp 0x6ed6
jmp 0x6ef1
jmp 0x6ed6
jmp 0x6ef1
jmp 0x6ed6
jmp 0x6ef1
jmp 0x6ed6
jmp 0x6ef1
jmp 0x6ed6
jmp 0x6ef1
jmp 0x6ed6
jmp 0x6ef1
jmp 0x6ed6
jmp 0x6ef1
jmp 0x6ed6
jmp 0x6ef1
jmp 0x6ed6
jmp 0x6ef1
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x6ef4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
jmp 0x6ef4
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0xc17a
movq %rbx, %rdi
callq 0x58e0