// File: aalto-speech[P]ftk/test/emtest.cc
// Function: ForwardBackwardTest8::test_method()
BOOST_AUTO_TEST_CASE(ForwardBackwardTest8)
{
    map<string, flt_type> vocab;
    vocab["a"] = log(0.25);
    vocab["sa"] = log(0.25);
    vocab["s"] = log(0.25);
    vocab["ki"] = log(0.50);
    vocab["kis"] = log(0.50);
    vocab["kissa"] = log(0.1953125);
    vocab["k"] = log(0.00000001);
    string sentence("kissa");
    map<string, flt_type> stats;
    flt_type lp = forward_backward(vocab, sentence, stats);
    BOOST_CHECK_EQUAL(6, (int)stats.size());
    BOOST_CHECK_CLOSE( 0.5, stats["kissa"], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( 0.80/2.0, stats["kis"], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( 0.20/2.0, stats["ki"], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( 0.8/2.0, stats["sa"], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( (0.2+0.2)/2.0, stats["s"], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( 0.2/2.0, stats["a"], DBL_ACCURACY );
    BOOST_CHECK_CLOSE( (flt_type)-0.940007258491, lp, DBL_ACCURACY);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x830, %rsp            # imm = 0x830
movq %rdi, -0x8(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x530a0
movsd 0x4c998(%rip), %xmm0    # 0xcbb18
callq 0x6370
movsd %xmm0, -0x5f8(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x5f0(%rbp)
callq 0x67b0
movq -0x5f0(%rbp), %rdx
leaq 0x4cd69(%rip), %rsi     # 0xcbf14
leaq -0x58(%rbp), %rdi
callq 0x65e0
jmp 0x7f1b6
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x600(%rbp)
jmp 0x7f1cc
movq -0x600(%rbp), %rax
movsd -0x5f8(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x58(%rbp), %rdi
callq 0x6908
leaq -0x59(%rbp), %rdi
callq 0x6470
movsd 0x4c91f(%rip), %xmm0    # 0xcbb18
callq 0x6370
movsd %xmm0, -0x610(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0x608(%rbp)
callq 0x67b0
movq -0x608(%rbp), %rdx
leaq 0x4d581(%rip), %rsi     # 0xcc7a8
leaq -0x90(%rbp), %rdi
callq 0x65e0
jmp 0x7f235
leaq -0x38(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x618(%rbp)
jmp 0x7f24e
movq -0x618(%rbp), %rax
movsd -0x610(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x90(%rbp), %rdi
callq 0x6908
leaq -0x91(%rbp), %rdi
callq 0x6470
movsd 0x4c897(%rip), %xmm0    # 0xcbb18
callq 0x6370
movsd %xmm0, -0x628(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x620(%rbp)
callq 0x67b0
movq -0x620(%rbp), %rdx
leaq 0x4bd5f(%rip), %rsi     # 0xcb00e
leaq -0xb8(%rbp), %rdi
callq 0x65e0
jmp 0x7f2bd
leaq -0x38(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x630(%rbp)
jmp 0x7f2d6
movq -0x630(%rbp), %rax
movsd -0x628(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0xb8(%rbp), %rdi
callq 0x6908
leaq -0xb9(%rbp), %rdi
callq 0x6470
movsd 0x4c817(%rip), %xmm0    # 0xcbb20
callq 0x6370
movsd %xmm0, -0x640(%rbp)
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x638(%rbp)
callq 0x67b0
movq -0x638(%rbp), %rdx
leaq 0x4ca35(%rip), %rsi     # 0xcbd6c
leaq -0xe0(%rbp), %rdi
callq 0x65e0
jmp 0x7f345
leaq -0x38(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x648(%rbp)
jmp 0x7f35e
movq -0x648(%rbp), %rax
movsd -0x640(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0xe0(%rbp), %rdi
callq 0x6908
leaq -0xe1(%rbp), %rdi
callq 0x6470
movsd 0x4c78f(%rip), %xmm0    # 0xcbb20
callq 0x6370
movsd %xmm0, -0x658(%rbp)
leaq -0x109(%rbp), %rdi
movq %rdi, -0x650(%rbp)
callq 0x67b0
movq -0x650(%rbp), %rdx
leaq 0x4c9b0(%rip), %rsi     # 0xcbd6f
leaq -0x108(%rbp), %rdi
callq 0x65e0
jmp 0x7f3cd
leaq -0x38(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x660(%rbp)
jmp 0x7f3e6
movq -0x660(%rbp), %rax
movsd -0x658(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x108(%rbp), %rdi
callq 0x6908
leaq -0x109(%rbp), %rdi
callq 0x6470
movsd 0x4c70f(%rip), %xmm0    # 0xcbb28
callq 0x6370
movsd %xmm0, -0x670(%rbp)
leaq -0x131(%rbp), %rdi
movq %rdi, -0x668(%rbp)
callq 0x67b0
movq -0x668(%rbp), %rdx
leaq 0x4c7f5(%rip), %rsi     # 0xcbc3c
leaq -0x130(%rbp), %rdi
callq 0x65e0
jmp 0x7f455
leaq -0x38(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x678(%rbp)
jmp 0x7f46e
movq -0x678(%rbp), %rax
movsd -0x670(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x130(%rbp), %rdi
callq 0x6908
leaq -0x131(%rbp), %rdi
callq 0x6470
movsd 0x4c68f(%rip), %xmm0    # 0xcbb30
callq 0x6370
movsd %xmm0, -0x688(%rbp)
leaq -0x159(%rbp), %rdi
movq %rdi, -0x680(%rbp)
callq 0x67b0
movq -0x680(%rbp), %rdx
leaq 0x4c76b(%rip), %rsi     # 0xcbc3a
leaq -0x158(%rbp), %rdi
callq 0x65e0
jmp 0x7f4dd
leaq -0x38(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x690(%rbp)
jmp 0x7f4f6
movq -0x690(%rbp), %rax
movsd -0x688(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x158(%rbp), %rdi
callq 0x6908
leaq -0x159(%rbp), %rdi
callq 0x6470
leaq -0x181(%rbp), %rdi
movq %rdi, -0x698(%rbp)
callq 0x67b0
movq -0x698(%rbp), %rdx
leaq 0x4c6fa(%rip), %rsi     # 0xcbc3c
leaq -0x180(%rbp), %rdi
callq 0x65e0
jmp 0x7f550
leaq -0x181(%rbp), %rdi
callq 0x6470
leaq -0x1b8(%rbp), %rdi
movq %rdi, -0x6a8(%rbp)
callq 0x530a0
movq -0x6a8(%rbp), %rdx
leaq -0x38(%rbp), %rdi
leaq -0x180(%rbp), %rsi
xorl %ecx, %ecx
callq 0x44ea0
movsd %xmm0, -0x6a0(%rbp)
jmp 0x7f592
movsd -0x6a0(%rbp), %xmm0
movsd %xmm0, -0x1c0(%rbp)
movq 0x88047(%rip), %rax     # 0x1075f0
movq %rax, -0x6b0(%rbp)
leaq 0x4c5b1(%rip), %rsi     # 0xcbb68
leaq -0x1d0(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7f5ca
leaq -0x1e0(%rbp), %rdi
callq 0x70c00
jmp 0x7f5d8
movq -0x6b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
movl $0x142, %edx            # imm = 0x142
leaq -0x1e0(%rbp), %rcx
callq 0x6840
jmp 0x7f5f9
callq 0x70e90
movq %rax, -0x6b8(%rbp)
jmp 0x7f607
movq -0x6b8(%rbp), %rsi
leaq 0x4bd15(%rip), %rdx     # 0xcb32a
leaq -0x208(%rbp), %rdi
callq 0x70e50
jmp 0x7f623
leaq 0x4c53e(%rip), %rsi     # 0xcbb68
leaq -0x218(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7f63d
movl $0x6, -0x21c(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x5bdf0
movl %eax, -0x220(%rbp)
leaq 0x4c60e(%rip), %rcx     # 0xcbc6e
movq %rsp, %rax
movq %rcx, 0x10(%rax)
leaq -0x220(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x4d044(%rip), %rcx     # 0xcc6bd
movq %rcx, (%rax)
leaq -0x208(%rbp), %rdi
leaq -0x218(%rbp), %rsi
movl $0x142, %edx            # imm = 0x142
movl $0x1, %ecx
movl $0x2, %r8d
leaq -0x21c(%rbp), %r9
callq 0xbf480
jmp 0x7f6a8
leaq -0x208(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x6b9(%rbp)
jmp 0x7f6c1
movb -0x6b9(%rbp), %al
testb $0x1, %al
jne 0x7f5a2
jmp 0x7f6d1
jmp 0x7f6d3
movq 0x87f16(%rip), %rax     # 0x1075f0
movq %rax, -0x6c8(%rbp)
leaq 0x4c480(%rip), %rsi     # 0xcbb68
leaq -0x230(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7f6fb
leaq -0x240(%rbp), %rdi
callq 0x70c00
jmp 0x7f709
movq -0x6c8(%rbp), %rdi
leaq -0x230(%rbp), %rsi
movl $0x143, %edx            # imm = 0x143
leaq -0x240(%rbp), %rcx
callq 0x6840
jmp 0x7f72a
callq 0x70e90
movq %rax, -0x6d0(%rbp)
jmp 0x7f738
movq -0x6d0(%rbp), %rsi
leaq 0x4bbe4(%rip), %rdx     # 0xcb32a
leaq -0x268(%rbp), %rdi
callq 0x70e50
jmp 0x7f754
leaq 0x4c40d(%rip), %rsi     # 0xcbb68
leaq -0x278(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7f76e
movabsq $0x3fe0000000000000, %rax # imm = 0x3FE0000000000000
movq %rax, -0x280(%rbp)
leaq -0x2a1(%rbp), %rdi
movq %rdi, -0x6d8(%rbp)
callq 0x67b0
movq -0x6d8(%rbp), %rdx
leaq 0x4c49c(%rip), %rsi     # 0xcbc3c
leaq -0x2a0(%rbp), %rdi
callq 0x65e0
jmp 0x7f7ae
leaq -0x1b8(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x6e0(%rbp)
jmp 0x7f7ca
movsd 0x87cde(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x6e8(%rbp)
jmp 0x7f7e1
movq -0x6e0(%rbp), %rcx
movsd -0x6e8(%rbp), %xmm0
movsd %xmm0, -0x2b0(%rbp)
leaq 0x4c4e6(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x2b0(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x4c5b7(%rip), %rdx     # 0xcbdcf
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x4c5a4(%rip), %rcx     # 0xcbdcb
movq %rcx, (%rax)
leaq -0x268(%rbp), %rdi
leaq -0x278(%rbp), %rsi
movl $0x143, %edx            # imm = 0x143
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x280(%rbp), %r9
callq 0xbf6a0
jmp 0x7f856
leaq -0x2a0(%rbp), %rdi
callq 0x6908
leaq -0x2a1(%rbp), %rdi
callq 0x6470
leaq -0x268(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x6e9(%rbp)
jmp 0x7f887
movb -0x6e9(%rbp), %al
testb $0x1, %al
jne 0x7f6d3
jmp 0x7f897
jmp 0x7f899
movq 0x87d50(%rip), %rax     # 0x1075f0
movq %rax, -0x6f8(%rbp)
leaq 0x4c2ba(%rip), %rsi     # 0xcbb68
leaq -0x2c0(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7f8c1
leaq -0x2d0(%rbp), %rdi
callq 0x70c00
jmp 0x7f8cf
movq -0x6f8(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
movl $0x144, %edx            # imm = 0x144
leaq -0x2d0(%rbp), %rcx
callq 0x6840
jmp 0x7f8f0
callq 0x70e90
movq %rax, -0x700(%rbp)
jmp 0x7f8fe
movq -0x700(%rbp), %rsi
leaq 0x4ba1e(%rip), %rdx     # 0xcb32a
leaq -0x2f8(%rbp), %rdi
callq 0x70e50
jmp 0x7f91a
leaq 0x4c247(%rip), %rsi     # 0xcbb68
leaq -0x308(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7f934
movabsq $0x3fd999999999999a, %rax # imm = 0x3FD999999999999A
movq %rax, -0x310(%rbp)
leaq -0x331(%rbp), %rdi
movq %rdi, -0x708(%rbp)
callq 0x67b0
movq -0x708(%rbp), %rdx
leaq 0x4c409(%rip), %rsi     # 0xcbd6f
leaq -0x330(%rbp), %rdi
callq 0x65e0
jmp 0x7f974
leaq -0x1b8(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x710(%rbp)
jmp 0x7f990
movsd 0x87b18(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x718(%rbp)
jmp 0x7f9a7
movq -0x710(%rbp), %rcx
movsd -0x718(%rbp), %xmm0
movsd %xmm0, -0x340(%rbp)
leaq 0x4c320(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x340(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x4c39a(%rip), %rdx     # 0xcbd78
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x4c3f1(%rip), %rcx     # 0xcbdde
movq %rcx, (%rax)
leaq -0x2f8(%rbp), %rdi
leaq -0x308(%rbp), %rsi
movl $0x144, %edx            # imm = 0x144
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x310(%rbp), %r9
callq 0xbf6a0
jmp 0x7fa1c
leaq -0x330(%rbp), %rdi
callq 0x6908
leaq -0x331(%rbp), %rdi
callq 0x6470
leaq -0x2f8(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x719(%rbp)
jmp 0x7fa4d
movb -0x719(%rbp), %al
testb $0x1, %al
jne 0x7f899
jmp 0x7fa5d
jmp 0x7fa5f
movq 0x87b8a(%rip), %rax     # 0x1075f0
movq %rax, -0x728(%rbp)
leaq 0x4c0f4(%rip), %rsi     # 0xcbb68
leaq -0x350(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7fa87
leaq -0x360(%rbp), %rdi
callq 0x70c00
jmp 0x7fa95
movq -0x728(%rbp), %rdi
leaq -0x350(%rbp), %rsi
movl $0x145, %edx            # imm = 0x145
leaq -0x360(%rbp), %rcx
callq 0x6840
jmp 0x7fab6
callq 0x70e90
movq %rax, -0x730(%rbp)
jmp 0x7fac4
movq -0x730(%rbp), %rsi
leaq 0x4b858(%rip), %rdx     # 0xcb32a
leaq -0x388(%rbp), %rdi
callq 0x70e50
jmp 0x7fae0
leaq 0x4c081(%rip), %rsi     # 0xcbb68
leaq -0x398(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7fafa
movabsq $0x3fb999999999999a, %rax # imm = 0x3FB999999999999A
movq %rax, -0x3a0(%rbp)
leaq -0x3c1(%rbp), %rdi
movq %rdi, -0x738(%rbp)
callq 0x67b0
movq -0x738(%rbp), %rdx
leaq 0x4c240(%rip), %rsi     # 0xcbd6c
leaq -0x3c0(%rbp), %rdi
callq 0x65e0
jmp 0x7fb3a
leaq -0x1b8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x740(%rbp)
jmp 0x7fb56
movsd 0x87952(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x748(%rbp)
jmp 0x7fb6d
movq -0x740(%rbp), %rcx
movsd -0x748(%rbp), %xmm0
movsd %xmm0, -0x3d0(%rbp)
leaq 0x4c15a(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x3d0(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x4c1e1(%rip), %rdx     # 0xcbd85
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x4c234(%rip), %rcx     # 0xcbde7
movq %rcx, (%rax)
leaq -0x388(%rbp), %rdi
leaq -0x398(%rbp), %rsi
movl $0x145, %edx            # imm = 0x145
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x3a0(%rbp), %r9
callq 0xbf6a0
jmp 0x7fbe2
leaq -0x3c0(%rbp), %rdi
callq 0x6908
leaq -0x3c1(%rbp), %rdi
callq 0x6470
leaq -0x388(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x749(%rbp)
jmp 0x7fc13
movb -0x749(%rbp), %al
testb $0x1, %al
jne 0x7fa5f
jmp 0x7fc23
jmp 0x7fc25
movq 0x879c4(%rip), %rax     # 0x1075f0
movq %rax, -0x758(%rbp)
leaq 0x4bf2e(%rip), %rsi     # 0xcbb68
leaq -0x3e0(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7fc4d
leaq -0x3f0(%rbp), %rdi
callq 0x70c00
jmp 0x7fc5b
movq -0x758(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
movl $0x146, %edx            # imm = 0x146
leaq -0x3f0(%rbp), %rcx
callq 0x6840
jmp 0x7fc7c
callq 0x70e90
movq %rax, -0x760(%rbp)
jmp 0x7fc8a
movq -0x760(%rbp), %rsi
leaq 0x4b692(%rip), %rdx     # 0xcb32a
leaq -0x418(%rbp), %rdi
callq 0x70e50
jmp 0x7fca6
leaq 0x4bebb(%rip), %rsi     # 0xcbb68
leaq -0x428(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7fcc0
movabsq $0x3fd999999999999a, %rax # imm = 0x3FD999999999999A
movq %rax, -0x430(%rbp)
leaq -0x451(%rbp), %rdi
movq %rdi, -0x768(%rbp)
callq 0x67b0
movq -0x768(%rbp), %rdx
leaq 0x4cab6(%rip), %rsi     # 0xcc7a8
leaq -0x450(%rbp), %rdi
callq 0x65e0
jmp 0x7fd00
leaq -0x1b8(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x770(%rbp)
jmp 0x7fd1c
movsd 0x8778c(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x778(%rbp)
jmp 0x7fd33
movq -0x770(%rbp), %rcx
movsd -0x778(%rbp), %xmm0
movsd %xmm0, -0x460(%rbp)
leaq 0x4bf94(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x460(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x4c027(%rip), %rdx     # 0xcbd91
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x4c077(%rip), %rcx     # 0xcbdf0
movq %rcx, (%rax)
leaq -0x418(%rbp), %rdi
leaq -0x428(%rbp), %rsi
movl $0x146, %edx            # imm = 0x146
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x430(%rbp), %r9
callq 0xbf6a0
jmp 0x7fda8
leaq -0x450(%rbp), %rdi
callq 0x6908
leaq -0x451(%rbp), %rdi
callq 0x6470
leaq -0x418(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x779(%rbp)
jmp 0x7fdd9
movb -0x779(%rbp), %al
testb $0x1, %al
jne 0x7fc25
jmp 0x7fde9
jmp 0x7fdeb
movq 0x877fe(%rip), %rax     # 0x1075f0
movq %rax, -0x788(%rbp)
leaq 0x4bd68(%rip), %rsi     # 0xcbb68
leaq -0x470(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7fe13
leaq -0x480(%rbp), %rdi
callq 0x70c00
jmp 0x7fe21
movq -0x788(%rbp), %rdi
leaq -0x470(%rbp), %rsi
movl $0x147, %edx            # imm = 0x147
leaq -0x480(%rbp), %rcx
callq 0x6840
jmp 0x7fe42
callq 0x70e90
movq %rax, -0x790(%rbp)
jmp 0x7fe50
movq -0x790(%rbp), %rsi
leaq 0x4b4cc(%rip), %rdx     # 0xcb32a
leaq -0x4a8(%rbp), %rdi
callq 0x70e50
jmp 0x7fe6c
leaq 0x4bcf5(%rip), %rsi     # 0xcbb68
leaq -0x4b8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7fe86
movabsq $0x3fc999999999999a, %rax # imm = 0x3FC999999999999A
movq %rax, -0x4c0(%rbp)
leaq -0x4e1(%rbp), %rdi
movq %rdi, -0x798(%rbp)
callq 0x67b0
movq -0x798(%rbp), %rdx
leaq 0x4b156(%rip), %rsi     # 0xcb00e
leaq -0x4e0(%rbp), %rdi
callq 0x65e0
jmp 0x7fec6
leaq -0x1b8(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x7a0(%rbp)
jmp 0x7fee2
movsd 0x875c6(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x7a8(%rbp)
jmp 0x7fef9
movq -0x7a0(%rbp), %rcx
movsd -0x7a8(%rbp), %xmm0
movsd %xmm0, -0x4f0(%rbp)
leaq 0x4bdce(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x4f0(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x4be77(%rip), %rdx     # 0xcbda7
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x4beb9(%rip), %rcx     # 0xcbdf8
movq %rcx, (%rax)
leaq -0x4a8(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
movl $0x147, %edx            # imm = 0x147
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x4c0(%rbp), %r9
callq 0xbf6a0
jmp 0x7ff6e
leaq -0x4e0(%rbp), %rdi
callq 0x6908
leaq -0x4e1(%rbp), %rdi
callq 0x6470
leaq -0x4a8(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x7a9(%rbp)
jmp 0x7ff9f
movb -0x7a9(%rbp), %al
testb $0x1, %al
jne 0x7fdeb
jmp 0x7ffaf
jmp 0x7ffb1
movq 0x87638(%rip), %rax     # 0x1075f0
movq %rax, -0x7b8(%rbp)
leaq 0x4bba2(%rip), %rsi     # 0xcbb68
leaq -0x500(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x7ffd9
leaq -0x510(%rbp), %rdi
callq 0x70c00
jmp 0x7ffe7
movq -0x7b8(%rbp), %rdi
leaq -0x500(%rbp), %rsi
movl $0x148, %edx            # imm = 0x148
leaq -0x510(%rbp), %rcx
callq 0x6840
jmp 0x80008
callq 0x70e90
movq %rax, -0x7c0(%rbp)
jmp 0x80016
movq -0x7c0(%rbp), %rsi
leaq 0x4b306(%rip), %rdx     # 0xcb32a
leaq -0x538(%rbp), %rdi
callq 0x70e50
jmp 0x80032
leaq 0x4bb2f(%rip), %rsi     # 0xcbb68
leaq -0x548(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8004c
movabsq $0x3fb999999999999a, %rax # imm = 0x3FB999999999999A
movq %rax, -0x550(%rbp)
leaq -0x571(%rbp), %rdi
movq %rdi, -0x7c8(%rbp)
callq 0x67b0
movq -0x7c8(%rbp), %rdx
leaq 0x4be96(%rip), %rsi     # 0xcbf14
leaq -0x570(%rbp), %rdi
callq 0x65e0
jmp 0x8008c
leaq -0x1b8(%rbp), %rdi
leaq -0x570(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x7d0(%rbp)
jmp 0x800a8
movsd 0x87400(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x7d8(%rbp)
jmp 0x800bf
movq -0x7d0(%rbp), %rcx
movsd -0x7d8(%rbp), %xmm0
movsd %xmm0, -0x580(%rbp)
leaq 0x4bc08(%rip), %rdx     # 0xcbce5
movq %rsp, %rax
movq %rdx, 0x20(%rax)
leaq -0x580(%rbp), %rdx
movq %rdx, 0x18(%rax)
leaq 0x4bbbe(%rip), %rdx     # 0xcbcb4
movq %rdx, 0x10(%rax)
movq %rcx, 0x8(%rax)
leaq 0x4bd01(%rip), %rcx     # 0xcbe06
movq %rcx, (%rax)
leaq -0x538(%rbp), %rdi
leaq -0x548(%rbp), %rsi
movl $0x148, %edx            # imm = 0x148
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x550(%rbp), %r9
callq 0xbf6a0
jmp 0x80134
leaq -0x570(%rbp), %rdi
callq 0x6908
leaq -0x571(%rbp), %rdi
callq 0x6470
leaq -0x538(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x7d9(%rbp)
jmp 0x80165
movb -0x7d9(%rbp), %al
testb $0x1, %al
jne 0x7ffb1
jmp 0x80175
jmp 0x80177
movq 0x87472(%rip), %rax     # 0x1075f0
movq %rax, -0x7e8(%rbp)
leaq 0x4b9dc(%rip), %rsi     # 0xcbb68
leaq -0x590(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8019f
leaq -0x5a0(%rbp), %rdi
callq 0x70c00
jmp 0x801ad
movq -0x7e8(%rbp), %rdi
leaq -0x590(%rbp), %rsi
movl $0x149, %edx            # imm = 0x149
leaq -0x5a0(%rbp), %rcx
callq 0x6840
jmp 0x801ce
callq 0x70e90
movq %rax, -0x7f0(%rbp)
jmp 0x801dc
movq -0x7f0(%rbp), %rsi
leaq 0x4b140(%rip), %rdx     # 0xcb32a
leaq -0x5c8(%rbp), %rdi
callq 0x70e50
jmp 0x801f8
leaq 0x4b969(%rip), %rsi     # 0xcbb68
leaq -0x5d8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x80212
movabsq $-0x4011eb75e5d8e9c6, %rax # imm = 0xBFEE148A1A27163A
movq %rax, -0x5e0(%rbp)
movsd 0x87285(%rip), %xmm0    # 0x1074b0
callq 0xbf970
movsd %xmm0, -0x7f8(%rbp)
jmp 0x8023a
movsd -0x7f8(%rbp), %xmm0
movsd %xmm0, -0x5e8(%rbp)
leaq 0x4ba94(%rip), %rcx     # 0xcbce5
movq %rsp, %rax
movq %rcx, 0x20(%rax)
leaq -0x5e8(%rbp), %rcx
movq %rcx, 0x18(%rax)
leaq 0x4c50c(%rip), %rcx     # 0xcc776
movq %rcx, 0x10(%rax)
leaq -0x1c0(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x4bb8e(%rip), %rcx     # 0xcbe0e
movq %rcx, (%rax)
leaq -0x5c8(%rbp), %rdi
leaq -0x5d8(%rbp), %rsi
movl $0x149, %edx            # imm = 0x149
movl $0x1, %ecx
movl $0x8, %r8d
leaq -0x5e0(%rbp), %r9
callq 0xbf6a0
jmp 0x802af
leaq -0x5c8(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x7f9(%rbp)
jmp 0x802c8
movb -0x7f9(%rbp), %al
testb $0x1, %al
jne 0x80177
jmp 0x802d8
leaq -0x1b8(%rbp), %rdi
callq 0x4cf70
leaq -0x180(%rbp), %rdi
callq 0x6908
leaq -0x38(%rbp), %rdi
callq 0x4cf70
addq $0x830, %rsp            # imm = 0x830
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x80325
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x6908
leaq -0x59(%rbp), %rdi
callq 0x6470
jmp 0x806d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x80359
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x6908
leaq -0x91(%rbp), %rdi
callq 0x6470
jmp 0x806d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x80390
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x6908
leaq -0xb9(%rbp), %rdi
callq 0x6470
jmp 0x806d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x803c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x6908
leaq -0xe1(%rbp), %rdi
callq 0x6470
jmp 0x806d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x803fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x6908
leaq -0x109(%rbp), %rdi
callq 0x6470
jmp 0x806d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x80435
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x6908
leaq -0x131(%rbp), %rdi
callq 0x6470
jmp 0x806d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x8046c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x6908
leaq -0x159(%rbp), %rdi
callq 0x6470
jmp 0x806d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x181(%rbp), %rdi
callq 0x6470
jmp 0x806d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x806c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x70ea0
jmp 0x806c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x80508
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x804fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x6908
leaq -0x2a1(%rbp), %rdi
callq 0x6470
leaq -0x268(%rbp), %rdi
callq 0x70ea0
jmp 0x806c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x80559
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x8054d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x6908
leaq -0x331(%rbp), %rdi
callq 0x6470
leaq -0x2f8(%rbp), %rdi
callq 0x70ea0
jmp 0x806c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x805aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x8059e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x3c0(%rbp), %rdi
callq 0x6908
leaq -0x3c1(%rbp), %rdi
callq 0x6470
leaq -0x388(%rbp), %rdi
callq 0x70ea0
jmp 0x806c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x805fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x805ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x6908
leaq -0x451(%rbp), %rdi
callq 0x6470
leaq -0x418(%rbp), %rdi
callq 0x70ea0
jmp 0x806c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x8064c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x80640
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x4e0(%rbp), %rdi
callq 0x6908
leaq -0x4e1(%rbp), %rdi
callq 0x6470
leaq -0x4a8(%rbp), %rdi
callq 0x70ea0
jmp 0x806c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x8069a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x8068e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x570(%rbp), %rdi
callq 0x6908
leaq -0x571(%rbp), %rdi
callq 0x6470
leaq -0x538(%rbp), %rdi
callq 0x70ea0
jmp 0x806c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x5c8(%rbp), %rdi
callq 0x70ea0
leaq -0x1b8(%rbp), %rdi
callq 0x4cf70
leaq -0x180(%rbp), %rdi
callq 0x6908
leaq -0x38(%rbp), %rdi
callq 0x4cf70
movq -0x68(%rbp), %rdi
callq 0x67a0
nopw (%rax,%rax)