// File: aalto-speech[P]ftk/test/emtest.cc
// Function: TransitionForwardBackwardTest2::test_method()
BOOST_AUTO_TEST_CASE(TransitionForwardBackwardTest2)
{
    string str1("a"); string str2("bc");
    string str3("ab"); string str4("c");
    set<string> vocab = {start_end,str1,str2,str3,str4};
    transitions_t transitions;
    transitions[start_end][str1] = -1.0;
    transitions[start_end][str3] = -1.0;
    transitions[str2][start_end] = -1.0;
    transitions[str4][start_end] = -1.0;
    transitions[str1][str2] = -2.0;
    transitions[str3][str4] = -1.0;
    string sentence("abc");
    FactorGraph fg(sentence, start_end, vocab, 2);
    transitions_t stats;
    flt_type lp = forward_backward(transitions, fg, stats);
    flt_type path_1_score = exp(-4)/(exp(-3) + exp(-4));
    flt_type path_2_score = exp(-3)/(exp(-3) + exp(-4));
    BOOST_CHECK_EQUAL(6, transition_count(stats));
    BOOST_CHECK_CLOSE( path_1_score, stats[str2][start_end], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( path_2_score, stats[str4][start_end], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( path_1_score, stats[start_end][str1], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( path_2_score, stats[start_end][str3], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( path_1_score, stats[str1][str2], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( path_2_score, stats[str3][str4], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( -2.68673831248, lp, DBL_ACCURACY );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x860, %rsp            # imm = 0x860
movq %rdi, -0x8(%rbp)
leaq -0x29(%rbp), %rdi
movq %rdi, -0x5d0(%rbp)
callq 0x67b0
movq -0x5d0(%rbp), %rdx
leaq 0x2fa47(%rip), %rsi     # 0xcbf14
leaq -0x28(%rbp), %rdi
callq 0x65e0
jmp 0x9c4d8
leaq -0x29(%rbp), %rdi
callq 0x6470
leaq -0x61(%rbp), %rdi
movq %rdi, -0x5d8(%rbp)
callq 0x67b0
movq -0x5d8(%rbp), %rdx
leaq 0x2f6e1(%rip), %rsi     # 0xcbbe0
leaq -0x60(%rbp), %rdi
callq 0x65e0
jmp 0x9c50a
leaq -0x61(%rbp), %rdi
callq 0x6470
leaq -0x89(%rbp), %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x67b0
movq -0x5e0(%rbp), %rdx
leaq 0x2f6bc(%rip), %rsi     # 0xcbbf0
leaq -0x88(%rbp), %rdi
callq 0x65e0
jmp 0x9c542
leaq -0x89(%rbp), %rdi
callq 0x6470
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x5e8(%rbp)
callq 0x67b0
movq -0x5e8(%rbp), %rdx
leaq 0x2f672(%rip), %rsi     # 0xcbbe1
leaq -0xb0(%rbp), %rdi
callq 0x65e0
jmp 0x9c57d
leaq -0xb1(%rbp), %rdi
callq 0x6470
leaq -0x198(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
leaq 0x6b09a(%rip), %rsi     # 0x107638
callq 0x61c0
jmp 0x9c5a5
leaq -0x178(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
leaq -0x28(%rbp), %rsi
callq 0x61c0
jmp 0x9c5be
leaq -0x158(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
leaq -0x60(%rbp), %rsi
callq 0x61c0
jmp 0x9c5d7
leaq -0x138(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
leaq -0x88(%rbp), %rsi
callq 0x61c0
jmp 0x9c5f3
leaq -0x118(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
leaq -0xb0(%rbp), %rsi
callq 0x61c0
jmp 0x9c60f
leaq -0x198(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq $0x5, -0xf0(%rbp)
leaq -0x1a2(%rbp), %rdi
movq %rdi, -0x5f0(%rbp)
callq 0xdab0
movq -0x5f0(%rbp), %r8
movq -0xf8(%rbp), %rsi
movq -0xf0(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
leaq -0x1a1(%rbp), %rcx
callq 0xbfde0
jmp 0x9c665
leaq -0x1a2(%rbp), %rdi
callq 0xdb50
leaq -0x198(%rbp), %rax
movq %rax, -0x600(%rbp)
addq $0xa0, %rax
movq %rax, -0x5f8(%rbp)
movq -0x5f8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x608(%rbp)
callq 0x6908
movq -0x600(%rbp), %rcx
movq -0x608(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x5f8(%rbp)
jne 0x9c68c
leaq -0x1d8(%rbp), %rdi
movq %rdi, -0x618(%rbp)
callq 0x4bd30
movq -0x618(%rbp), %rdi
leaq 0x6af5a(%rip), %rsi     # 0x107638
callq 0x4b980
movq %rax, -0x610(%rbp)
jmp 0x9c6ec
movq -0x610(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x4b030
movq %rax, -0x620(%rbp)
jmp 0x9c705
movq -0x620(%rbp), %rax
movabsq $-0x4010000000000000, %rcx # imm = 0xBFF0000000000000
movq %rcx, (%rax)
leaq 0x6af18(%rip), %rsi     # 0x107638
leaq -0x1d8(%rbp), %rdi
callq 0x4b980
movq %rax, -0x628(%rbp)
jmp 0x9c735
movq -0x628(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x4b030
movq %rax, -0x630(%rbp)
jmp 0x9c751
movq -0x630(%rbp), %rax
movabsq $-0x4010000000000000, %rcx # imm = 0xBFF0000000000000
movq %rcx, (%rax)
leaq -0x1d8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x4b980
movq %rax, -0x638(%rbp)
jmp 0x9c77e
movq -0x638(%rbp), %rdi
leaq 0x6aeac(%rip), %rsi     # 0x107638
callq 0x4b030
movq %rax, -0x640(%rbp)
jmp 0x9c79a
movq -0x640(%rbp), %rax
movabsq $-0x4010000000000000, %rcx # imm = 0xBFF0000000000000
movq %rcx, (%rax)
leaq -0x1d8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x4b980
movq %rax, -0x648(%rbp)
jmp 0x9c7ca
movq -0x648(%rbp), %rdi
leaq 0x6ae60(%rip), %rsi     # 0x107638
callq 0x4b030
movq %rax, -0x650(%rbp)
jmp 0x9c7e6
movq -0x650(%rbp), %rax
movabsq $-0x4010000000000000, %rcx # imm = 0xBFF0000000000000
movq %rcx, (%rax)
leaq -0x1d8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x4b980
movq %rax, -0x658(%rbp)
jmp 0x9c813
movq -0x658(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x4b030
movq %rax, -0x660(%rbp)
jmp 0x9c82c
movq -0x660(%rbp), %rax
movabsq $-0x4000000000000000, %rcx # imm = 0xC000000000000000
movq %rcx, (%rax)
leaq -0x1d8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x4b980
movq %rax, -0x668(%rbp)
jmp 0x9c85c
movq -0x668(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x4b030
movq %rax, -0x670(%rbp)
jmp 0x9c878
movq -0x670(%rbp), %rax
movabsq $-0x4010000000000000, %rcx # imm = 0xBFF0000000000000
movq %rcx, (%rax)
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x678(%rbp)
callq 0x67b0
movq -0x678(%rbp), %rdx
leaq 0x2f332(%rip), %rsi     # 0xcbbdf
leaq -0x1f8(%rbp), %rdi
callq 0x65e0
jmp 0x9c8bb
leaq -0x1f9(%rbp), %rdi
callq 0x6470
leaq 0x6ad6a(%rip), %rdx     # 0x107638
leaq -0x278(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
leaq -0xe8(%rbp), %rcx
movl $0x2, %r8d
xorl %r9d, %r9d
callq 0x239b0
jmp 0x9c8f3
leaq -0x2a8(%rbp), %rdi
movq %rdi, -0x688(%rbp)
callq 0x4bd30
movq -0x688(%rbp), %rdx
leaq -0x1d8(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x45f80
movsd %xmm0, -0x680(%rbp)
jmp 0x9c92a
movsd -0x680(%rbp), %xmm0
movsd %xmm0, -0x2b0(%rbp)
movl $0xfffffffc, %edi       # imm = 0xFFFFFFFC
callq 0xbff30
movsd %xmm0, -0x690(%rbp)
jmp 0x9c94e
movl $0xfffffffd, %edi       # imm = 0xFFFFFFFD
callq 0xbff30
movsd %xmm0, -0x698(%rbp)
jmp 0x9c962
movl $0xfffffffc, %edi       # imm = 0xFFFFFFFC
callq 0xbff30
movsd %xmm0, -0x6a0(%rbp)
jmp 0x9c976
movsd -0x690(%rbp), %xmm0
movsd -0x6a0(%rbp), %xmm2
movsd -0x698(%rbp), %xmm1
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x2b8(%rbp)
movl $0xfffffffd, %edi       # imm = 0xFFFFFFFD
callq 0xbff30
movsd %xmm0, -0x6a8(%rbp)
jmp 0x9c9b2
movl $0xfffffffd, %edi       # imm = 0xFFFFFFFD
callq 0xbff30
movsd %xmm0, -0x6b0(%rbp)
jmp 0x9c9c6
movl $0xfffffffc, %edi       # imm = 0xFFFFFFFC
callq 0xbff30
movsd %xmm0, -0x6b8(%rbp)
jmp 0x9c9da
movsd -0x6a8(%rbp), %xmm0
movsd -0x6b8(%rbp), %xmm2
movsd -0x6b0(%rbp), %xmm1
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x2c0(%rbp)
movq 0x6abe7(%rip), %rax     # 0x1075f0
movq %rax, -0x6c0(%rbp)
leaq 0x2f151(%rip), %rsi     # 0xcbb68
leaq -0x2d0(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9ca2a
leaq -0x2e0(%rbp), %rdi
callq 0x70c00
jmp 0x9ca38
movq -0x6c0(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
movl $0x366, %edx            # imm = 0x366
leaq -0x2e0(%rbp), %rcx
callq 0x6840
jmp 0x9ca59
callq 0x70e90
movq %rax, -0x6c8(%rbp)
jmp 0x9ca67
movq -0x6c8(%rbp), %rsi
leaq 0x2e8b5(%rip), %rdx     # 0xcb32a
leaq -0x308(%rbp), %rdi
callq 0x70e50
jmp 0x9ca83
leaq 0x2f0de(%rip), %rsi     # 0xcbb68
leaq -0x318(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9ca9d
movl $0x6, -0x31c(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x90970
movl %eax, -0x320(%rbp)
leaq 0x2f76e(%rip), %rcx     # 0xcc22e
movq %rsp, %rax
movq %rcx, 0x10(%rax)
leaq -0x320(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x2fbe4(%rip), %rcx     # 0xcc6bd
movq %rcx, (%rax)
leaq -0x308(%rbp), %rdi
leaq -0x318(%rbp), %rsi
movl $0x366, %edx            # imm = 0x366
movl $0x1, %ecx
movl $0x2, %r8d
leaq -0x31c(%rbp), %r9
callq 0xbf480
jmp 0x9cb08
leaq -0x308(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x6c9(%rbp)
jmp 0x9cb21
movb -0x6c9(%rbp), %al
testb $0x1, %al
jne 0x9ca02
jmp 0x9cb31
jmp 0x9cb33
movq 0x6aab6(%rip), %rax     # 0x1075f0
movq %rax, -0x6d8(%rbp)
leaq 0x2f020(%rip), %rsi     # 0xcbb68
leaq -0x330(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9cb5b
leaq -0x340(%rbp), %rdi
callq 0x70c00
jmp 0x9cb69
movq -0x6d8(%rbp), %rdi
leaq -0x330(%rbp), %rsi
movl $0x367, %edx            # imm = 0x367
leaq -0x340(%rbp), %rcx
callq 0x6840
jmp 0x9cb8a
callq 0x70e90
movq %rax, -0x6e0(%rbp)
jmp 0x9cb98
movq -0x6e0(%rbp), %rsi
leaq 0x2e784(%rip), %rdx     # 0xcb32a
leaq -0x368(%rbp), %rdi
callq 0x70e50
jmp 0x9cbb4
leaq 0x2efad(%rip), %rsi     # 0xcbb68
leaq -0x378(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9cbce
leaq -0x2a8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x4b980
movq %rax, -0x6e8(%rbp)
jmp 0x9cbe7
movq -0x6e8(%rbp), %rdi
leaq 0x6aa43(%rip), %rsi     # 0x107638
callq 0x4b030
movq %rax, -0x6f0(%rbp)
jmp 0x9cc03
movsd 0x6a8a5(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x6f8(%rbp)
jmp 0x9cc1a
movq -0x6f0(%rbp), %rcx
movsd -0x6f8(%rbp), %xmm0
movsd %xmm0, -0x380(%rbp)
leaq 0x2f0ad(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x380(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x2f61e(%rip), %rdx     # 0xcc26f
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x2f645(%rip), %rcx     # 0xcc2a5
movq %rcx, (%rax)
leaq -0x368(%rbp), %rdi
leaq -0x378(%rbp), %rsi
movl $0x367, %edx            # imm = 0x367
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x2b8(%rbp), %r9
callq 0xbf6a0
jmp 0x9cc8f
leaq -0x368(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x6f9(%rbp)
jmp 0x9cca8
movb -0x6f9(%rbp), %al
testb $0x1, %al
jne 0x9cb33
jmp 0x9ccb8
jmp 0x9ccba
movq 0x6a92f(%rip), %rax     # 0x1075f0
movq %rax, -0x708(%rbp)
leaq 0x2ee99(%rip), %rsi     # 0xcbb68
leaq -0x390(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9cce2
leaq -0x3a0(%rbp), %rdi
callq 0x70c00
jmp 0x9ccf0
movq -0x708(%rbp), %rdi
leaq -0x390(%rbp), %rsi
movl $0x368, %edx            # imm = 0x368
leaq -0x3a0(%rbp), %rcx
callq 0x6840
jmp 0x9cd11
callq 0x70e90
movq %rax, -0x710(%rbp)
jmp 0x9cd1f
movq -0x710(%rbp), %rsi
leaq 0x2e5fd(%rip), %rdx     # 0xcb32a
leaq -0x3c8(%rbp), %rdi
callq 0x70e50
jmp 0x9cd3b
leaq 0x2ee26(%rip), %rsi     # 0xcbb68
leaq -0x3d8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9cd55
leaq -0x2a8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x4b980
movq %rax, -0x718(%rbp)
jmp 0x9cd71
movq -0x718(%rbp), %rdi
leaq 0x6a8b9(%rip), %rsi     # 0x107638
callq 0x4b030
movq %rax, -0x720(%rbp)
jmp 0x9cd8d
movsd 0x6a71b(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x728(%rbp)
jmp 0x9cda4
movq -0x720(%rbp), %rcx
movsd -0x728(%rbp), %xmm0
movsd %xmm0, -0x3e0(%rbp)
leaq 0x2ef23(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x3e0(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x2f4e4(%rip), %rdx     # 0xcc2bf
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x2f4c8(%rip), %rcx     # 0xcc2b2
movq %rcx, (%rax)
leaq -0x3c8(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
movl $0x368, %edx            # imm = 0x368
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x2c0(%rbp), %r9
callq 0xbf6a0
jmp 0x9ce19
leaq -0x3c8(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x729(%rbp)
jmp 0x9ce32
movb -0x729(%rbp), %al
testb $0x1, %al
jne 0x9ccba
jmp 0x9ce42
jmp 0x9ce44
movq 0x6a7a5(%rip), %rax     # 0x1075f0
movq %rax, -0x738(%rbp)
leaq 0x2ed0f(%rip), %rsi     # 0xcbb68
leaq -0x3f0(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9ce6c
leaq -0x400(%rbp), %rdi
callq 0x70c00
jmp 0x9ce7a
movq -0x738(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
movl $0x369, %edx            # imm = 0x369
leaq -0x400(%rbp), %rcx
callq 0x6840
jmp 0x9ce9b
callq 0x70e90
movq %rax, -0x740(%rbp)
jmp 0x9cea9
movq -0x740(%rbp), %rsi
leaq 0x2e473(%rip), %rdx     # 0xcb32a
leaq -0x428(%rbp), %rdi
callq 0x70e50
jmp 0x9cec5
leaq 0x2ec9c(%rip), %rsi     # 0xcbb68
leaq -0x438(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9cedf
leaq 0x6a752(%rip), %rsi     # 0x107638
leaq -0x2a8(%rbp), %rdi
callq 0x4b980
movq %rax, -0x748(%rbp)
jmp 0x9cefb
movq -0x748(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x4b030
movq %rax, -0x750(%rbp)
jmp 0x9cf14
movsd 0x6a594(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x758(%rbp)
jmp 0x9cf2b
movq -0x750(%rbp), %rcx
movsd -0x758(%rbp), %xmm0
movsd %xmm0, -0x440(%rbp)
leaq 0x2ed9c(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x440(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x2f2e4(%rip), %rdx     # 0xcc246
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x2f334(%rip), %rcx     # 0xcc2a5
movq %rcx, (%rax)
leaq -0x428(%rbp), %rdi
leaq -0x438(%rbp), %rsi
movl $0x369, %edx            # imm = 0x369
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x2b8(%rbp), %r9
callq 0xbf6a0
jmp 0x9cfa0
leaq -0x428(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x759(%rbp)
jmp 0x9cfb9
movb -0x759(%rbp), %al
testb $0x1, %al
jne 0x9ce44
jmp 0x9cfc9
jmp 0x9cfcb
movq 0x6a61e(%rip), %rax     # 0x1075f0
movq %rax, -0x768(%rbp)
leaq 0x2eb88(%rip), %rsi     # 0xcbb68
leaq -0x450(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9cff3
leaq -0x460(%rbp), %rdi
callq 0x70c00
jmp 0x9d001
movq -0x768(%rbp), %rdi
leaq -0x450(%rbp), %rsi
movl $0x36a, %edx            # imm = 0x36A
leaq -0x460(%rbp), %rcx
callq 0x6840
jmp 0x9d022
callq 0x70e90
movq %rax, -0x770(%rbp)
jmp 0x9d030
movq -0x770(%rbp), %rsi
leaq 0x2e2ec(%rip), %rdx     # 0xcb32a
leaq -0x488(%rbp), %rdi
callq 0x70e50
jmp 0x9d04c
leaq 0x2eb15(%rip), %rsi     # 0xcbb68
leaq -0x498(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9d066
leaq 0x6a5cb(%rip), %rsi     # 0x107638
leaq -0x2a8(%rbp), %rdi
callq 0x4b980
movq %rax, -0x778(%rbp)
jmp 0x9d082
movq -0x778(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x4b030
movq %rax, -0x780(%rbp)
jmp 0x9d09e
movsd 0x6a40a(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x788(%rbp)
jmp 0x9d0b5
movq -0x780(%rbp), %rcx
movsd -0x788(%rbp), %xmm0
movsd %xmm0, -0x4a0(%rbp)
leaq 0x2ec12(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x4a0(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x2f1ea(%rip), %rdx     # 0xcc2d6
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x2f1b7(%rip), %rcx     # 0xcc2b2
movq %rcx, (%rax)
leaq -0x488(%rbp), %rdi
leaq -0x498(%rbp), %rsi
movl $0x36a, %edx            # imm = 0x36A
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x2c0(%rbp), %r9
callq 0xbf6a0
jmp 0x9d12a
leaq -0x488(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x789(%rbp)
jmp 0x9d143
movb -0x789(%rbp), %al
testb $0x1, %al
jne 0x9cfcb
jmp 0x9d153
jmp 0x9d155
movq 0x6a494(%rip), %rax     # 0x1075f0
movq %rax, -0x798(%rbp)
leaq 0x2e9fe(%rip), %rsi     # 0xcbb68
leaq -0x4b0(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9d17d
leaq -0x4c0(%rbp), %rdi
callq 0x70c00
jmp 0x9d18b
movq -0x798(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
movl $0x36b, %edx            # imm = 0x36B
leaq -0x4c0(%rbp), %rcx
callq 0x6840
jmp 0x9d1ac
callq 0x70e90
movq %rax, -0x7a0(%rbp)
jmp 0x9d1ba
movq -0x7a0(%rbp), %rsi
leaq 0x2e162(%rip), %rdx     # 0xcb32a
leaq -0x4e8(%rbp), %rdi
callq 0x70e50
jmp 0x9d1d6
leaq 0x2e98b(%rip), %rsi     # 0xcbb68
leaq -0x4f8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9d1f0
leaq -0x2a8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x4b980
movq %rax, -0x7a8(%rbp)
jmp 0x9d209
movq -0x7a8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x4b030
movq %rax, -0x7b0(%rbp)
jmp 0x9d222
movsd 0x6a286(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x7b8(%rbp)
jmp 0x9d239
movq -0x7b0(%rbp), %rcx
movsd -0x7b8(%rbp), %xmm0
movsd %xmm0, -0x500(%rbp)
leaq 0x2ea8e(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x500(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x2efed(%rip), %rdx     # 0xcc25d
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x2f026(%rip), %rcx     # 0xcc2a5
movq %rcx, (%rax)
leaq -0x4e8(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
movl $0x36b, %edx            # imm = 0x36B
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x2b8(%rbp), %r9
callq 0xbf6a0
jmp 0x9d2ae
leaq -0x4e8(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x7b9(%rbp)
jmp 0x9d2c7
movb -0x7b9(%rbp), %al
testb $0x1, %al
jne 0x9d155
jmp 0x9d2d7
jmp 0x9d2d9
movq 0x6a310(%rip), %rax     # 0x1075f0
movq %rax, -0x7c8(%rbp)
leaq 0x2e87a(%rip), %rsi     # 0xcbb68
leaq -0x510(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9d301
leaq -0x520(%rbp), %rdi
callq 0x70c00
jmp 0x9d30f
movq -0x7c8(%rbp), %rdi
leaq -0x510(%rbp), %rsi
movl $0x36c, %edx            # imm = 0x36C
leaq -0x520(%rbp), %rcx
callq 0x6840
jmp 0x9d330
callq 0x70e90
movq %rax, -0x7d0(%rbp)
jmp 0x9d33e
movq -0x7d0(%rbp), %rsi
leaq 0x2dfde(%rip), %rdx     # 0xcb32a
leaq -0x548(%rbp), %rdi
callq 0x70e50
jmp 0x9d35a
leaq 0x2e807(%rip), %rsi     # 0xcbb68
leaq -0x558(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9d374
leaq -0x2a8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x4b980
movq %rax, -0x7d8(%rbp)
jmp 0x9d390
movq -0x7d8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x4b030
movq %rax, -0x7e0(%rbp)
jmp 0x9d3ac
movsd 0x6a0fc(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x7e8(%rbp)
jmp 0x9d3c3
movq -0x7e0(%rbp), %rcx
movsd -0x7e8(%rbp), %xmm0
movsd %xmm0, -0x560(%rbp)
leaq 0x2e904(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x560(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x2eef3(%rip), %rdx     # 0xcc2ed
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x2eea9(%rip), %rcx     # 0xcc2b2
movq %rcx, (%rax)
leaq -0x548(%rbp), %rdi
leaq -0x558(%rbp), %rsi
movl $0x36c, %edx            # imm = 0x36C
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x2c0(%rbp), %r9
callq 0xbf6a0
jmp 0x9d438
leaq -0x548(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x7e9(%rbp)
jmp 0x9d451
movb -0x7e9(%rbp), %al
testb $0x1, %al
jne 0x9d2d9
jmp 0x9d461
jmp 0x9d463
movq 0x6a186(%rip), %rax     # 0x1075f0
movq %rax, -0x7f8(%rbp)
leaq 0x2e6f0(%rip), %rsi     # 0xcbb68
leaq -0x570(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9d48b
leaq -0x580(%rbp), %rdi
callq 0x70c00
jmp 0x9d499
movq -0x7f8(%rbp), %rdi
leaq -0x570(%rbp), %rsi
movl $0x36d, %edx            # imm = 0x36D
leaq -0x580(%rbp), %rcx
callq 0x6840
jmp 0x9d4ba
callq 0x70e90
movq %rax, -0x800(%rbp)
jmp 0x9d4c8
movq -0x800(%rbp), %rsi
leaq 0x2de54(%rip), %rdx     # 0xcb32a
leaq -0x5a8(%rbp), %rdi
callq 0x70e50
jmp 0x9d4e4
leaq 0x2e67d(%rip), %rsi     # 0xcbb68
leaq -0x5b8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x9d4fe
movabsq $-0x3ffa818f57f7e7c6, %rax # imm = 0xC0057E70A808183A
movq %rax, -0x5c0(%rbp)
movsd 0x69f99(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x808(%rbp)
jmp 0x9d526
movsd -0x808(%rbp), %xmm0
movsd %xmm0, -0x5c8(%rbp)
leaq 0x2e7a8(%rip), %rcx     # 0xcbce5
movq %rsp, %rax
movq %rcx, 0x20(%rax)
leaq -0x5c8(%rbp), %rcx
movq %rcx, 0x18(%rax)
leaq 0x2f220(%rip), %rcx     # 0xcc776
movq %rcx, 0x10(%rax)
leaq -0x2b0(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x2ed93(%rip), %rcx     # 0xcc2ff
movq %rcx, (%rax)
leaq -0x5a8(%rbp), %rdi
leaq -0x5b8(%rbp), %rsi
movl $0x36d, %edx            # imm = 0x36D
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x5c0(%rbp), %r9
callq 0xbf6a0
jmp 0x9d59b
leaq -0x5a8(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x809(%rbp)
jmp 0x9d5b4
movb -0x809(%rbp), %al
testb $0x1, %al
jne 0x9d463
jmp 0x9d5c4
leaq -0x2a8(%rbp), %rdi
callq 0x4bd50
leaq -0x278(%rbp), %rdi
callq 0x26180
leaq -0x1f8(%rbp), %rdi
callq 0x6908
leaq -0x1d8(%rbp), %rdi
callq 0x4bd50
leaq -0xe8(%rbp), %rdi
callq 0x5c1b0
leaq -0xb0(%rbp), %rdi
callq 0x6908
leaq -0x88(%rbp), %rdi
callq 0x6908
leaq -0x60(%rbp), %rdi
callq 0x6908
leaq -0x28(%rbp), %rdi
callq 0x6908
addq $0x860, %rsp            # imm = 0x860
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x29(%rbp), %rdi
callq 0x6470
jmp 0x9d8f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x61(%rbp), %rdi
callq 0x6470
jmp 0x9d8ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x89(%rbp), %rdi
callq 0x6470
jmp 0x9d8e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xb1(%rbp), %rdi
callq 0x6470
jmp 0x9d8d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movq -0x1a0(%rbp), %rax
leaq -0x198(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x818(%rbp)
je 0x9d6f8
movq -0x818(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x820(%rbp)
callq 0x6908
movq -0x820(%rbp), %rax
leaq -0x198(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x818(%rbp)
jne 0x9d6c7
jmp 0x9d8c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1a2(%rbp), %rdi
callq 0xdb50
leaq -0x198(%rbp), %rax
movq %rax, -0x830(%rbp)
addq $0xa0, %rax
movq %rax, -0x828(%rbp)
movq -0x828(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x838(%rbp)
callq 0x6908
movq -0x830(%rbp), %rcx
movq -0x838(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x828(%rbp)
jne 0x9d730
jmp 0x9d8c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x9d8b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1f9(%rbp), %rdi
callq 0x6470
jmp 0x9d8b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x9d8a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x9d88d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x70ea0
jmp 0x9d88d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x70ea0
jmp 0x9d88d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x70ea0
jmp 0x9d88d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x70ea0
jmp 0x9d88d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x488(%rbp), %rdi
callq 0x70ea0
jmp 0x9d88d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0x70ea0
jmp 0x9d88d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x548(%rbp), %rdi
callq 0x70ea0
jmp 0x9d88d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x5a8(%rbp), %rdi
callq 0x70ea0
leaq -0x2a8(%rbp), %rdi
callq 0x4bd50
leaq -0x278(%rbp), %rdi
callq 0x26180
leaq -0x1f8(%rbp), %rdi
callq 0x6908
leaq -0x1d8(%rbp), %rdi
callq 0x4bd50
leaq -0xe8(%rbp), %rdi
callq 0x5c1b0
leaq -0xb0(%rbp), %rdi
callq 0x6908
leaq -0x88(%rbp), %rdi
callq 0x6908
leaq -0x60(%rbp), %rdi
callq 0x6908
leaq -0x28(%rbp), %rdi
callq 0x6908
movq -0x38(%rbp), %rdi
callq 0x67a0
nopl (%rax)