// File: /workspace/github_cpp_makefile_star2_O3/aalto-speech[P]ftk/test/emtest.cc
// Function: viterbiTest8::test_method()
BOOST_AUTO_TEST_CASE(viterbiTest8)
{
    map<string, flt_type> vocab;
    string str1("p"); string str2("ö");
    string str3("l"); string str4("i");
    string str5("pölli");
    string str6("llä"); string str7("pöllillä");
    string str8("�");
    string str9("�");
    string str10("�");
    vocab[str1] = -1.0;
    vocab[str2] = -2.0;
    vocab[str3] = -1.5;
    vocab[str4] = -2.0;
    vocab[str5] = -3.0;
    vocab[str6] = -2.0;
    vocab[str7] = -1.0;
    string sentence("pöllillä");
    int maxlen = 8;
    vector<string> correct_path;
    correct_path.push_back(str7);
    viterbiChecks(vocab, maxlen, sentence, correct_path, -1, true);
    correct_path.clear();
    correct_path.push_back(str5);
    correct_path.push_back(str6);
    vocab[str7] = -6.0;
    viterbiChecks(vocab, maxlen, sentence, correct_path, -5.0, true);
    vocab[str1] = -0.1;
    vocab[str3] = -0.1;
    vocab[str4] = -0.1;
    vocab[str8] = -0.1;
    vocab[str9] = -0.1;
    vocab[str10] = -0.1;
    vocab.erase(str2);
    viterbiChecks(vocab, maxlen, sentence, correct_path, -5.0, true);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
leaq -0x68(%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 -0x140(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d49a(%rip), %rsi     # 0x708ce
leaq 0x3d494(%rip), %rdx     # 0x708cf
leaq -0x150(%rbp), %rdi
callq 0x95e6
leaq -0x120(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3dabf(%rip), %rsi     # 0x70f18
leaq 0x3daba(%rip), %rdx     # 0x70f1a
leaq -0x130(%rbp), %rdi
callq 0x95e6
leaq -0x100(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3db68(%rip), %rsi     # 0x70fe6
leaq 0x3db62(%rip), %rdx     # 0x70fe7
leaq -0x110(%rbp), %rdi
callq 0x95e6
leaq -0xe0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d349(%rip), %rsi     # 0x707ec
leaq 0x3d343(%rip), %rdx     # 0x707ed
leaq -0xf0(%rbp), %rdi
callq 0x95e6
leaq -0xc0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d86a(%rip), %rsi     # 0x70d32
leaq 0x3d869(%rip), %rdx     # 0x70d38
leaq -0xd0(%rbp), %rdi
callq 0x95e6
leaq -0xa0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d852(%rip), %rsi     # 0x70d3f
leaq 0x3d84f(%rip), %rdx     # 0x70d43
leaq -0xb0(%rbp), %rdi
callq 0x95e6
leaq -0x80(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d82a(%rip), %rsi     # 0x70d39
leaq 0x3d82d(%rip), %rdx     # 0x70d43
leaq -0x90(%rbp), %rdi
callq 0x95e6
leaq -0x1a0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d810(%rip), %rsi     # 0x70d44
leaq 0x3d80c(%rip), %rdx     # 0x70d47
leaq -0x1b0(%rbp), %rdi
callq 0x95e6
leaq -0x180(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d7eb(%rip), %rsi     # 0x70d44
leaq 0x3d7e7(%rip), %rdx     # 0x70d47
leaq -0x190(%rbp), %rdi
callq 0x95e6
leaq -0x1c0(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x3d7c6(%rip), %rsi     # 0x70d44
leaq 0x3d7c2(%rip), %rdx     # 0x70d47
leaq -0x1d0(%rbp), %rdi
callq 0x95e6
leaq -0x70(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x1dd1e
movabsq $-0x4010000000000000, %r14 # imm = 0xBFF0000000000000
movq %r14, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x1dd1e
movabsq $-0x4000000000000000, %r15 # imm = 0xC000000000000000
movq %r15, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x1dd1e
movabsq $-0x4008000000000000, %rcx # imm = 0xBFF8000000000000
movq %rcx, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x1dd1e
movq %r15, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x1dd1e
movabsq $-0x3ff8000000000000, %rcx # imm = 0xC008000000000000
movq %rcx, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x1dd1e
movq %r15, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x1dd1e
movq %r14, (%rax)
leaq -0x160(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x3d6e9(%rip), %rsi     # 0x70d39
leaq 0x3d6ec(%rip), %rdx     # 0x70d43
leaq -0x170(%rbp), %rdi
callq 0x95e6
xorps %xmm0, %xmm0
leaq -0x40(%rbp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq -0x90(%rbp), %rsi
callq 0xaca0
leaq -0x70(%rbp), %rdi
leaq -0x170(%rbp), %rdx
leaq -0x40(%rbp), %rcx
movsd 0x3d510(%rip), %xmm0    # 0x70ba8
movl $0x8, %esi
movl $0x1, %r8d
callq 0x2ea30
movq -0x40(%rbp), %r13
movq -0x38(%rbp), %r12
cmpq %r13, %r12
je 0x336d6
movq %r13, %r15
movq (%r15), %rdi
addq $0x10, %r15
cmpq %r15, %rdi
je 0x336c9
callq 0x5380
addq $0x10, %r15
cmpq %r12, %r15
jne 0x336b8
movq %r13, -0x38(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0xaca0
leaq -0x40(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xaca0
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x1dd1e
movabsq $-0x3fe8000000000000, %rcx # imm = 0xC018000000000000
movq %rcx, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0x170(%rbp), %rdx
leaq -0x40(%rbp), %rcx
movsd 0x3d076(%rip), %xmm0    # 0x707a0
movl $0x8, %esi
movl $0x1, %r8d
callq 0x2ea30
leaq -0x70(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x1dd1e
movabsq $-0x4046666666666666, %r15 # imm = 0xBFB999999999999A
movq %r15, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x1dd1e
movq %r15, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x1dd1e
movq %r15, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x1dd1e
movq %r15, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x1dd1e
movq %r15, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x1dd1e
movq %r15, (%rax)
leaq -0x70(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x26d7e
leaq -0x70(%rbp), %rdi
movq %rax, %rsi
callq 0x26e3a
leaq -0x70(%rbp), %rdi
leaq -0x170(%rbp), %rdx
leaq -0x40(%rbp), %rcx
movsd 0x3cfb7(%rip), %xmm0    # 0x707a0
movl $0x8, %esi
movl $0x1, %r8d
callq 0x2ea30
leaq -0x40(%rbp), %rdi
callq 0xab52
movq -0x170(%rbp), %rdi
cmpq %r14, %rdi
je 0x33813
callq 0x5380
movq -0x1d0(%rbp), %rdi
cmpq %rbx, %rdi
leaq -0x140(%rbp), %rbx
leaq -0x120(%rbp), %r14
je 0x33832
callq 0x5380
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x3384a
callq 0x5380
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x33862
callq 0x5380
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x33877
callq 0x5380
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x3388f
callq 0x5380
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x338a7
callq 0x5380
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x338bf
callq 0x5380
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x338d7
callq 0x5380
movq -0x130(%rbp), %rdi
cmpq %r14, %rdi
je 0x338e8
callq 0x5380
movq -0x150(%rbp), %rdi
cmpq %rbx, %rdi
je 0x338f9
callq 0x5380
leaq -0x70(%rbp), %rdi
callq 0x1e712
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x33963
movq %rax, %r15
jmp 0x33996
movq %rax, %r15
jmp 0x339ae
movq %rax, %r15
jmp 0x339c6
movq %rax, %r15
jmp 0x339db
movq %rax, %r15
jmp 0x339f3
movq %rax, %r15
jmp 0x33a0b
movq %rax, %r15
jmp 0x33a23
movq %rax, %r15
jmp 0x33a3b
movq %rax, %r15
jmp 0x33a53
movq %rax, %r15
jmp 0x33a6b
movq %rax, %r15
jmp 0x33985
movq %rax, %r15
leaq -0x40(%rbp), %rdi
callq 0xab52
movq -0x170(%rbp), %rdi
cmpq %r14, %rdi
je 0x33985
callq 0x5380
movq -0x1d0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x33996
callq 0x5380
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x339ae
callq 0x5380
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x339c6
callq 0x5380
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x339db
callq 0x5380
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x339f3
callq 0x5380
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x33a0b
callq 0x5380
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x33a23
callq 0x5380
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x33a3b
callq 0x5380
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x33a53
callq 0x5380
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x33a6b
callq 0x5380
leaq -0x70(%rbp), %rdi
callq 0x1e712
movq %r15, %rdi
callq 0x56f0