// File: aalto-speech[P]ftk/test/emtest.cc
// Function: FactorGraphTestRemoveArcs::test_method()
BOOST_AUTO_TEST_CASE(FactorGraphTestRemoveArcs)
{
    set<string> vocab = {"k","i","s","a","sa","ki","kis","kissa"};
    string sentence("kissa");
    FactorGraph fg(sentence, start_end, vocab, 5);
    vector<vector<string> > paths;
    fg.remove_arcs(string("k"), string("i"));
    fg.remove_arcs(string("s"), string("a"));
    fg.get_paths(paths);
    BOOST_CHECK_EQUAL( 3, (int)paths.size() );
    vector<string> seg = {"*", "kissa", "*" };
    BOOST_CHECK( includes_path(paths, seg) );
    vector<string> seg2 = {"*", "kis", "sa", "*" };
    BOOST_CHECK( includes_path(paths, seg2) );
    vector<string> seg3 = {"*", "ki", "s", "sa", "*" };
    BOOST_CHECK( includes_path(paths, seg3) );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x9c0, %rsp            # imm = 0x9C0
movq %rdi, -0x8(%rbp)
movb $0x1, -0x16c(%rbp)
leaq -0x148(%rbp), %rax
movq %rax, -0x6c8(%rbp)
movq %rax, -0x150(%rbp)
leaq -0x151(%rbp), %rdi
movq %rdi, -0x6c0(%rbp)
callq 0x67b0
movq -0x6c8(%rbp), %rdi
movq -0x6c0(%rbp), %rdx
leaq 0x3e927(%rip), %rsi     # 0xcbc3a
callq 0x65e0
jmp 0x8d31a
leaq -0x128(%rbp), %rax
movq %rax, -0x6d8(%rbp)
movq %rax, -0x150(%rbp)
leaq -0x165(%rbp), %rdi
movq %rdi, -0x6d0(%rbp)
callq 0x67b0
movq -0x6d8(%rbp), %rdi
movq -0x6d0(%rbp), %rdx
leaq 0x3e3e1(%rip), %rsi     # 0xcb738
callq 0x65e0
jmp 0x8d35e
leaq -0x108(%rbp), %rax
movq %rax, -0x6e8(%rbp)
movq %rax, -0x150(%rbp)
leaq -0x166(%rbp), %rdi
movq %rdi, -0x6e0(%rbp)
callq 0x67b0
movq -0x6e8(%rbp), %rdi
movq -0x6e0(%rbp), %rdx
leaq 0x3dc73(%rip), %rsi     # 0xcb00e
callq 0x65e0
jmp 0x8d3a2
leaq -0xe8(%rbp), %rax
movq %rax, -0x6f8(%rbp)
movq %rax, -0x150(%rbp)
leaq -0x167(%rbp), %rdi
movq %rdi, -0x6f0(%rbp)
callq 0x67b0
movq -0x6f8(%rbp), %rdi
movq -0x6f0(%rbp), %rdx
leaq 0x3eb35(%rip), %rsi     # 0xcbf14
callq 0x65e0
jmp 0x8d3e6
leaq -0xc8(%rbp), %rax
movq %rax, -0x708(%rbp)
movq %rax, -0x150(%rbp)
leaq -0x168(%rbp), %rdi
movq %rdi, -0x700(%rbp)
callq 0x67b0
movq -0x708(%rbp), %rdi
movq -0x700(%rbp), %rdx
leaq 0x3f385(%rip), %rsi     # 0xcc7a8
callq 0x65e0
jmp 0x8d42a
leaq -0xa8(%rbp), %rax
movq %rax, -0x718(%rbp)
movq %rax, -0x150(%rbp)
leaq -0x169(%rbp), %rdi
movq %rdi, -0x710(%rbp)
callq 0x67b0
movq -0x718(%rbp), %rdi
movq -0x710(%rbp), %rdx
leaq 0x3e905(%rip), %rsi     # 0xcbd6c
callq 0x65e0
jmp 0x8d46e
leaq -0x88(%rbp), %rax
movq %rax, -0x728(%rbp)
movq %rax, -0x150(%rbp)
leaq -0x16a(%rbp), %rdi
movq %rdi, -0x720(%rbp)
callq 0x67b0
movq -0x728(%rbp), %rdi
movq -0x720(%rbp), %rdx
leaq 0x3e8c4(%rip), %rsi     # 0xcbd6f
callq 0x65e0
jmp 0x8d4b2
leaq -0x68(%rbp), %rax
movq %rax, -0x738(%rbp)
movq %rax, -0x150(%rbp)
leaq -0x16b(%rbp), %rdi
movq %rdi, -0x730(%rbp)
callq 0x67b0
movq -0x738(%rbp), %rdi
movq -0x730(%rbp), %rdx
leaq 0x3e750(%rip), %rsi     # 0xcbc3c
callq 0x65e0
jmp 0x8d4f3
movb $0x0, -0x16c(%rbp)
leaq -0x148(%rbp), %rax
movq %rax, -0x48(%rbp)
movq $0x8, -0x40(%rbp)
leaq -0x16e(%rbp), %rdi
movq %rdi, -0x740(%rbp)
callq 0xdab0
movq -0x740(%rbp), %r8
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x38(%rbp), %rdi
leaq -0x16d(%rbp), %rcx
callq 0xbfde0
jmp 0x8d541
leaq -0x16e(%rbp), %rdi
callq 0xdb50
leaq -0x148(%rbp), %rax
movq %rax, -0x750(%rbp)
addq $0x100, %rax            # imm = 0x100
movq %rax, -0x748(%rbp)
movq -0x748(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x758(%rbp)
callq 0x6908
movq -0x750(%rbp), %rcx
movq -0x758(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x748(%rbp)
jne 0x8d568
leaq -0x16b(%rbp), %rdi
callq 0x6470
leaq -0x16a(%rbp), %rdi
callq 0x6470
leaq -0x169(%rbp), %rdi
callq 0x6470
leaq -0x168(%rbp), %rdi
callq 0x6470
leaq -0x167(%rbp), %rdi
callq 0x6470
leaq -0x166(%rbp), %rdi
callq 0x6470
leaq -0x165(%rbp), %rdi
callq 0x6470
leaq -0x151(%rbp), %rdi
callq 0x6470
leaq -0x191(%rbp), %rdi
movq %rdi, -0x760(%rbp)
callq 0x67b0
movq -0x760(%rbp), %rdx
leaq 0x3e622(%rip), %rsi     # 0xcbc3c
leaq -0x190(%rbp), %rdi
callq 0x65e0
jmp 0x8d628
leaq -0x191(%rbp), %rdi
callq 0x6470
leaq 0x79ffd(%rip), %rdx     # 0x107638
leaq -0x210(%rbp), %rdi
leaq -0x190(%rbp), %rsi
leaq -0x38(%rbp), %rcx
movl $0x5, %r8d
xorl %r9d, %r9d
callq 0x239b0
jmp 0x8d65d
leaq -0x228(%rbp), %rdi
callq 0x33f30
leaq -0x249(%rbp), %rdi
movq %rdi, -0x768(%rbp)
callq 0x67b0
movq -0x768(%rbp), %rdx
leaq 0x3e5b0(%rip), %rsi     # 0xcbc3a
leaq -0x248(%rbp), %rdi
callq 0x65e0
jmp 0x8d698
leaq -0x271(%rbp), %rdi
movq %rdi, -0x770(%rbp)
callq 0x67b0
movq -0x770(%rbp), %rdx
leaq 0x3e07f(%rip), %rsi     # 0xcb738
leaq -0x270(%rbp), %rdi
callq 0x65e0
jmp 0x8d6c7
leaq -0x210(%rbp), %rdi
leaq -0x248(%rbp), %rsi
leaq -0x270(%rbp), %rdx
callq 0x25900
jmp 0x8d6e3
leaq -0x270(%rbp), %rdi
callq 0x6908
leaq -0x271(%rbp), %rdi
callq 0x6470
leaq -0x248(%rbp), %rdi
callq 0x6908
leaq -0x249(%rbp), %rdi
callq 0x6470
leaq -0x299(%rbp), %rdi
movq %rdi, -0x778(%rbp)
callq 0x67b0
movq -0x778(%rbp), %rdx
leaq 0x3d8da(%rip), %rsi     # 0xcb00e
leaq -0x298(%rbp), %rdi
callq 0x65e0
jmp 0x8d742
leaq -0x2c1(%rbp), %rdi
movq %rdi, -0x780(%rbp)
callq 0x67b0
movq -0x780(%rbp), %rdx
leaq 0x3e7b1(%rip), %rsi     # 0xcbf14
leaq -0x2c0(%rbp), %rdi
callq 0x65e0
jmp 0x8d771
leaq -0x210(%rbp), %rdi
leaq -0x298(%rbp), %rsi
leaq -0x2c0(%rbp), %rdx
callq 0x25900
jmp 0x8d78d
leaq -0x2c0(%rbp), %rdi
callq 0x6908
leaq -0x2c1(%rbp), %rdi
callq 0x6470
leaq -0x298(%rbp), %rdi
callq 0x6908
leaq -0x299(%rbp), %rdi
callq 0x6470
leaq -0x210(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x25520
jmp 0x8d7d2
jmp 0x8d7d4
movq 0x79e15(%rip), %rax     # 0x1075f0
movq %rax, -0x788(%rbp)
leaq 0x3e37f(%rip), %rsi     # 0xcbb68
leaq -0x2d8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8d7fc
leaq -0x2e8(%rbp), %rdi
callq 0x70c00
jmp 0x8d80a
movq -0x788(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
movl $0x245, %edx            # imm = 0x245
leaq -0x2e8(%rbp), %rcx
callq 0x6840
jmp 0x8d82b
callq 0x70e90
movq %rax, -0x790(%rbp)
jmp 0x8d839
movq -0x790(%rbp), %rsi
leaq 0x3dae3(%rip), %rdx     # 0xcb32a
leaq -0x310(%rbp), %rdi
callq 0x70e50
jmp 0x8d855
leaq 0x3e30c(%rip), %rsi     # 0xcbb68
leaq -0x320(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8d86f
movl $0x3, -0x324(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x2ede0
movl %eax, -0x328(%rbp)
leaq 0x3e731(%rip), %rcx     # 0xcbfc3
movq %rsp, %rax
movq %rcx, 0x10(%rax)
leaq -0x328(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x3e6c4(%rip), %rcx     # 0xcbf6f
movq %rcx, (%rax)
leaq -0x310(%rbp), %rdi
leaq -0x320(%rbp), %rsi
movl $0x245, %edx            # imm = 0x245
movl $0x1, %ecx
movl $0x2, %r8d
leaq -0x324(%rbp), %r9
callq 0xbf480
jmp 0x8d8da
leaq -0x310(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x791(%rbp)
jmp 0x8d8f3
movb -0x791(%rbp), %al
testb $0x1, %al
jne 0x8d7d4
jmp 0x8d903
movb $0x1, -0x3bc(%rbp)
leaq -0x3b0(%rbp), %rax
movq %rax, -0x7a8(%rbp)
movq %rax, -0x3b8(%rbp)
leaq -0x3b9(%rbp), %rdi
movq %rdi, -0x7a0(%rbp)
callq 0x67b0
movq -0x7a8(%rbp), %rdi
movq -0x7a0(%rbp), %rdx
leaq 0x3dab2(%rip), %rsi     # 0xcb3f9
callq 0x65e0
jmp 0x8d94e
leaq -0x390(%rbp), %rax
movq %rax, -0x7b8(%rbp)
movq %rax, -0x3b8(%rbp)
leaq -0x3ba(%rbp), %rdi
movq %rdi, -0x7b0(%rbp)
callq 0x67b0
movq -0x7b8(%rbp), %rdi
movq -0x7b0(%rbp), %rdx
leaq 0x3e2b1(%rip), %rsi     # 0xcbc3c
callq 0x65e0
jmp 0x8d992
leaq -0x370(%rbp), %rax
movq %rax, -0x7c8(%rbp)
movq %rax, -0x3b8(%rbp)
leaq -0x3bb(%rbp), %rdi
movq %rdi, -0x7c0(%rbp)
callq 0x67b0
movq -0x7c8(%rbp), %rdi
movq -0x7c0(%rbp), %rdx
leaq 0x3da2a(%rip), %rsi     # 0xcb3f9
callq 0x65e0
jmp 0x8d9d6
movb $0x0, -0x3bc(%rbp)
leaq -0x3b0(%rbp), %rax
movq %rax, -0x350(%rbp)
movq $0x3, -0x348(%rbp)
leaq -0x3bd(%rbp), %rdi
movq %rdi, -0x7d0(%rbp)
callq 0xdab0
movq -0x7d0(%rbp), %rcx
movq -0x350(%rbp), %rsi
movq -0x348(%rbp), %rdx
leaq -0x340(%rbp), %rdi
callq 0xbfeb0
jmp 0x8da2c
leaq -0x3bd(%rbp), %rdi
callq 0xdb50
leaq -0x3b0(%rbp), %rax
movq %rax, -0x7e0(%rbp)
addq $0x60, %rax
movq %rax, -0x7d8(%rbp)
movq -0x7d8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x7e8(%rbp)
callq 0x6908
movq -0x7e0(%rbp), %rcx
movq -0x7e8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x7d8(%rbp)
jne 0x8da51
leaq -0x3bb(%rbp), %rdi
callq 0x6470
leaq -0x3ba(%rbp), %rdi
callq 0x6470
leaq -0x3b9(%rbp), %rdi
callq 0x6470
movq 0x79b43(%rip), %rax     # 0x1075f0
movq %rax, -0x7f0(%rbp)
leaq 0x3e0ad(%rip), %rsi     # 0xcbb68
leaq -0x3d0(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8dace
leaq -0x3e0(%rbp), %rdi
callq 0x70c00
jmp 0x8dadc
movq -0x7f0(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
movl $0x247, %edx            # imm = 0x247
leaq -0x3e0(%rbp), %rcx
callq 0x6840
jmp 0x8dafd
leaq -0x228(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x887e0
movzbl %al, %esi
leaq -0x3f8(%rbp), %rdi
callq 0x70ed0
jmp 0x8db21
callq 0x70e90
movq %rax, -0x7f8(%rbp)
jmp 0x8db2f
leaq 0x3e49f(%rip), %rsi     # 0xcbfd5
leaq -0x428(%rbp), %rdi
movl $0x19, %edx
callq 0x70bd0
jmp 0x8db49
movq -0x7f8(%rbp), %rsi
leaq -0x418(%rbp), %rdi
leaq -0x428(%rbp), %rdx
callq 0x70f10
jmp 0x8db65
leaq 0x3dffc(%rip), %rsi     # 0xcbb68
leaq -0x438(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8db7f
movq %rsp, %rax
movq $0x0, (%rax)
xorl %r9d, %r9d
movb %r9b, %al
leaq -0x3f8(%rbp), %rdi
leaq -0x418(%rbp), %rsi
leaq -0x438(%rbp), %rdx
movl $0x247, %ecx            # imm = 0x247
movl $0x1, %r8d
callq 0x6810
jmp 0x8dbb6
leaq -0x418(%rbp), %rdi
callq 0x70f50
leaq -0x3f8(%rbp), %rdi
callq 0x70f70
callq 0x70ec0
movb %al, -0x7f9(%rbp)
jmp 0x8dbdb
movb -0x7f9(%rbp), %al
testb $0x1, %al
jne 0x8daa6
jmp 0x8dbeb
movb $0x1, -0x4ed(%rbp)
leaq -0x4e0(%rbp), %rax
movq %rax, -0x810(%rbp)
movq %rax, -0x4e8(%rbp)
leaq -0x4e9(%rbp), %rdi
movq %rdi, -0x808(%rbp)
callq 0x67b0
movq -0x810(%rbp), %rdi
movq -0x808(%rbp), %rdx
leaq 0x3d7ca(%rip), %rsi     # 0xcb3f9
callq 0x65e0
jmp 0x8dc36
leaq -0x4c0(%rbp), %rax
movq %rax, -0x820(%rbp)
movq %rax, -0x4e8(%rbp)
leaq -0x4ea(%rbp), %rdi
movq %rdi, -0x818(%rbp)
callq 0x67b0
movq -0x820(%rbp), %rdi
movq -0x818(%rbp), %rdx
leaq 0x3e0fc(%rip), %rsi     # 0xcbd6f
callq 0x65e0
jmp 0x8dc7a
leaq -0x4a0(%rbp), %rax
movq %rax, -0x830(%rbp)
movq %rax, -0x4e8(%rbp)
leaq -0x4eb(%rbp), %rdi
movq %rdi, -0x828(%rbp)
callq 0x67b0
movq -0x830(%rbp), %rdi
movq -0x828(%rbp), %rdx
leaq 0x3eaf1(%rip), %rsi     # 0xcc7a8
callq 0x65e0
jmp 0x8dcbe
leaq -0x480(%rbp), %rax
movq %rax, -0x840(%rbp)
movq %rax, -0x4e8(%rbp)
leaq -0x4ec(%rbp), %rdi
movq %rdi, -0x838(%rbp)
callq 0x67b0
movq -0x840(%rbp), %rdi
movq -0x838(%rbp), %rdx
leaq 0x3d6fe(%rip), %rsi     # 0xcb3f9
callq 0x65e0
jmp 0x8dd02
movb $0x0, -0x4ed(%rbp)
leaq -0x4e0(%rbp), %rax
movq %rax, -0x460(%rbp)
movq $0x4, -0x458(%rbp)
leaq -0x4ee(%rbp), %rdi
movq %rdi, -0x848(%rbp)
callq 0xdab0
movq -0x848(%rbp), %rcx
movq -0x460(%rbp), %rsi
movq -0x458(%rbp), %rdx
leaq -0x450(%rbp), %rdi
callq 0xbfeb0
jmp 0x8dd58
leaq -0x4ee(%rbp), %rdi
callq 0xdb50
leaq -0x4e0(%rbp), %rax
movq %rax, -0x858(%rbp)
addq $0x80, %rax
movq %rax, -0x850(%rbp)
movq -0x850(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x860(%rbp)
callq 0x6908
movq -0x858(%rbp), %rcx
movq -0x860(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x850(%rbp)
jne 0x8dd7f
leaq -0x4ec(%rbp), %rdi
callq 0x6470
leaq -0x4eb(%rbp), %rdi
callq 0x6470
leaq -0x4ea(%rbp), %rdi
callq 0x6470
leaq -0x4e9(%rbp), %rdi
callq 0x6470
movq 0x79809(%rip), %rax     # 0x1075f0
movq %rax, -0x868(%rbp)
leaq 0x3dd73(%rip), %rsi     # 0xcbb68
leaq -0x500(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8de08
leaq -0x510(%rbp), %rdi
callq 0x70c00
jmp 0x8de16
movq -0x868(%rbp), %rdi
leaq -0x500(%rbp), %rsi
movl $0x249, %edx            # imm = 0x249
leaq -0x510(%rbp), %rcx
callq 0x6840
jmp 0x8de37
leaq -0x228(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0x887e0
movzbl %al, %esi
leaq -0x528(%rbp), %rdi
callq 0x70ed0
jmp 0x8de5b
callq 0x70e90
movq %rax, -0x870(%rbp)
jmp 0x8de69
leaq 0x3e17f(%rip), %rsi     # 0xcbfef
leaq -0x558(%rbp), %rdi
movl $0x1a, %edx
callq 0x70bd0
jmp 0x8de83
movq -0x870(%rbp), %rsi
leaq -0x548(%rbp), %rdi
leaq -0x558(%rbp), %rdx
callq 0x70f10
jmp 0x8de9f
leaq 0x3dcc2(%rip), %rsi     # 0xcbb68
leaq -0x568(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8deb9
movq %rsp, %rax
movq $0x0, (%rax)
xorl %r9d, %r9d
movb %r9b, %al
leaq -0x528(%rbp), %rdi
leaq -0x548(%rbp), %rsi
leaq -0x568(%rbp), %rdx
movl $0x249, %ecx            # imm = 0x249
movl $0x1, %r8d
callq 0x6810
jmp 0x8def0
leaq -0x548(%rbp), %rdi
callq 0x70f50
leaq -0x528(%rbp), %rdi
callq 0x70f70
callq 0x70ec0
movb %al, -0x871(%rbp)
jmp 0x8df15
movb -0x871(%rbp), %al
testb $0x1, %al
jne 0x8dde0
jmp 0x8df25
movb $0x1, -0x63e(%rbp)
leaq -0x630(%rbp), %rax
movq %rax, -0x888(%rbp)
movq %rax, -0x638(%rbp)
leaq -0x639(%rbp), %rdi
movq %rdi, -0x880(%rbp)
callq 0x67b0
movq -0x888(%rbp), %rdi
movq -0x880(%rbp), %rdx
leaq 0x3d490(%rip), %rsi     # 0xcb3f9
callq 0x65e0
jmp 0x8df70
leaq -0x610(%rbp), %rax
movq %rax, -0x898(%rbp)
movq %rax, -0x638(%rbp)
leaq -0x63a(%rbp), %rdi
movq %rdi, -0x890(%rbp)
callq 0x67b0
movq -0x898(%rbp), %rdi
movq -0x890(%rbp), %rdx
leaq 0x3ddbf(%rip), %rsi     # 0xcbd6c
callq 0x65e0
jmp 0x8dfb4
leaq -0x5f0(%rbp), %rax
movq %rax, -0x8a8(%rbp)
movq %rax, -0x638(%rbp)
leaq -0x63b(%rbp), %rdi
movq %rdi, -0x8a0(%rbp)
callq 0x67b0
movq -0x8a8(%rbp), %rdi
movq -0x8a0(%rbp), %rdx
leaq 0x3d01d(%rip), %rsi     # 0xcb00e
callq 0x65e0
jmp 0x8dff8
leaq -0x5d0(%rbp), %rax
movq %rax, -0x8b8(%rbp)
movq %rax, -0x638(%rbp)
leaq -0x63c(%rbp), %rdi
movq %rdi, -0x8b0(%rbp)
callq 0x67b0
movq -0x8b8(%rbp), %rdi
movq -0x8b0(%rbp), %rdx
leaq 0x3e773(%rip), %rsi     # 0xcc7a8
callq 0x65e0
jmp 0x8e03c
leaq -0x5b0(%rbp), %rax
movq %rax, -0x8c8(%rbp)
movq %rax, -0x638(%rbp)
leaq -0x63d(%rbp), %rdi
movq %rdi, -0x8c0(%rbp)
callq 0x67b0
movq -0x8c8(%rbp), %rdi
movq -0x8c0(%rbp), %rdx
leaq 0x3d380(%rip), %rsi     # 0xcb3f9
callq 0x65e0
jmp 0x8e080
movb $0x0, -0x63e(%rbp)
leaq -0x630(%rbp), %rax
movq %rax, -0x590(%rbp)
movq $0x5, -0x588(%rbp)
leaq -0x63f(%rbp), %rdi
movq %rdi, -0x8d0(%rbp)
callq 0xdab0
movq -0x8d0(%rbp), %rcx
movq -0x590(%rbp), %rsi
movq -0x588(%rbp), %rdx
leaq -0x580(%rbp), %rdi
callq 0xbfeb0
jmp 0x8e0d6
leaq -0x63f(%rbp), %rdi
callq 0xdb50
leaq -0x630(%rbp), %rax
movq %rax, -0x8e0(%rbp)
addq $0xa0, %rax
movq %rax, -0x8d8(%rbp)
movq -0x8d8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x8e8(%rbp)
callq 0x6908
movq -0x8e0(%rbp), %rcx
movq -0x8e8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x8d8(%rbp)
jne 0x8e0fd
leaq -0x63d(%rbp), %rdi
callq 0x6470
leaq -0x63c(%rbp), %rdi
callq 0x6470
leaq -0x63b(%rbp), %rdi
callq 0x6470
leaq -0x63a(%rbp), %rdi
callq 0x6470
leaq -0x639(%rbp), %rdi
callq 0x6470
movq 0x7947f(%rip), %rax     # 0x1075f0
movq %rax, -0x8f0(%rbp)
leaq 0x3d9e9(%rip), %rsi     # 0xcbb68
leaq -0x650(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8e192
leaq -0x660(%rbp), %rdi
callq 0x70c00
jmp 0x8e1a0
movq -0x8f0(%rbp), %rdi
leaq -0x650(%rbp), %rsi
movl $0x24b, %edx            # imm = 0x24B
leaq -0x660(%rbp), %rcx
callq 0x6840
jmp 0x8e1c1
leaq -0x228(%rbp), %rdi
leaq -0x580(%rbp), %rsi
callq 0x887e0
movzbl %al, %esi
leaq -0x678(%rbp), %rdi
callq 0x70ed0
jmp 0x8e1e5
callq 0x70e90
movq %rax, -0x8f8(%rbp)
jmp 0x8e1f3
leaq 0x3de10(%rip), %rsi     # 0xcc00a
leaq -0x6a8(%rbp), %rdi
movl $0x1a, %edx
callq 0x70bd0
jmp 0x8e20d
movq -0x8f8(%rbp), %rsi
leaq -0x698(%rbp), %rdi
leaq -0x6a8(%rbp), %rdx
callq 0x70f10
jmp 0x8e229
leaq 0x3d938(%rip), %rsi     # 0xcbb68
leaq -0x6b8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8e243
movq %rsp, %rax
movq $0x0, (%rax)
xorl %r9d, %r9d
movb %r9b, %al
leaq -0x678(%rbp), %rdi
leaq -0x698(%rbp), %rsi
leaq -0x6b8(%rbp), %rdx
movl $0x24b, %ecx            # imm = 0x24B
movl $0x1, %r8d
callq 0x6810
jmp 0x8e27a
leaq -0x698(%rbp), %rdi
callq 0x70f50
leaq -0x678(%rbp), %rdi
callq 0x70f70
callq 0x70ec0
movb %al, -0x8f9(%rbp)
jmp 0x8e29f
movb -0x8f9(%rbp), %al
testb $0x1, %al
jne 0x8e16a
jmp 0x8e2af
leaq -0x580(%rbp), %rdi
callq 0xcfc0
leaq -0x450(%rbp), %rdi
callq 0xcfc0
leaq -0x340(%rbp), %rdi
callq 0xcfc0
leaq -0x228(%rbp), %rdi
callq 0x33f50
leaq -0x210(%rbp), %rdi
callq 0x26180
leaq -0x190(%rbp), %rdi
callq 0x6908
leaq -0x38(%rbp), %rdi
callq 0x5c1b0
addq $0x9c0, %rsp            # imm = 0x9C0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e47e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e472
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e466
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e45a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e44e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e442
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e436
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e42a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x16e(%rbp), %rdi
callq 0xdb50
leaq -0x148(%rbp), %rax
movq %rax, -0x910(%rbp)
addq $0x100, %rax            # imm = 0x100
movq %rax, -0x908(%rbp)
movq -0x908(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x918(%rbp)
callq 0x6908
movq -0x910(%rbp), %rcx
movq -0x918(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x908(%rbp)
jne 0x8e3f7
jmp 0x8e42a
leaq -0x16b(%rbp), %rdi
callq 0x6470
leaq -0x16a(%rbp), %rdi
callq 0x6470
leaq -0x169(%rbp), %rdi
callq 0x6470
leaq -0x168(%rbp), %rdi
callq 0x6470
leaq -0x167(%rbp), %rdi
callq 0x6470
leaq -0x166(%rbp), %rdi
callq 0x6470
leaq -0x165(%rbp), %rdi
callq 0x6470
leaq -0x151(%rbp), %rdi
callq 0x6470
testb $0x1, -0x16c(%rbp)
jne 0x8e495
jmp 0x8e4e2
movq -0x150(%rbp), %rax
leaq -0x148(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x920(%rbp)
je 0x8e4e0
movq -0x920(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x928(%rbp)
callq 0x6908
movq -0x928(%rbp), %rax
leaq -0x148(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x920(%rbp)
jne 0x8e4af
jmp 0x8e4e2
jmp 0x8eb81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x191(%rbp), %rdi
callq 0x6470
jmp 0x8eb78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8eb6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e57f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x6908
leaq -0x271(%rbp), %rdi
callq 0x6470
leaq -0x248(%rbp), %rdi
callq 0x6908
leaq -0x249(%rbp), %rdi
callq 0x6470
jmp 0x8eb54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e5ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e5d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x6908
leaq -0x2c1(%rbp), %rdi
callq 0x6470
leaq -0x298(%rbp), %rdi
callq 0x6908
leaq -0x299(%rbp), %rdi
callq 0x6470
jmp 0x8eb54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8eb54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x70ea0
jmp 0x8eb54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e6fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e6f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e6e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x3bd(%rbp), %rdi
callq 0xdb50
leaq -0x3b0(%rbp), %rax
movq %rax, -0x938(%rbp)
addq $0x60, %rax
movq %rax, -0x930(%rbp)
movq -0x930(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x940(%rbp)
callq 0x6908
movq -0x938(%rbp), %rcx
movq -0x940(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x930(%rbp)
jne 0x8e6b2
jmp 0x8e6e5
leaq -0x3bb(%rbp), %rdi
callq 0x6470
leaq -0x3ba(%rbp), %rdi
callq 0x6470
leaq -0x3b9(%rbp), %rdi
callq 0x6470
testb $0x1, -0x3bc(%rbp)
jne 0x8e714
jmp 0x8e761
movq -0x3b8(%rbp), %rax
leaq -0x3b0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x948(%rbp)
je 0x8e75f
movq -0x948(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x950(%rbp)
callq 0x6908
movq -0x950(%rbp), %rax
leaq -0x3b0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x948(%rbp)
jne 0x8e72e
jmp 0x8e761
jmp 0x8eb54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8eb48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e7af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x70f50
leaq -0x3f8(%rbp), %rdi
callq 0x70f70
jmp 0x8eb48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e8a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e89d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e891
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e885
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x4ee(%rbp), %rdi
callq 0xdb50
leaq -0x4e0(%rbp), %rax
movq %rax, -0x960(%rbp)
addq $0x80, %rax
movq %rax, -0x958(%rbp)
movq -0x958(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x968(%rbp)
callq 0x6908
movq -0x960(%rbp), %rcx
movq -0x968(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x958(%rbp)
jne 0x8e852
jmp 0x8e885
leaq -0x4ec(%rbp), %rdi
callq 0x6470
leaq -0x4eb(%rbp), %rdi
callq 0x6470
leaq -0x4ea(%rbp), %rdi
callq 0x6470
leaq -0x4e9(%rbp), %rdi
callq 0x6470
testb $0x1, -0x4ed(%rbp)
jne 0x8e8c0
jmp 0x8e90d
movq -0x4e8(%rbp), %rax
leaq -0x4e0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x970(%rbp)
je 0x8e90b
movq -0x970(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x978(%rbp)
callq 0x6908
movq -0x978(%rbp), %rax
leaq -0x4e0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x970(%rbp)
jne 0x8e8da
jmp 0x8e90d
jmp 0x8eb48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8eb3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8e95b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x548(%rbp), %rdi
callq 0x70f50
leaq -0x528(%rbp), %rdi
callq 0x70f70
jmp 0x8eb3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8ea78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8ea6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8ea60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8ea54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8ea48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x63f(%rbp), %rdi
callq 0xdb50
leaq -0x630(%rbp), %rax
movq %rax, -0x988(%rbp)
addq $0xa0, %rax
movq %rax, -0x980(%rbp)
movq -0x980(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x990(%rbp)
callq 0x6908
movq -0x988(%rbp), %rcx
movq -0x990(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x980(%rbp)
jne 0x8ea15
jmp 0x8ea48
leaq -0x63d(%rbp), %rdi
callq 0x6470
leaq -0x63c(%rbp), %rdi
callq 0x6470
leaq -0x63b(%rbp), %rdi
callq 0x6470
leaq -0x63a(%rbp), %rdi
callq 0x6470
leaq -0x639(%rbp), %rdi
callq 0x6470
testb $0x1, -0x63e(%rbp)
jne 0x8ea8f
jmp 0x8eadc
movq -0x638(%rbp), %rax
leaq -0x630(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x998(%rbp)
je 0x8eada
movq -0x998(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x9a0(%rbp)
callq 0x6908
movq -0x9a0(%rbp), %rax
leaq -0x630(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x998(%rbp)
jne 0x8eaa9
jmp 0x8eadc
jmp 0x8eb3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8eb30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x8eb24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x698(%rbp), %rdi
callq 0x70f50
leaq -0x678(%rbp), %rdi
callq 0x70f70
leaq -0x580(%rbp), %rdi
callq 0xcfc0
leaq -0x450(%rbp), %rdi
callq 0xcfc0
leaq -0x340(%rbp), %rdi
callq 0xcfc0
leaq -0x228(%rbp), %rdi
callq 0x33f50
leaq -0x210(%rbp), %rdi
callq 0x26180
leaq -0x190(%rbp), %rdi
callq 0x6908
leaq -0x38(%rbp), %rdi
callq 0x5c1b0
movq -0x160(%rbp), %rdi
callq 0x67a0
nopl (%rax)