// File: /workspace/github_cpp_makefile_star2_O2/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 %r14
pushq %rbx
subq $0x1b0, %rsp            # imm = 0x1B0
leaq -0x38(%rbp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x2768c(%rip), %rsi     # 0x5384a
leaq -0x1c0(%rbp), %rdi
leaq -0x140(%rbp), %rdx
callq 0x5160
leaq 0x27c7e(%rip), %rsi     # 0x53e56
leaq -0x140(%rbp), %rdi
leaq -0x120(%rbp), %rdx
callq 0x5160
leaq 0x27d32(%rip), %rsi     # 0x53f24
leaq -0x120(%rbp), %rdi
leaq -0x100(%rbp), %rdx
callq 0x5160
leaq 0x2755c(%rip), %rsi     # 0x53768
leaq -0x100(%rbp), %rdi
leaq -0xe0(%rbp), %rdx
callq 0x5160
leaq 0x27a4a(%rip), %rsi     # 0x53c70
leaq -0xe0(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
callq 0x5160
leaq 0x27a3d(%rip), %rsi     # 0x53c7d
leaq -0xc0(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0x5160
leaq 0x27a1d(%rip), %rsi     # 0x53c77
leaq -0xa0(%rbp), %rdi
leaq -0x1a0(%rbp), %rdx
callq 0x5160
leaq 0x27a0e(%rip), %rsi     # 0x53c82
leaq -0x1a0(%rbp), %rdi
leaq -0x180(%rbp), %rdx
callq 0x5160
leaq 0x279f4(%rip), %rsi     # 0x53c82
leaq -0x180(%rbp), %rdi
leaq -0x160(%rbp), %rdx
callq 0x5160
leaq 0x279da(%rip), %rsi     # 0x53c82
leaq -0x160(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x5160
leaq -0x40(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1b338
movabsq $-0x4010000000000000, %rbx # imm = 0xBFF0000000000000
movq %rbx, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x1b338
movabsq $-0x4000000000000000, %r14 # imm = 0xC000000000000000
movq %r14, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x1b338
movabsq $-0x4008000000000000, %rcx # imm = 0xBFF8000000000000
movq %rcx, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x1b338
movq %r14, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x1b338
movabsq $-0x3ff8000000000000, %rcx # imm = 0xC008000000000000
movq %rcx, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x1b338
movq %r14, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x1b338
movq %rbx, (%rax)
leaq 0x2790b(%rip), %rsi     # 0x53c77
leaq -0x80(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x5160
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %rdi
movaps %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq -0xa0(%rbp), %rsi
callq 0x9670
leaq -0x40(%rbp), %rdi
pushq $0x8
popq %rsi
leaq -0x80(%rbp), %rdx
leaq -0x60(%rbp), %rcx
movsd 0x277ad(%rip), %xmm0    # 0x53b58
pushq $0x1
popq %r8
callq 0x295d8
leaq -0x60(%rbp), %rbx
movq %rbx, %rdi
callq 0x9a04
leaq -0xe0(%rbp), %rsi
movq %rbx, %rdi
callq 0x9670
leaq -0x60(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x9670
leaq -0x40(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x1b338
movabsq $-0x3fe8000000000000, %rcx # imm = 0xC018000000000000
movq %rcx, (%rax)
leaq -0x40(%rbp), %rdi
pushq $0x8
popq %rsi
leaq -0x80(%rbp), %rdx
leaq -0x60(%rbp), %rcx
movsd 0x2774d(%rip), %xmm0    # 0x53b60
pushq $0x1
popq %r8
callq 0x295d8
leaq -0x40(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1b338
movabsq $-0x4046666666666666, %rbx # imm = 0xBFB999999999999A
movq %rbx, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x1b338
movq %rbx, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x1b338
movq %rbx, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x1b338
movq %rbx, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x1b338
movq %rbx, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x1b338
movq %rbx, (%rax)
leaq -0x40(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x23cbe
leaq -0x40(%rbp), %rdi
pushq $0x8
popq %rsi
leaq -0x80(%rbp), %rdx
leaq -0x60(%rbp), %rcx
movsd 0x276a1(%rip), %xmm0    # 0x53b60
pushq $0x1
popq %r8
callq 0x295d8
leaq -0x60(%rbp), %rdi
callq 0x9574
leaq -0x80(%rbp), %rdi
callq 0x57b8
leaq -0x160(%rbp), %rdi
callq 0x57b8
leaq -0x180(%rbp), %rdi
callq 0x57b8
leaq -0x1a0(%rbp), %rdi
callq 0x57b8
leaq -0xa0(%rbp), %rdi
callq 0x57b8
leaq -0xc0(%rbp), %rdi
callq 0x57b8
leaq -0xe0(%rbp), %rdi
callq 0x57b8
leaq -0x100(%rbp), %rdi
callq 0x57b8
leaq -0x120(%rbp), %rdi
callq 0x57b8
leaq -0x140(%rbp), %rdi
callq 0x57b8
leaq -0x1c0(%rbp), %rdi
callq 0x57b8
leaq -0x40(%rbp), %rdi
callq 0x1bba4
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x2c5aa
movq %rax, %rbx
jmp 0x2c5d0
movq %rax, %rbx
jmp 0x2c5dc
movq %rax, %rbx
jmp 0x2c5e8
movq %rax, %rbx
jmp 0x2c5f4
movq %rax, %rbx
jmp 0x2c600
movq %rax, %rbx
jmp 0x2c60c
movq %rax, %rbx
jmp 0x2c618
movq %rax, %rbx
jmp 0x2c624
movq %rax, %rbx
jmp 0x2c630
movq %rax, %rbx
jmp 0x2c63c
movq %rax, %rbx
jmp 0x2c5c4
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0x9574
leaq -0x80(%rbp), %rdi
callq 0x57b8
leaq -0x160(%rbp), %rdi
callq 0x57b8
leaq -0x180(%rbp), %rdi
callq 0x57b8
leaq -0x1a0(%rbp), %rdi
callq 0x57b8
leaq -0xa0(%rbp), %rdi
callq 0x57b8
leaq -0xc0(%rbp), %rdi
callq 0x57b8
leaq -0xe0(%rbp), %rdi
callq 0x57b8
leaq -0x100(%rbp), %rdi
callq 0x57b8
leaq -0x120(%rbp), %rdi
callq 0x57b8
leaq -0x140(%rbp), %rdi
callq 0x57b8
leaq -0x1c0(%rbp), %rdi
callq 0x57b8
leaq -0x40(%rbp), %rdi
callq 0x1bba4
movq %rbx, %rdi
callq 0x56b0