// File: /workspace/github_cpp_makefile_star2_O3/aalto-speech[P]ftk/test/emtest.cc
// Function: FactorGraphTest4::test_method()
BOOST_AUTO_TEST_CASE(FactorGraphTest4)
{
    map<std::string, flt_type> vocab;
    vocab.insert(make_pair("k", 0.0));
    vocab.insert(make_pair("a", 0.0));
    vocab.insert(make_pair("u", 0.0));
    vocab.insert(make_pair("p", 0.0));
    vocab.insert(make_pair("n", 0.0));
    vocab.insert(make_pair("g", 0.0));
    vocab.insert(make_pair("i", 0.0));
    vocab.insert(make_pair("s", 0.0));
    vocab.insert(make_pair("t", 0.0));
    vocab.insert(make_pair("m", 0.0));
    vocab.insert(make_pair("e", 0.0));
    vocab.insert(make_pair("kaupun", 0.0));
    vocab.insert(make_pair("gis", 0.0));
    vocab.insert(make_pair("gistu", 0.0));
    vocab.insert(make_pair("minen", 0.0));
    vocab.insert(make_pair("kau", 0.0));

    FactorGraph fg("kaupungistuminen", start_end, vocab, 6);
    BOOST_CHECK_EQUAL(23, (int)fg.nodes.size());

    StringSet ssvocab(vocab);
    FactorGraph ssfg("kaupungistuminen", start_end, ssvocab);
    BOOST_CHECK(fg.assert_equal(ssfg));

    int node_idx = 0;
    assert_node(fg, node_idx++, start_end, 0, 3);
    assert_node(fg, node_idx++, std::string("k"), 1, 1);
    assert_node(fg, node_idx++, std::string("kau"), 1, 1);
    assert_node(fg, node_idx++, std::string("kaupun"), 1, 3);
    assert_node(fg, node_idx++, std::string("a"), 1, 1);
    assert_node(fg, node_idx++, std::string("u"), 1, 1);
    assert_node(fg, node_idx++, std::string("p"), 2, 1);
    assert_node(fg, node_idx++, std::string("u"), 1, 1);
    assert_node(fg, node_idx++, std::string("n"), 1, 3);
    assert_node(fg, node_idx++, std::string("g"), 2, 1);
    assert_node(fg, node_idx++, std::string("gis"), 2, 1);
    assert_node(fg, node_idx++, std::string("gistu"), 2, 2);
    assert_node(fg, node_idx++, std::string("i"), 1, 1);
    assert_node(fg, node_idx++, std::string("s"), 1, 1);
    assert_node(fg, node_idx++, std::string("t"), 2, 1);
    assert_node(fg, node_idx++, std::string("u"), 1, 2);
    assert_node(fg, node_idx++, std::string("m"), 2, 1);
    assert_node(fg, node_idx++, std::string("minen"), 2, 1);
    assert_node(fg, node_idx++, std::string("i"), 1, 1);
    assert_node(fg, node_idx++, std::string("n"), 1, 1);
    assert_node(fg, node_idx++, std::string("e"), 1, 1);
    assert_node(fg, node_idx++, std::string("n"), 1, 1);
    assert_node(fg, node_idx++, start_end, 2, 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2f8, %rsp            # imm = 0x2F8
leaq -0x70(%rbp), %rax
movl $0x0, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x30abd(%rip), %rax     # 0x70d14
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq %rcx, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x30d79(%rip), %rax     # 0x70fee
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x2fd81(%rip), %rax     # 0x70018
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x30615(%rip), %rax     # 0x708ce
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x31d2e(%rip), %rax     # 0x72009
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x2fdd0(%rip), %rax     # 0x700cd
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x304cd(%rip), %rax     # 0x707ec
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x2fccd(%rip), %rax     # 0x7000e
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x302c6(%rip), %rax     # 0x70629
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x3005c(%rip), %rax     # 0x703e1
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x3050f(%rip), %rax     # 0x708b6
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x30c59(%rip), %rax     # 0x71022
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x30c3e(%rip), %rax     # 0x71029
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x30c20(%rip), %rax     # 0x7102d
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x30c13(%rip), %rax     # 0x71042
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq 0x30be2(%rip), %rax     # 0x71033
leaq -0x250(%rbp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq -0x78(%rbp), %rdi
callq 0x6ba60
leaq -0x240(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x30bb9(%rip), %rsi     # 0x71037
leaq 0x30bc2(%rip), %rdx     # 0x71047
leaq -0x250(%rbp), %rdi
callq 0x95e6
leaq 0x4a100(%rip), %rdx     # 0x8a598
leaq -0x110(%rbp), %rdi
leaq -0x250(%rbp), %rsi
leaq -0x78(%rbp), %rcx
movl $0x6, %r8d
xorl %r9d, %r9d
callq 0x10e70
movq -0x250(%rbp), %rdi
cmpq %r15, %rdi
je 0x404c9
callq 0x5380
movq 0x4a080(%rip), %rdi     # 0x8a550
leaq 0x3076b(%rip), %r12     # 0x70c42
leaq -0x2a0(%rbp), %rsi
movq %r12, (%rsi)
leaq 0x30768(%rip), %r14     # 0x70c50
movq %r14, 0x8(%rsi)
leaq 0x3057c(%rip), %r15     # 0x70a6f
leaq -0x290(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
movl $0x1c5, %edx            # imm = 0x1C5
callq 0x5760
xorl %eax, %eax
leaq -0x48(%rbp), %rsi
movb %al, 0x8(%rsi)
leaq 0x495b5(%rip), %rcx     # 0x89ad0
movq %rcx, (%rsi)
movq 0x49a8b(%rip), %r13     # 0x89fb0
movq %r13, 0x10(%rsi)
leaq 0x2fe97(%rip), %rcx     # 0x703c7
movq %rcx, 0x18(%rsi)
leaq -0x98(%rbp), %rcx
movl $0x17, (%rcx)
movq -0xc8(%rbp), %rdx
subq -0xd0(%rbp), %rdx
shrq $0x3, %rdx
imull $0xb6db6db7, %edx, %edx # imm = 0xB6DB6DB7
leaq -0x94(%rbp), %r8
cmpl $0x17, %edx
leaq -0x90(%rbp), %rdi
sete (%rdi)
movl %edx, (%r8)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq -0x120(%rbp), %rbx
movq %r12, (%rbx)
movq %r14, 0x8(%rbx)
leaq -0x130(%rbp), %rdx
movq %rcx, (%rdx)
movb %al, -0x248(%rbp)
leaq 0x49684(%rip), %rcx     # 0x89c20
movq %rcx, -0x250(%rbp)
movq %r13, -0x240(%rbp)
movq %rdx, -0x238(%rbp)
leaq -0x128(%rbp), %rdx
movq %r8, (%rdx)
leaq -0x318(%rbp), %r10
movb %al, 0x8(%r10)
movq %rcx, (%r10)
movq %r13, 0x10(%r10)
movq %rdx, 0x18(%r10)
subq $0x8, %rsp
leaq 0x30a14(%rip), %r11     # 0x70ff0
leaq 0x30a65(%rip), %r12     # 0x71048
movl $0x1c5, %ecx            # imm = 0x1C5
movq %rbx, %rdx
movl $0x1, %r8d
movl $0x2, %r9d
xorl %eax, %eax
pushq %r10
pushq %r11
leaq -0x250(%rbp), %r10
pushq %r10
pushq %r12
pushq $0x2
callq 0x5740
addq $0x30, %rsp
leaq -0x80(%rbp), %rdi
callq 0x2e804
leaq -0x250(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0xf4f0
leaq -0x38(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x309fc(%rip), %rsi     # 0x71037
leaq 0x30a05(%rip), %rdx     # 0x71047
leaq -0x48(%rbp), %rdi
callq 0x95e6
leaq 0x305f0(%rip), %r12     # 0x70c42
leaq 0x49f3f(%rip), %rdx     # 0x8a598
leaq -0x318(%rbp), %rdi
leaq -0x48(%rbp), %rsi
leaq -0x250(%rbp), %rcx
xorl %r8d, %r8d
callq 0x11194
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40681
callq 0x5380
movq 0x49ec8(%rip), %rdi     # 0x8a550
leaq -0x280(%rbp), %rsi
movq %r12, (%rsi)
leaq 0x305b7(%rip), %rax     # 0x70c50
movq %rax, 0x8(%rsi)
leaq -0x270(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
movl $0x1c9, %edx            # imm = 0x1C9
callq 0x5760
leaq -0x110(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x12014
leaq -0x90(%rbp), %rdi
movb %al, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq 0x30926(%rip), %rax     # 0x71005
movq %rax, -0x120(%rbp)
leaq 0x3092d(%rip), %rax     # 0x7101a
movq %rax, -0x118(%rbp)
leaq -0x48(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x4945d(%rip), %rax     # 0x89b60
movq %rax, (%rsi)
movq %r13, 0x10(%rsi)
movq %rbx, 0x18(%rsi)
leaq -0x260(%rbp), %rdx
movq %r12, (%rdx)
leaq 0x30531(%rip), %rax     # 0x70c50
movq %rax, 0x8(%rdx)
subq $0x8, %rsp
movl $0x1c9, %ecx            # imm = 0x1C9
movl $0x1, %r8d
xorl %r9d, %r9d
xorl %eax, %eax
pushq $0x0
callq 0x5740
addq $0x10, %rsp
leaq -0x80(%rbp), %rdi
callq 0x2e804
leaq 0x49e46(%rip), %rdx     # 0x8a598
leaq -0x110(%rbp), %rdi
xorl %esi, %esi
xorl %ecx, %ecx
movl $0x3, %r8d
callq 0x3d896
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x3059e(%rip), %rsi     # 0x70d14
leaq 0x30598(%rip), %rdx     # 0x70d15
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x1, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x407b0
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x30875(%rip), %rsi     # 0x71033
leaq 0x30871(%rip), %rdx     # 0x71036
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x2, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x407f8
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x3081c(%rip), %rsi     # 0x71022
leaq 0x3081b(%rip), %rdx     # 0x71028
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x3, %esi
movl $0x1, %ecx
movl $0x3, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40840
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x307a0(%rip), %rsi     # 0x70fee
leaq 0x3079a(%rip), %rdx     # 0x70fef
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x4, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40888
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2f782(%rip), %rsi     # 0x70018
leaq 0x2f77c(%rip), %rdx     # 0x70019
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x5, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x408d0
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2fff0(%rip), %rsi     # 0x708ce
leaq 0x2ffea(%rip), %rdx     # 0x708cf
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x6, %esi
movl $0x2, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40918
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2f6f2(%rip), %rsi     # 0x70018
leaq 0x2f6ec(%rip), %rdx     # 0x70019
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x7, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40960
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x3169b(%rip), %rsi     # 0x72009
leaq 0x31695(%rip), %rdx     # 0x7200a
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x8, %esi
movl $0x1, %ecx
movl $0x3, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x409a8
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2f717(%rip), %rsi     # 0x700cd
leaq 0x2f711(%rip), %rdx     # 0x700ce
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x9, %esi
movl $0x2, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x409f0
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x3062b(%rip), %rsi     # 0x71029
leaq 0x30627(%rip), %rdx     # 0x7102c
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0xa, %esi
movl $0x2, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40a38
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x305e7(%rip), %rsi     # 0x7102d
leaq 0x305e5(%rip), %rdx     # 0x71032
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0xb, %esi
movl $0x2, %ecx
movl $0x2, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40a80
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2fd5e(%rip), %rsi     # 0x707ec
leaq 0x2fd58(%rip), %rdx     # 0x707ed
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0xc, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40ac8
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2f538(%rip), %rsi     # 0x7000e
leaq 0x2f532(%rip), %rdx     # 0x7000f
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0xd, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40b10
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2fb0b(%rip), %rsi     # 0x70629
leaq 0x2fb05(%rip), %rdx     # 0x7062a
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0xe, %esi
movl $0x2, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40b58
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2f4b2(%rip), %rsi     # 0x70018
leaq 0x2f4ac(%rip), %rdx     # 0x70019
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0xf, %esi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40ba0
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2f833(%rip), %rsi     # 0x703e1
leaq 0x2f82d(%rip), %rdx     # 0x703e2
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x10, %esi
movl $0x2, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40be8
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x3044c(%rip), %rsi     # 0x71042
leaq 0x3044a(%rip), %rdx     # 0x71047
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x11, %esi
movl $0x2, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40c30
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2fbae(%rip), %rsi     # 0x707ec
leaq 0x2fba8(%rip), %rdx     # 0x707ed
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x12, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40c78
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x31383(%rip), %rsi     # 0x72009
leaq 0x3137d(%rip), %rdx     # 0x7200a
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x13, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40cc0
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x2fbe8(%rip), %rsi     # 0x708b6
leaq 0x2fbe2(%rip), %rdx     # 0x708b7
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x14, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40d08
callq 0x5380
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x312f3(%rip), %rsi     # 0x72009
leaq 0x312ed(%rip), %rdx     # 0x7200a
callq 0x95e6
leaq -0x110(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movl $0x15, %esi
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x3d896
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x40d50
callq 0x5380
leaq 0x49841(%rip), %rdx     # 0x8a598
leaq -0x110(%rbp), %rdi
movl $0x16, %esi
movl $0x2, %ecx
xorl %r8d, %r8d
callq 0x3d896
leaq -0x318(%rbp), %rdi
callq 0x12b80
leaq -0x250(%rbp), %rdi
callq 0xf870
leaq -0x110(%rbp), %rdi
callq 0x12b80
leaq -0x78(%rbp), %rdi
callq 0x1e712
addq $0x2f8, %rsp            # imm = 0x2F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
jmp 0x40fb8
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4103e
callq 0x5380
jmp 0x4103e
jmp 0x4103b
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x2e804
jmp 0x4103e
jmp 0x4103b
jmp 0x4103b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x4104a
callq 0x5380
jmp 0x4104a
movq %rax, %rbx
jmp 0x4104a
jmp 0x40ffb
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x2e804
jmp 0x41056
movq %rax, %rbx
jmp 0x41056
movq %rax, %rbx
movq -0x250(%rbp), %rdi
cmpq %r15, %rdi
je 0x41062
callq 0x5380
jmp 0x41062
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
jmp 0x41036
movq %rax, %rbx
jmp 0x41062
movq %rax, %rbx
leaq -0x318(%rbp), %rdi
callq 0x12b80
leaq -0x250(%rbp), %rdi
callq 0xf870
leaq -0x110(%rbp), %rdi
callq 0x12b80
leaq -0x78(%rbp), %rdi
callq 0x1e712
movq %rbx, %rdi
callq 0x56f0