// File: /workspace/github_cpp_makefile_star2_O2/aalto-speech[P]ftk/src/iterate-sents.cc
// Function: main
int main(int argc, char* argv[]) {

    flt_type one_char_min_lp = -25.0;

    conf::Config config;
    config("usage: iterate-sents [OPTION...] CORPUS IN_VOCAB OUT_VOCAB\n")
      ('h', "help", "", "", "display help")
      ('i', "iterations=INT", "arg", "5", "Number of iterations")
      ('f', "forward-backward", "", "", "Use Forward-backward segmentation instead of Viterbi")
      ('t', "temp-vocabs", "", "", "Write out vocabulary after each iteration")
      ('8', "utf-8", "", "", "Utf-8 character encoding in use");
    config.default_parse(argc, argv);
    if (config.arguments.size() != 3) config.print_help(stderr, 1);

    int num_iterations = config["iterations"].get_int();
    bool enable_forward_backward = config["forward-backward"].specified;
    bool write_temp_vocabs = config["temp-vocabs"].specified;
    bool utf8_encoding = config["utf-8"].specified;
    string training_fname = config.arguments[0];
    string vocab_in_fname = config.arguments[1];
    string vocab_out_fname = config.arguments[2];

    cerr << std::boolalpha;
    cerr << "parameters, training data: " << training_fname << endl;
    cerr << "parameters, initial vocabulary: " << vocab_in_fname << endl;
    cerr << "parameters, final vocabulary: " << vocab_out_fname << endl;
    cerr << "parameters, use forward-backward: " << enable_forward_backward << endl;
    cerr << "parameters, number of iterations: " << num_iterations << endl;
    cerr << "parameters, write vocabulary after each iteration: " << write_temp_vocabs << endl;
    cerr << "parameters, utf-8 encoding: " << utf8_encoding << endl;

    int maxlen;
    set<string> all_chars;
    map<string, flt_type> vocab;
    map<string, flt_type> freqs;
    vector<string> sents;

    cerr << "Reading vocabulary " << vocab_in_fname << endl;
    int retval = Unigrams::read_vocab(vocab_in_fname, vocab, maxlen, utf8_encoding);
    if (retval < 0) {
        cerr << "something went wrong reading vocabulary" << endl;
        exit(EXIT_FAILURE);
    }
    cerr << "\t" << "size: " << vocab.size() << endl;
    cerr << "\t" << "maximum string length: " << maxlen << endl;
    find_short_factors(vocab, all_chars, 2, utf8_encoding);

    Unigrams ug;
    if (enable_forward_backward)
        ug.set_segmentation_method(forward_backward);
    else
        ug.set_segmentation_method(viterbi);
    ug.set_utf8(utf8_encoding);

    cerr << "Reading training corpus " << training_fname << endl;
    Unigrams::read_sents(training_fname, sents);

    cerr << "iterating.." << endl;
    for (int i=0; i<num_iterations; i++) {
        flt_type cost = ug.resegment_sents(sents, vocab, freqs);
        cerr << "likelihood: " << cost << endl;
        vocab = freqs;
        Unigrams::freqs_to_logprobs(vocab);
        assert_factors(vocab, all_chars, one_char_min_lp);

        if (write_temp_vocabs) {
            ostringstream tempfname;
            tempfname << vocab_out_fname << ".iter" << i+1;
            Unigrams::write_vocab(tempfname.str(), vocab);
        }
    }

    Unigrams::write_vocab(vocab_out_fname, vocab);

    exit(EXIT_SUCCESS);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x728, %rsp            # imm = 0x728
movq %rsi, %rbx
movl %edi, %r14d
leaq -0x5d0(%rbp), %rdi
callq 0x7260
leaq 0x1f4c9(%rip), %rsi     # 0x24022
leaq -0x4e8(%rbp), %rdi
leaq -0x748(%rbp), %rdx
callq 0x4150
leaq -0x5d0(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
callq 0x72cc
movq %rax, %r15
leaq 0x1f4dd(%rip), %rsi     # 0x24066
leaq -0x4c8(%rbp), %rdi
leaq -0x1c8(%rbp), %rdx
callq 0x4150
leaq 0x1fa54(%rip), %rsi     # 0x245f7
leaq -0x4a8(%rbp), %rdi
leaq -0xb8(%rbp), %rdx
callq 0x4150
leaq 0x1fa3a(%rip), %rsi     # 0x245f7
leaq -0x488(%rbp), %rdi
leaq -0x518(%rbp), %rdx
callq 0x4150
leaq 0x1f487(%rip), %rsi     # 0x2405e
leaq -0x468(%rbp), %rdi
leaq -0x118(%rbp), %rdx
callq 0x4150
pushq $0x68
popq %rsi
leaq -0x4c8(%rbp), %rdx
leaq -0x4a8(%rbp), %rcx
leaq -0x488(%rbp), %r8
leaq -0x468(%rbp), %r9
movq %r15, %rdi
callq 0x72e4
movq %rax, %r15
leaq 0x1f450(%rip), %rsi     # 0x2406b
leaq -0x448(%rbp), %rdi
leaq -0xf8(%rbp), %rdx
callq 0x4150
leaq 0x1f445(%rip), %rsi     # 0x2407a
leaq -0x428(%rbp), %rdi
leaq -0xd8(%rbp), %rdx
callq 0x4150
leaq 0x1f42f(%rip), %rsi     # 0x2407e
leaq -0x408(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x4150
leaq 0x1f41a(%rip), %rsi     # 0x24080
leaq -0x3e8(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x4150
pushq $0x69
popq %rsi
leaq -0x448(%rbp), %rdx
leaq -0x428(%rbp), %rcx
leaq -0x408(%rbp), %r8
leaq -0x3e8(%rbp), %r9
movq %r15, %rdi
callq 0x72e4
movq %rax, %r15
leaq 0x1f3ee(%rip), %rsi     # 0x24095
leaq -0x3c8(%rbp), %rdi
leaq -0x34(%rbp), %rdx
callq 0x4150
leaq 0x1f939(%rip), %rsi     # 0x245f7
leaq -0x3a8(%rbp), %rdi
leaq -0x44(%rbp), %rdx
callq 0x4150
leaq 0x1f922(%rip), %rsi     # 0x245f7
leaq -0x388(%rbp), %rdi
leaq -0x3e(%rbp), %rdx
callq 0x4150
leaq 0x1f3ba(%rip), %rsi     # 0x240a6
leaq -0x368(%rbp), %rdi
leaq -0x3d(%rbp), %rdx
callq 0x4150
pushq $0x66
popq %rsi
leaq -0x3c8(%rbp), %rdx
leaq -0x3a8(%rbp), %rcx
leaq -0x388(%rbp), %r8
leaq -0x368(%rbp), %r9
movq %r15, %rdi
callq 0x72e4
movq %rax, %r15
leaq 0x1f3ae(%rip), %rsi     # 0x240db
leaq -0x348(%rbp), %rdi
leaq -0x3c(%rbp), %rdx
callq 0x4150
leaq 0x1f8b3(%rip), %rsi     # 0x245f7
leaq -0x328(%rbp), %rdi
leaq -0x3b(%rbp), %rdx
callq 0x4150
leaq 0x1f89c(%rip), %rsi     # 0x245f7
leaq -0x308(%rbp), %rdi
leaq -0x3a(%rbp), %rdx
callq 0x4150
leaq 0x1f375(%rip), %rsi     # 0x240e7
leaq -0x2e8(%rbp), %rdi
leaq -0x39(%rbp), %rdx
callq 0x4150
pushq $0x74
popq %rsi
leaq -0x348(%rbp), %rdx
leaq -0x328(%rbp), %rcx
leaq -0x308(%rbp), %r8
leaq -0x2e8(%rbp), %r9
movq %r15, %rdi
callq 0x72e4
movq %rax, %r15
leaq 0x1f35e(%rip), %rsi     # 0x24111
leaq -0x2c8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x4150
leaq 0x1f82d(%rip), %rsi     # 0x245f7
leaq -0x2a8(%rbp), %rdi
leaq -0x37(%rbp), %rdx
callq 0x4150
leaq 0x1f816(%rip), %rsi     # 0x245f7
leaq -0x288(%rbp), %rdi
leaq -0x36(%rbp), %rdx
callq 0x4150
leaq 0x1f31f(%rip), %rsi     # 0x24117
leaq -0x268(%rbp), %rdi
leaq -0x35(%rbp), %rdx
callq 0x4150
pushq $0x38
popq %rsi
leaq -0x2c8(%rbp), %rdx
leaq -0x2a8(%rbp), %rcx
leaq -0x288(%rbp), %r8
leaq -0x268(%rbp), %r9
movq %r15, %rdi
callq 0x72e4
leaq -0x268(%rbp), %rdi
callq 0x46e8
leaq -0x288(%rbp), %rdi
callq 0x46e8
leaq -0x2a8(%rbp), %rdi
callq 0x46e8
leaq -0x2c8(%rbp), %rdi
callq 0x46e8
leaq -0x2e8(%rbp), %rdi
callq 0x46e8
leaq -0x308(%rbp), %rdi
callq 0x46e8
leaq -0x328(%rbp), %rdi
callq 0x46e8
leaq -0x348(%rbp), %rdi
callq 0x46e8
leaq -0x368(%rbp), %rdi
callq 0x46e8
leaq -0x388(%rbp), %rdi
callq 0x46e8
leaq -0x3a8(%rbp), %rdi
callq 0x46e8
leaq -0x3c8(%rbp), %rdi
callq 0x46e8
leaq -0x3e8(%rbp), %rdi
callq 0x46e8
leaq -0x408(%rbp), %rdi
callq 0x46e8
leaq -0x428(%rbp), %rdi
callq 0x46e8
leaq -0x448(%rbp), %rdi
callq 0x46e8
leaq -0x468(%rbp), %rdi
callq 0x46e8
leaq -0x488(%rbp), %rdi
callq 0x46e8
leaq -0x4a8(%rbp), %rdi
callq 0x46e8
leaq -0x4c8(%rbp), %rdi
callq 0x46e8
leaq -0x4e8(%rbp), %rdi
callq 0x46e8
leaq -0x5d0(%rbp), %rdi
movl %r14d, %esi
movq %rbx, %rdx
callq 0x7b4a
movq -0x530(%rbp), %rax
subq -0x538(%rbp), %rax
cmpq $0x60, %rax
je 0x4f6a
movq 0x31068(%rip), %rax     # 0x35fc0
movq (%rax), %rsi
leaq -0x5d0(%rbp), %rdi
pushq $0x1
popq %rdx
callq 0x8032
leaq 0x1f119(%rip), %rsi     # 0x2408a
leaq -0x248(%rbp), %rdi
leaq -0x748(%rbp), %rdx
callq 0x4150
leaq -0x5d0(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x7bea
movq %rax, %rdi
callq 0x7130
movl %eax, %ebx
leaq -0x248(%rbp), %rdi
callq 0x46e8
leaq 0x1f0e1(%rip), %rsi     # 0x24095
leaq -0x228(%rbp), %rdi
leaq -0x748(%rbp), %rdx
callq 0x4150
leaq -0x5d0(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x7bea
movb 0x4a(%rax), %r12b
leaq -0x228(%rbp), %rdi
callq 0x46e8
leaq 0x1f0ea(%rip), %rsi     # 0x240db
leaq -0x208(%rbp), %rdi
leaq -0x748(%rbp), %rdx
callq 0x4150
leaq -0x5d0(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x7bea
movb 0x4a(%rax), %r14b
leaq -0x208(%rbp), %rdi
callq 0x46e8
leaq 0x1f0e3(%rip), %rsi     # 0x24111
leaq -0x1e8(%rbp), %rdi
leaq -0x748(%rbp), %rdx
callq 0x4150
leaq -0x5d0(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x7bea
movb 0x4a(%rax), %r15b
leaq -0x1e8(%rbp), %rdi
callq 0x46e8
movq -0x538(%rbp), %rsi
leaq -0x118(%rbp), %rdi
callq 0x4480
movq -0x538(%rbp), %rsi
addq $0x20, %rsi
leaq -0xf8(%rbp), %rdi
callq 0x4480
movq -0x538(%rbp), %rsi
addq $0x40, %rsi
leaq -0xd8(%rbp), %rdi
callq 0x4480
movq 0x30f3c(%rip), %rdi     # 0x35fe8
movq (%rdi), %rax
movq -0x18(%rax), %rax
orl $0x1, 0x18(%rdi,%rax)
leaq 0x1f078(%rip), %rsi     # 0x24137
callq 0x4350
leaq -0x118(%rbp), %rsi
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4190
movq 0x30f06(%rip), %rdi     # 0x35fe8
leaq 0x1f06a(%rip), %rsi     # 0x24153
callq 0x4350
leaq -0xf8(%rbp), %rsi
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4190
movq 0x30edc(%rip), %rdi     # 0x35fe8
leaq 0x1f061(%rip), %rsi     # 0x24174
callq 0x4350
leaq -0xd8(%rbp), %rsi
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4190
movq 0x30eb2(%rip), %rdi     # 0x35fe8
leaq 0x1f056(%rip), %rsi     # 0x24193
callq 0x4350
movzbl %r12b, %esi
movq %rax, %rdi
callq 0x45a0
movq %rax, %rdi
callq 0x4190
movq 0x30e8b(%rip), %rdi     # 0x35fe8
leaq 0x1f052(%rip), %rsi     # 0x241b6
callq 0x4350
movq %rax, %rdi
movl %ebx, %esi
callq 0x4600
movq %rax, %rdi
callq 0x4190
movq 0x30e66(%rip), %rdi     # 0x35fe8
leaq 0x1f050(%rip), %rsi     # 0x241d9
callq 0x4350
movzbl %r14b, %esi
movq %rax, %rdi
callq 0x45a0
movq %rax, %rdi
callq 0x4190
movq 0x30e3f(%rip), %rdi     # 0x35fe8
leaq 0x1f05d(%rip), %rsi     # 0x2420d
callq 0x4350
movzbl %r15b, %r13d
movq %rax, %rdi
movl %r13d, %esi
callq 0x45a0
movq %rax, %rdi
callq 0x4190
leaq -0x1c0(%rbp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq -0xb0(%rbp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq -0x510(%rbp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
xorps %xmm0, %xmm0
movaps %xmm0, -0x80(%rbp)
andq $0x0, -0x70(%rbp)
movq 0x30db5(%rip), %rdi     # 0x35fe8
leaq 0x1eff0(%rip), %rsi     # 0x2422a
callq 0x4350
leaq -0xf8(%rbp), %rsi
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4190
leaq -0x198(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x4480
leaq -0x198(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0x44(%rbp), %rdx
movl %r13d, %ecx
callq 0x1c33a
movl %eax, %r13d
leaq -0x198(%rbp), %rdi
callq 0x46e8
testl %r13d, %r13d
jns 0x52ba
movq 0x30d4a(%rip), %rdi     # 0x35fe8
leaq 0x1ef99(%rip), %rsi     # 0x2423e
callq 0x4350
movq %rax, %rdi
callq 0x4190
pushq $0x1
popq %rdi
callq 0x43d0
movq 0x30d27(%rip), %rdi     # 0x35fe8
leaq 0x1f32e(%rip), %rsi     # 0x245f6
callq 0x4350
leaq 0x1ef92(%rip), %rsi     # 0x24266
movq %rax, %rdi
callq 0x4350
movq -0x90(%rbp), %rsi
movq %rax, %rdi
callq 0x4260
movq %rax, %rdi
callq 0x4190
movq 0x30cee(%rip), %rdi     # 0x35fe8
leaq 0x1f2f5(%rip), %rsi     # 0x245f6
callq 0x4350
leaq 0x1ef60(%rip), %rsi     # 0x2426d
movq %rax, %rdi
callq 0x4350
movl -0x44(%rbp), %esi
movq %rax, %rdi
callq 0x4600
movq %rax, %rdi
callq 0x4190
movq -0xa0(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq -0xb0(%rbp), %rax
cmpq %rax, -0x30(%rbp)
je 0x545a
andq $0x0, -0x50(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x60(%rbp)
movq -0x30(%rbp), %rax
leaq 0x20(%rax), %r13
testb %r15b, %r15b
je 0x53cc
andl $0x0, -0x748(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x748(%rbp), %rsi
callq 0x59ee
andl $0x0, -0x748(%rbp)
xorl %eax, %eax
movl %eax, %eax
movq -0x30(%rbp), %rcx
cmpq %rax, 0x28(%rcx)
jbe 0x541f
movq (%r13), %rcx
movb (%rcx,%rax), %dl
pushq $0x1
popq %rcx
testb %dl, %dl
jns 0x53ac
pushq $0x4
popq %rcx
cmpb $-0x11, %dl
ja 0x53ac
cmpb $-0x20, %dl
pushq $0x2
popq %rcx
sbbl $-0x1, %ecx
addl %ecx, %eax
movl %eax, -0x748(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x748(%rbp), %rsi
callq 0x59c8
movl -0x748(%rbp), %eax
jmp 0x537d
leaq -0x748(%rbp), %rdi
movq %r13, %rsi
callq 0x4480
movq -0x60(%rbp), %rax
cmpq %rax, -0x58(%rbp)
je 0x53e9
movq %rax, -0x58(%rbp)
xorl %eax, %eax
movl %eax, -0x34(%rbp)
movl %eax, %eax
movq -0x740(%rbp), %rcx
incq %rcx
cmpq %rax, %rcx
jbe 0x5413
leaq -0x60(%rbp), %rdi
leaq -0x34(%rbp), %rsi
callq 0x59c8
movl -0x34(%rbp), %eax
incl %eax
jmp 0x53eb
leaq -0x748(%rbp), %rdi
callq 0x46e8
movq -0x58(%rbp), %rax
subq -0x60(%rbp), %rax
sarq $0x2, %rax
decq %rax
cmpq $0x1, %rax
ja 0x5443
leaq -0x1c8(%rbp), %rdi
movq %r13, %rsi
callq 0x5c28
leaq -0x60(%rbp), %rdi
callq 0x5e58
movq -0x30(%rbp), %rdi
callq 0x43c0
jmp 0x532f
testb %r12b, %r12b
je 0x5468
leaq 0x115a0(%rip), %rax     # 0x16a06
jmp 0x546f
leaq 0x110f3(%rip), %rax     # 0x16562
movq %rax, -0x60(%rbp)
movb %r15b, -0x58(%rbp)
movq 0x30b6a(%rip), %rdi     # 0x35fe8
leaq 0x1ee00(%rip), %rsi     # 0x24285
callq 0x4350
leaq -0x118(%rbp), %rsi
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4190
leaq -0x178(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x4480
leaq -0x178(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x1c96e
leaq -0x178(%rbp), %rdi
callq 0x46e8
movq 0x30b11(%rip), %rdi     # 0x35fe8
leaq 0x1edc0(%rip), %rsi     # 0x2429e
callq 0x4350
movq %rax, %rdi
callq 0x4190
xorl %eax, %eax
testl %ebx, %ebx
movl $0x0, -0x30(%rbp)
cmovlel %eax, %ebx
leaq -0xb8(%rbp), %r15
cmpl %ebx, -0x30(%rbp)
je 0x5658
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rsi
movq %r15, %rdx
leaq -0x518(%rbp), %rcx
callq 0x1cd90
movsd %xmm0, -0x88(%rbp)
movq 0x30ab9(%rip), %rdi     # 0x35fe8
leaq 0x1ed74(%rip), %rsi     # 0x242aa
callq 0x4350
movq %rax, %rdi
movsd -0x88(%rbp), %xmm0
callq 0x4560
movq %rax, %rdi
callq 0x4190
movq %r15, %rdi
leaq -0x518(%rbp), %rsi
callq 0x5e6c
movq %r15, %rdi
movsd 0x1ea9b(%rip), %xmm0    # 0x24008
callq 0x1cc32
movq -0x1b0(%rbp), %r13
leaq -0x1c0(%rbp), %rax
cmpq %rax, %r13
je 0x55c5
leaq 0x20(%r13), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x6302
leaq -0xb0(%rbp), %rcx
cmpq %rcx, %rax
jne 0x55b8
movq %r15, %rdi
movq %r12, %rsi
callq 0x6298
movabsq $-0x3fc7000000000000, %rcx # imm = 0xC039000000000000
movq %rcx, (%rax)
movq %r13, %rdi
callq 0x43c0
movq %rax, %r13
jmp 0x5579
testb %r14b, %r14b
je 0x5650
leaq -0x748(%rbp), %rdi
callq 0x4470
leaq -0x748(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x4310
movq %rax, %rdi
leaq 0x1ecc0(%rip), %rsi     # 0x242b7
callq 0x4350
movl -0x30(%rbp), %esi
incl %esi
movq %rax, %rdi
movl %esi, -0x30(%rbp)
callq 0x4600
leaq -0x158(%rbp), %rdi
leaq -0x740(%rbp), %rsi
callq 0x4540
leaq -0x158(%rbp), %rdi
movq %r15, %rsi
xorl %edx, %edx
pushq $0x6
popq %rcx
callq 0x1c6b8
leaq -0x158(%rbp), %rdi
callq 0x46e8
leaq -0x748(%rbp), %rdi
callq 0x40d0
jmp 0x5500
incl -0x30(%rbp)
jmp 0x5500
leaq -0x138(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x4480
leaq -0x138(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
pushq $0x6
popq %rcx
xorl %edx, %edx
callq 0x1c6b8
leaq -0x138(%rbp), %rdi
callq 0x46e8
xorl %edi, %edi
callq 0x43d0
movq %rax, %rbx
leaq -0x138(%rbp), %rdi
jmp 0x5705
jmp 0x570c
movq %rax, %rbx
leaq -0x158(%rbp), %rdi
callq 0x46e8
jmp 0x56b8
movq %rax, %rbx
leaq -0x748(%rbp), %rdi
callq 0x40d0
jmp 0x570f
jmp 0x570c
jmp 0x570c
jmp 0x570c
movq %rax, %rbx
leaq -0x178(%rbp), %rdi
jmp 0x5705
jmp 0x56eb
movq %rax, %rbx
leaq -0x748(%rbp), %rdi
callq 0x46e8
jmp 0x56ee
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0x5e58
jmp 0x570f
jmp 0x570c
movq %rax, %rbx
leaq -0x198(%rbp), %rdi
callq 0x46e8
jmp 0x570f
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x5950
leaq -0x518(%rbp), %rdi
callq 0x66e2
leaq -0xb8(%rbp), %rdi
callq 0x66e2
leaq -0x1c8(%rbp), %rdi
callq 0x66fa
jmp 0x5741
movq %rax, %rbx
leaq -0xd8(%rbp), %rdi
callq 0x46e8
jmp 0x5752
movq %rax, %rbx
leaq -0xf8(%rbp), %rdi
callq 0x46e8
jmp 0x5763
movq %rax, %rbx
leaq -0x118(%rbp), %rdi
jmp 0x5931
jmp 0x5938
movq %rax, %rbx
leaq -0x1e8(%rbp), %rdi
jmp 0x5931
jmp 0x5938
movq %rax, %rbx
leaq -0x208(%rbp), %rdi
jmp 0x5931
jmp 0x5938
movq %rax, %rbx
leaq -0x228(%rbp), %rdi
jmp 0x5931
jmp 0x5938
movq %rax, %rbx
leaq -0x248(%rbp), %rdi
jmp 0x5931
jmp 0x5938
jmp 0x5938
movq %rax, %rbx
leaq -0x268(%rbp), %rdi
callq 0x46e8
jmp 0x57dd
movq %rax, %rbx
leaq -0x288(%rbp), %rdi
callq 0x46e8
jmp 0x57ee
movq %rax, %rbx
leaq -0x2a8(%rbp), %rdi
callq 0x46e8
jmp 0x57ff
movq %rax, %rbx
leaq -0x2c8(%rbp), %rdi
callq 0x46e8
jmp 0x5812
jmp 0x580f
movq %rax, %rbx
leaq -0x2e8(%rbp), %rdi
callq 0x46e8
jmp 0x5823
movq %rax, %rbx
leaq -0x308(%rbp), %rdi
callq 0x46e8
jmp 0x5834
movq %rax, %rbx
leaq -0x328(%rbp), %rdi
callq 0x46e8
jmp 0x5845
movq %rax, %rbx
leaq -0x348(%rbp), %rdi
callq 0x46e8
jmp 0x5858
jmp 0x5855
movq %rax, %rbx
leaq -0x368(%rbp), %rdi
callq 0x46e8
jmp 0x5869
movq %rax, %rbx
leaq -0x388(%rbp), %rdi
callq 0x46e8
jmp 0x587a
movq %rax, %rbx
leaq -0x3a8(%rbp), %rdi
callq 0x46e8
jmp 0x588b
movq %rax, %rbx
leaq -0x3c8(%rbp), %rdi
callq 0x46e8
jmp 0x589e
jmp 0x589b
movq %rax, %rbx
leaq -0x3e8(%rbp), %rdi
callq 0x46e8
jmp 0x58af
movq %rax, %rbx
leaq -0x408(%rbp), %rdi
callq 0x46e8
jmp 0x58c0
movq %rax, %rbx
leaq -0x428(%rbp), %rdi
callq 0x46e8
jmp 0x58d1
movq %rax, %rbx
leaq -0x448(%rbp), %rdi
callq 0x46e8
jmp 0x58e4
jmp 0x58e1
movq %rax, %rbx
leaq -0x468(%rbp), %rdi
callq 0x46e8
jmp 0x58f5
movq %rax, %rbx
leaq -0x488(%rbp), %rdi
callq 0x46e8
jmp 0x5906
movq %rax, %rbx
leaq -0x4a8(%rbp), %rdi
callq 0x46e8
jmp 0x5917
movq %rax, %rbx
leaq -0x4c8(%rbp), %rdi
callq 0x46e8
jmp 0x592a
jmp 0x5927
movq %rax, %rbx
leaq -0x4e8(%rbp), %rdi
callq 0x46e8
jmp 0x593b
movq %rax, %rbx
leaq -0x5d0(%rbp), %rdi
callq 0x597c
movq %rbx, %rdi
callq 0x4620
nop