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

    string vocab_fname;
    string trans_fname;
    int maxlen;
    map<string, flt_type> vocab;
    StringSet *ss_vocab = NULL;
    transitions_t transitions;
    bool unigram = true;

    conf::Config config;
    config("usage: segposts [OPTION...] INPUT SEGPROBS_OUTPUT\n")
      ('h', "help", "", "", "display help")
      ('v', "vocabulary=FILE", "arg", "", "Unigram model file")
      ('t', "transitions=FILE", "arg", "", "Bigram model file")
      ('8', "utf-8", "", "", "Utf-8 character encoding in use");
    config.default_parse(argc, argv);
    if (config.arguments.size() != 2) config.print_help(stderr, 1);

    string in_fname = config.arguments[0];
    string out_fname = config.arguments[1];
    bool utf8_encoding = config["utf-8"].specified;

    if (!config["vocabulary"].specified && !config["transitions"].specified) {
        cerr << "Please define vocabulary or transitions" << endl;
        exit(EXIT_FAILURE);
    }

    if (config["vocabulary"].specified && config["transitions"].specified) {
        cerr << "Please don't define both vocabulary and transitions" << endl;
        exit(EXIT_FAILURE);
    }

    if (config["vocabulary"].specified) {
        vocab_fname = config["vocabulary"].get_str();
        cerr << "Reading vocabulary " << vocab_fname << endl;
        int retval = Unigrams::read_vocab(vocab_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;
        ss_vocab = new StringSet(vocab);
    }

    if (config["transitions"].specified) {
        unigram = false;
        vocab_fname = config["transitions"].get_str();
        cerr << "Reading transitions " << trans_fname << endl;
        int retval = Bigrams::read_transitions(transitions, trans_fname);
        Bigrams::trans_to_vocab(transitions, vocab);
        ss_vocab = new StringSet(vocab);
        if (retval < 0) {
            cerr << "something went wrong reading transitions" << endl;
            exit(EXIT_FAILURE);
        }
        cerr << "\t" << "vocabulary: " << transitions.size() << endl;
        cerr << "\t" << "transitions: " << retval << endl;
    }

    cerr << "Segmenting corpus" << endl;
    SimpleFileInput infile(in_fname);
    SimpleFileOutput outfile(out_fname);

    string line;
    while (infile.getline(line)) {

        map<string, flt_type> ug_stats;
        transitions_t bg_stats;
        vector<flt_type> post_scores;

        if (unigram)
            forward_backward(*ss_vocab, line, ug_stats, post_scores, utf8_encoding);
        else {
            FactorGraph fg(line, start_end_symbol, *ss_vocab);
            forward_backward(transitions, fg, bg_stats, post_scores);
        }

        outfile << line << "\t";
        for (unsigned int i=0; i<post_scores.size()-1; i++)
            outfile << post_scores[i] << " ";
        outfile << "\n";
    }

    outfile.close();
    if (ss_vocab != NULL) delete ss_vocab;
    exit(EXIT_SUCCESS);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa70, %rsp            # imm = 0xA70
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4560
leaq -0x50(%rbp), %rdi
callq 0x4560
leaq -0x88(%rbp), %rdi
callq 0x6b80
movq $0x0, -0x90(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x6ba0
movb $0x1, -0xc1(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x98b0
jmp 0x4f53
leaq -0x1b1(%rbp), %rdi
movq %rdi, -0x7e8(%rbp)
callq 0x46f0
movq -0x7e8(%rbp), %rdx
leaq 0x62092(%rip), %rsi     # 0x67006
leaq -0x1b0(%rbp), %rdi
callq 0x4550
jmp 0x4f82
leaq -0x180(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x9920
movq %rax, -0x7f0(%rbp)
jmp 0x4f9e
leaq -0x1d9(%rbp), %rdi
movq %rdi, -0x7f8(%rbp)
callq 0x46f0
movq -0x7f8(%rbp), %rdx
leaq 0x62082(%rip), %rsi     # 0x67041
leaq -0x1d8(%rbp), %rdi
callq 0x4550
jmp 0x4fcd
leaq -0x201(%rbp), %rdi
movq %rdi, -0x800(%rbp)
callq 0x46f0
movq -0x800(%rbp), %rdx
leaq 0x62507(%rip), %rsi     # 0x674f5
leaq -0x200(%rbp), %rdi
callq 0x4550
jmp 0x4ffc
leaq -0x229(%rbp), %rdi
movq %rdi, -0x808(%rbp)
callq 0x46f0
movq -0x808(%rbp), %rdx
leaq 0x624d8(%rip), %rsi     # 0x674f5
leaq -0x228(%rbp), %rdi
callq 0x4550
jmp 0x502b
leaq -0x251(%rbp), %rdi
movq %rdi, -0x810(%rbp)
callq 0x46f0
movq -0x810(%rbp), %rdx
leaq 0x61fed(%rip), %rsi     # 0x67039
leaq -0x250(%rbp), %rdi
callq 0x4550
jmp 0x505a
movq -0x7f0(%rbp), %rdi
movl $0x68, %esi
leaq -0x1d8(%rbp), %rdx
leaq -0x200(%rbp), %rcx
leaq -0x228(%rbp), %r8
leaq -0x250(%rbp), %r9
callq 0x9950
movq %rax, -0x818(%rbp)
jmp 0x5090
leaq -0x279(%rbp), %rdi
movq %rdi, -0x820(%rbp)
callq 0x46f0
movq -0x820(%rbp), %rdx
leaq 0x61f95(%rip), %rsi     # 0x67046
leaq -0x278(%rbp), %rdi
callq 0x4550
jmp 0x50bf
leaq -0x2a1(%rbp), %rdi
movq %rdi, -0x828(%rbp)
callq 0x46f0
movq -0x828(%rbp), %rdx
leaq 0x61f76(%rip), %rsi     # 0x67056
leaq -0x2a0(%rbp), %rdi
callq 0x4550
jmp 0x50ee
leaq -0x2c9(%rbp), %rdi
movq %rdi, -0x830(%rbp)
callq 0x46f0
movq -0x830(%rbp), %rdx
leaq 0x623e6(%rip), %rsi     # 0x674f5
leaq -0x2c8(%rbp), %rdi
callq 0x4550
jmp 0x511d
leaq -0x2f1(%rbp), %rdi
movq %rdi, -0x838(%rbp)
callq 0x46f0
movq -0x838(%rbp), %rdx
leaq 0x61f1c(%rip), %rsi     # 0x6705a
leaq -0x2f0(%rbp), %rdi
callq 0x4550
jmp 0x514c
movq -0x818(%rbp), %rdi
movl $0x76, %esi
leaq -0x278(%rbp), %rdx
leaq -0x2a0(%rbp), %rcx
leaq -0x2c8(%rbp), %r8
leaq -0x2f0(%rbp), %r9
callq 0x9950
movq %rax, -0x840(%rbp)
jmp 0x5182
leaq -0x319(%rbp), %rdi
movq %rdi, -0x848(%rbp)
callq 0x46f0
movq -0x848(%rbp), %rdx
leaq 0x61eca(%rip), %rsi     # 0x6706d
leaq -0x318(%rbp), %rdi
callq 0x4550
jmp 0x51b1
leaq -0x341(%rbp), %rdi
movq %rdi, -0x850(%rbp)
callq 0x46f0
movq -0x850(%rbp), %rdx
leaq 0x61e84(%rip), %rsi     # 0x67056
leaq -0x340(%rbp), %rdi
callq 0x4550
jmp 0x51e0
leaq -0x369(%rbp), %rdi
movq %rdi, -0x858(%rbp)
callq 0x46f0
movq -0x858(%rbp), %rdx
leaq 0x622f4(%rip), %rsi     # 0x674f5
leaq -0x368(%rbp), %rdi
callq 0x4550
jmp 0x520f
leaq -0x391(%rbp), %rdi
movq %rdi, -0x860(%rbp)
callq 0x46f0
movq -0x860(%rbp), %rdx
leaq 0x61e4e(%rip), %rsi     # 0x6707e
leaq -0x390(%rbp), %rdi
callq 0x4550
jmp 0x523e
movq -0x840(%rbp), %rdi
movl $0x74, %esi
leaq -0x318(%rbp), %rdx
leaq -0x340(%rbp), %rcx
leaq -0x368(%rbp), %r8
leaq -0x390(%rbp), %r9
callq 0x9950
movq %rax, -0x868(%rbp)
jmp 0x5274
leaq -0x3b9(%rbp), %rdi
movq %rdi, -0x870(%rbp)
callq 0x46f0
movq -0x870(%rbp), %rdx
leaq 0x61dfb(%rip), %rsi     # 0x67090
leaq -0x3b8(%rbp), %rdi
callq 0x4550
jmp 0x52a3
leaq -0x3e1(%rbp), %rdi
movq %rdi, -0x878(%rbp)
callq 0x46f0
movq -0x878(%rbp), %rdx
leaq 0x62231(%rip), %rsi     # 0x674f5
leaq -0x3e0(%rbp), %rdi
callq 0x4550
jmp 0x52d2
leaq -0x409(%rbp), %rdi
movq %rdi, -0x880(%rbp)
callq 0x46f0
movq -0x880(%rbp), %rdx
leaq 0x62202(%rip), %rsi     # 0x674f5
leaq -0x408(%rbp), %rdi
callq 0x4550
jmp 0x5301
leaq -0x431(%rbp), %rdi
movq %rdi, -0x888(%rbp)
callq 0x46f0
movq -0x888(%rbp), %rdx
leaq 0x61d74(%rip), %rsi     # 0x67096
leaq -0x430(%rbp), %rdi
callq 0x4550
jmp 0x5330
movq -0x868(%rbp), %rdi
movl $0x38, %esi
leaq -0x3b8(%rbp), %rdx
leaq -0x3e0(%rbp), %rcx
leaq -0x408(%rbp), %r8
leaq -0x430(%rbp), %r9
callq 0x9950
jmp 0x535f
leaq -0x430(%rbp), %rdi
callq 0x4818
leaq -0x431(%rbp), %rdi
callq 0x4420
leaq -0x408(%rbp), %rdi
callq 0x4818
leaq -0x409(%rbp), %rdi
callq 0x4420
leaq -0x3e0(%rbp), %rdi
callq 0x4818
leaq -0x3e1(%rbp), %rdi
callq 0x4420
leaq -0x3b8(%rbp), %rdi
callq 0x4818
leaq -0x3b9(%rbp), %rdi
callq 0x4420
leaq -0x390(%rbp), %rdi
callq 0x4818
leaq -0x391(%rbp), %rdi
callq 0x4420
leaq -0x368(%rbp), %rdi
callq 0x4818
leaq -0x369(%rbp), %rdi
callq 0x4420
leaq -0x340(%rbp), %rdi
callq 0x4818
leaq -0x341(%rbp), %rdi
callq 0x4420
leaq -0x318(%rbp), %rdi
callq 0x4818
leaq -0x319(%rbp), %rdi
callq 0x4420
leaq -0x2f0(%rbp), %rdi
callq 0x4818
leaq -0x2f1(%rbp), %rdi
callq 0x4420
leaq -0x2c8(%rbp), %rdi
callq 0x4818
leaq -0x2c9(%rbp), %rdi
callq 0x4420
leaq -0x2a0(%rbp), %rdi
callq 0x4818
leaq -0x2a1(%rbp), %rdi
callq 0x4420
leaq -0x278(%rbp), %rdi
callq 0x4818
leaq -0x279(%rbp), %rdi
callq 0x4420
leaq -0x250(%rbp), %rdi
callq 0x4818
leaq -0x251(%rbp), %rdi
callq 0x4420
leaq -0x228(%rbp), %rdi
callq 0x4818
leaq -0x229(%rbp), %rdi
callq 0x4420
leaq -0x200(%rbp), %rdi
callq 0x4818
leaq -0x201(%rbp), %rdi
callq 0x4420
leaq -0x1d8(%rbp), %rdi
callq 0x4818
leaq -0x1d9(%rbp), %rdi
callq 0x4420
leaq -0x1b0(%rbp), %rdi
callq 0x4818
leaq -0x1b1(%rbp), %rdi
callq 0x4420
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0x180(%rbp), %rdi
callq 0xa7a0
jmp 0x550c
leaq -0x180(%rbp), %rdi
addq $0x98, %rdi
callq 0x6bc0
cmpq $0x2, %rax
je 0x5902
movq 0x8fa90(%rip), %rax     # 0x94fc0
movq (%rax), %rsi
leaq -0x180(%rbp), %rdi
movl $0x1, %edx
callq 0xaf60
jmp 0x5546
jmp 0x5902
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x6b4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x58da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x58ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x58c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x58aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5892
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x587a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x586e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5862
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x584a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5832
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x581a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x580e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5802
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x57ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x57d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x57ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x57ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x57a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x578a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5772
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x575a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x430(%rbp), %rdi
callq 0x4818
leaq -0x431(%rbp), %rdi
callq 0x4420
leaq -0x408(%rbp), %rdi
callq 0x4818
leaq -0x409(%rbp), %rdi
callq 0x4420
leaq -0x3e0(%rbp), %rdi
callq 0x4818
leaq -0x3e1(%rbp), %rdi
callq 0x4420
leaq -0x3b8(%rbp), %rdi
callq 0x4818
leaq -0x3b9(%rbp), %rdi
callq 0x4420
leaq -0x390(%rbp), %rdi
callq 0x4818
leaq -0x391(%rbp), %rdi
callq 0x4420
leaq -0x368(%rbp), %rdi
callq 0x4818
leaq -0x369(%rbp), %rdi
callq 0x4420
leaq -0x340(%rbp), %rdi
callq 0x4818
leaq -0x341(%rbp), %rdi
callq 0x4420
leaq -0x318(%rbp), %rdi
callq 0x4818
leaq -0x319(%rbp), %rdi
callq 0x4420
leaq -0x2f0(%rbp), %rdi
callq 0x4818
leaq -0x2f1(%rbp), %rdi
callq 0x4420
leaq -0x2c8(%rbp), %rdi
callq 0x4818
leaq -0x2c9(%rbp), %rdi
callq 0x4420
leaq -0x2a0(%rbp), %rdi
callq 0x4818
leaq -0x2a1(%rbp), %rdi
callq 0x4420
leaq -0x278(%rbp), %rdi
callq 0x4818
leaq -0x279(%rbp), %rdi
callq 0x4420
leaq -0x250(%rbp), %rdi
callq 0x4818
leaq -0x251(%rbp), %rdi
callq 0x4420
leaq -0x228(%rbp), %rdi
callq 0x4818
leaq -0x229(%rbp), %rdi
callq 0x4420
leaq -0x200(%rbp), %rdi
callq 0x4818
leaq -0x201(%rbp), %rdi
callq 0x4420
leaq -0x1d8(%rbp), %rdi
callq 0x4818
leaq -0x1d9(%rbp), %rdi
callq 0x4420
leaq -0x1b0(%rbp), %rdi
callq 0x4818
leaq -0x1b1(%rbp), %rdi
callq 0x4420
jmp 0x6b3e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x6b3e
leaq -0xe8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x6be0
movq %rax, %rsi
leaq -0x458(%rbp), %rdi
callq 0x41a0
jmp 0x5923
leaq -0xe8(%rbp), %rdi
movl $0x1, %esi
callq 0x6be0
movq %rax, %rsi
leaq -0x478(%rbp), %rdi
callq 0x41a0
jmp 0x5945
leaq -0x4a1(%rbp), %rdi
movq %rdi, -0x890(%rbp)
callq 0x46f0
movq -0x890(%rbp), %rdx
leaq 0x6172a(%rip), %rsi     # 0x67090
leaq -0x4a0(%rbp), %rdi
callq 0x4550
jmp 0x5974
leaq -0x180(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0xa8e0
movq %rax, -0x898(%rbp)
jmp 0x5990
movq -0x898(%rbp), %rax
movb 0x4a(%rax), %al
movb %al, -0x8a1(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0x4818
leaq -0x4a1(%rbp), %rdi
callq 0x4420
movb -0x8a1(%rbp), %al
andb $0x1, %al
movb %al, -0x479(%rbp)
leaq -0x4c9(%rbp), %rdi
movq %rdi, -0x8a0(%rbp)
callq 0x46f0
movq -0x8a0(%rbp), %rdx
movb $0x0, -0x4f2(%rbp)
movb $0x0, -0x4f3(%rbp)
leaq 0x6174e(%rip), %rsi     # 0x67143
leaq -0x4c8(%rbp), %rdi
callq 0x4550
jmp 0x5a03
leaq -0x180(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0xa8e0
movq %rax, -0x8b0(%rbp)
jmp 0x5a1f
movq -0x8b0(%rbp), %rcx
xorl %eax, %eax
testb $0x1, 0x4a(%rcx)
movb %al, -0x8b1(%rbp)
jne 0x5a9f
leaq -0x4f1(%rbp), %rdi
movq %rdi, -0x8c0(%rbp)
callq 0x46f0
movq -0x8c0(%rbp), %rdx
movb $0x1, -0x4f2(%rbp)
leaq 0x616aa(%rip), %rsi     # 0x67106
leaq -0x4f0(%rbp), %rdi
callq 0x4550
jmp 0x5a6a
movb $0x1, -0x4f3(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0xa8e0
movq %rax, -0x8c8(%rbp)
jmp 0x5a8d
movq -0x8c8(%rbp), %rax
movb 0x4a(%rax), %al
xorb $-0x1, %al
movb %al, -0x8b1(%rbp)
movb -0x8b1(%rbp), %al
movb %al, -0x8c9(%rbp)
testb $0x1, -0x4f3(%rbp)
jne 0x5ab6
jmp 0x5ac2
leaq -0x4f0(%rbp), %rdi
callq 0x4818
testb $0x1, -0x4f2(%rbp)
jne 0x5acd
jmp 0x5ad9
leaq -0x4f1(%rbp), %rdi
callq 0x4420
leaq -0x4c8(%rbp), %rdi
callq 0x4818
leaq -0x4c9(%rbp), %rdi
callq 0x4420
movb -0x8c9(%rbp), %al
testb $0x1, %al
jne 0x5b00
jmp 0x5c49
movq 0x8f4e1(%rip), %rdi     # 0x94fe8
leaq 0x615a8(%rip), %rsi     # 0x670b6
callq 0x43c0
movq %rax, -0x8d8(%rbp)
jmp 0x5b1c
movq -0x8d8(%rbp), %rdi
movq 0x8f46e(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x5b31
movl $0x1, %edi
callq 0x4470
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x6b32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5b84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0x4818
leaq -0x4a1(%rbp), %rdi
callq 0x4420
jmp 0x6b26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5c21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5c15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5bfc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
testb $0x1, -0x4f3(%rbp)
jne 0x5bee
jmp 0x5bfa
leaq -0x4f0(%rbp), %rdi
callq 0x4818
jmp 0x5bfc
testb $0x1, -0x4f2(%rbp)
jne 0x5c07
jmp 0x5c13
leaq -0x4f1(%rbp), %rdi
callq 0x4420
jmp 0x5c15
leaq -0x4c8(%rbp), %rdi
callq 0x4818
leaq -0x4c9(%rbp), %rdi
callq 0x4420
jmp 0x6b26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x6b26
leaq -0x519(%rbp), %rdi
movq %rdi, -0x8e0(%rbp)
callq 0x46f0
movq -0x8e0(%rbp), %rdx
movb $0x0, -0x542(%rbp)
movb $0x0, -0x543(%rbp)
leaq 0x614cb(%rip), %rsi     # 0x67143
leaq -0x518(%rbp), %rdi
callq 0x4550
jmp 0x5c86
leaq -0x180(%rbp), %rdi
leaq -0x518(%rbp), %rsi
callq 0xa8e0
movq %rax, -0x8e8(%rbp)
jmp 0x5ca2
movq -0x8e8(%rbp), %rcx
xorl %eax, %eax
testb $0x1, 0x4a(%rcx)
movb %al, -0x8e9(%rbp)
je 0x5d20
leaq -0x541(%rbp), %rdi
movq %rdi, -0x8f8(%rbp)
callq 0x46f0
movq -0x8f8(%rbp), %rdx
movb $0x1, -0x542(%rbp)
leaq 0x61427(%rip), %rsi     # 0x67106
leaq -0x540(%rbp), %rdi
callq 0x4550
jmp 0x5ced
movb $0x1, -0x543(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0xa8e0
movq %rax, -0x900(%rbp)
jmp 0x5d10
movq -0x900(%rbp), %rax
movb 0x4a(%rax), %al
movb %al, -0x8e9(%rbp)
movb -0x8e9(%rbp), %al
movb %al, -0x901(%rbp)
testb $0x1, -0x543(%rbp)
jne 0x5d37
jmp 0x5d43
leaq -0x540(%rbp), %rdi
callq 0x4818
testb $0x1, -0x542(%rbp)
jne 0x5d4e
jmp 0x5d5a
leaq -0x541(%rbp), %rdi
callq 0x4420
leaq -0x518(%rbp), %rdi
callq 0x4818
leaq -0x519(%rbp), %rdi
callq 0x4420
movb -0x901(%rbp), %al
testb $0x1, %al
jne 0x5d81
jmp 0x5e59
movq 0x8f260(%rip), %rdi     # 0x94fe8
leaq 0x6134f(%rip), %rsi     # 0x670de
callq 0x43c0
movq %rax, -0x910(%rbp)
jmp 0x5d9d
movq -0x910(%rbp), %rdi
movq 0x8f1ed(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x5db2
movl $0x1, %edi
callq 0x4470
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5e48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5e3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x5e23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
testb $0x1, -0x543(%rbp)
jne 0x5e15
jmp 0x5e21
leaq -0x540(%rbp), %rdi
callq 0x4818
jmp 0x5e23
testb $0x1, -0x542(%rbp)
jne 0x5e2e
jmp 0x5e3a
leaq -0x541(%rbp), %rdi
callq 0x4420
jmp 0x5e3c
leaq -0x518(%rbp), %rdi
callq 0x4818
leaq -0x519(%rbp), %rdi
callq 0x4420
jmp 0x6b26
leaq -0x569(%rbp), %rdi
movq %rdi, -0x918(%rbp)
callq 0x46f0
movq -0x918(%rbp), %rdx
leaq 0x612c9(%rip), %rsi     # 0x67143
leaq -0x568(%rbp), %rdi
callq 0x4550
jmp 0x5e88
leaq -0x180(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0xa8e0
movq %rax, -0x920(%rbp)
jmp 0x5ea4
movq -0x920(%rbp), %rax
movb 0x4a(%rax), %al
movb %al, -0x921(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x4818
leaq -0x569(%rbp), %rdi
callq 0x4420
movb -0x921(%rbp), %al
testb $0x1, %al
je 0x6223
leaq -0x591(%rbp), %rdi
movq %rdi, -0x930(%rbp)
callq 0x46f0
movq -0x930(%rbp), %rdx
leaq 0x61248(%rip), %rsi     # 0x67143
leaq -0x590(%rbp), %rdi
callq 0x4550
jmp 0x5f09
leaq -0x180(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0xa8e0
movq %rax, -0x938(%rbp)
jmp 0x5f25
movq -0x938(%rbp), %rdi
callq 0x9870
movq %rax, -0x940(%rbp)
jmp 0x5f3a
movq -0x940(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x4040
jmp 0x5f4c
leaq -0x590(%rbp), %rdi
callq 0x4818
leaq -0x591(%rbp), %rdi
callq 0x4420
movq 0x8f07d(%rip), %rdi     # 0x94fe8
leaq 0x611a0(%rip), %rsi     # 0x67112
callq 0x43c0
movq %rax, -0x948(%rbp)
jmp 0x5f80
movq -0x948(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x4380
movq %rax, -0x950(%rbp)
jmp 0x5f99
movq -0x950(%rbp), %rdi
movq 0x8eff1(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x5fae
leaq -0x5b8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x41a0
jmp 0x5fc0
movzbl -0x479(%rbp), %ecx
andl $0x1, %ecx
leaq -0x5b8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
leaq -0x54(%rbp), %rdx
callq 0x554c0
movl %eax, -0x954(%rbp)
jmp 0x5fe9
leaq -0x5b8(%rbp), %rdi
callq 0x4818
movl -0x954(%rbp), %eax
movl %eax, -0x598(%rbp)
cmpl $0x0, -0x598(%rbp)
jge 0x60f2
movq 0x8efd3(%rip), %rdi     # 0x94fe8
leaq 0x6110a(%rip), %rsi     # 0x67126
callq 0x43c0
movq %rax, -0x960(%rbp)
jmp 0x602a
movq -0x960(%rbp), %rdi
movq 0x8ef60(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x603f
movl $0x1, %edi
callq 0x4470
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x607b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x4818
leaq -0x569(%rbp), %rdi
callq 0x4420
jmp 0x6b26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x60be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x590(%rbp), %rdi
callq 0x4818
leaq -0x591(%rbp), %rdi
callq 0x4420
jmp 0x6b26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x5b8(%rbp), %rdi
callq 0x4818
jmp 0x6b26
movq 0x8eeef(%rip), %rdi     # 0x94fe8
leaq 0x613f4(%rip), %rsi     # 0x674f4
callq 0x43c0
movq %rax, -0x968(%rbp)
jmp 0x610e
movq -0x968(%rbp), %rdi
leaq 0x61032(%rip), %rsi     # 0x6714e
callq 0x43c0
movq %rax, -0x970(%rbp)
jmp 0x612a
leaq -0x88(%rbp), %rdi
callq 0x6c00
movq -0x970(%rbp), %rdi
movq %rax, %rsi
callq 0x40f0
movq %rax, -0x978(%rbp)
jmp 0x614e
movq -0x978(%rbp), %rdi
movq 0x8ee3c(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x6163
movq 0x8ee7e(%rip), %rdi     # 0x94fe8
leaq 0x61383(%rip), %rsi     # 0x674f4
callq 0x43c0
movq %rax, -0x980(%rbp)
jmp 0x617f
movq -0x980(%rbp), %rdi
leaq 0x60fc8(%rip), %rsi     # 0x67155
callq 0x43c0
movq %rax, -0x988(%rbp)
jmp 0x619b
movq -0x988(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x46d0
movq %rax, -0x990(%rbp)
jmp 0x61b3
movq -0x990(%rbp), %rdi
movq 0x8edd7(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x61c8
movl $0x120, %edi            # imm = 0x120
callq 0x43d0
movq %rax, -0x998(%rbp)
jmp 0x61db
movq -0x998(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x1ade0
jmp 0x61f0
movq -0x998(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x6223
movq -0x998(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
callq 0x43a0
jmp 0x6b26
leaq -0x5d9(%rbp), %rdi
movq %rdi, -0x9a0(%rbp)
callq 0x46f0
movq -0x9a0(%rbp), %rdx
leaq 0x60ec2(%rip), %rsi     # 0x67106
leaq -0x5d8(%rbp), %rdi
callq 0x4550
jmp 0x6252
leaq -0x180(%rbp), %rdi
leaq -0x5d8(%rbp), %rsi
callq 0xa8e0
movq %rax, -0x9a8(%rbp)
jmp 0x626e
movq -0x9a8(%rbp), %rax
movb 0x4a(%rax), %al
movb %al, -0x9a9(%rbp)
leaq -0x5d8(%rbp), %rdi
callq 0x4818
leaq -0x5d9(%rbp), %rdi
callq 0x4420
movb -0x9a9(%rbp), %al
testb $0x1, %al
je 0x65ba
movb $0x0, -0xc1(%rbp)
leaq -0x601(%rbp), %rdi
movq %rdi, -0x9b8(%rbp)
callq 0x46f0
movq -0x9b8(%rbp), %rdx
leaq 0x60e3a(%rip), %rsi     # 0x67106
leaq -0x600(%rbp), %rdi
callq 0x4550
jmp 0x62da
leaq -0x180(%rbp), %rdi
leaq -0x600(%rbp), %rsi
callq 0xa8e0
movq %rax, -0x9c0(%rbp)
jmp 0x62f6
movq -0x9c0(%rbp), %rdi
callq 0x9870
movq %rax, -0x9c8(%rbp)
jmp 0x630b
movq -0x9c8(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x4040
jmp 0x631d
leaq -0x600(%rbp), %rdi
callq 0x4818
leaq -0x601(%rbp), %rdi
callq 0x4420
movq 0x8ecac(%rip), %rdi     # 0x94fe8
leaq 0x60e2a(%rip), %rsi     # 0x6716d
callq 0x43c0
movq %rax, -0x9d0(%rbp)
jmp 0x6351
movq -0x9d0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x4380
movq %rax, -0x9d8(%rbp)
jmp 0x636a
movq -0x9d8(%rbp), %rdi
movq 0x8ec20(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x637f
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x5f1a0
movl %eax, -0x9dc(%rbp)
jmp 0x6397
movl -0x9dc(%rbp), %eax
movl %eax, -0x608(%rbp)
leaq -0xc0(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x5fd40
jmp 0x63b8
movl $0x120, %edi            # imm = 0x120
callq 0x43d0
movq %rax, -0x9e8(%rbp)
jmp 0x63cb
movq -0x9e8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x1ade0
jmp 0x63e0
movq -0x9e8(%rbp), %rax
movq %rax, -0x90(%rbp)
cmpl $0x0, -0x608(%rbp)
jge 0x64df
movq 0x8ebe6(%rip), %rdi     # 0x94fe8
leaq 0x60d79(%rip), %rsi     # 0x67182
callq 0x43c0
movq %rax, -0x9f0(%rbp)
jmp 0x6417
movq -0x9f0(%rbp), %rdi
movq 0x8eb73(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x642c
movl $0x1, %edi
callq 0x4470
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x6468
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x5d8(%rbp), %rdi
callq 0x4818
leaq -0x5d9(%rbp), %rdi
callq 0x4420
jmp 0x6b26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x64ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x600(%rbp), %rdi
callq 0x4818
leaq -0x601(%rbp), %rdi
callq 0x4420
jmp 0x6b26
movq -0x9e8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
callq 0x43a0
jmp 0x6b26
movq 0x8eb02(%rip), %rdi     # 0x94fe8
leaq 0x61007(%rip), %rsi     # 0x674f4
callq 0x43c0
movq %rax, -0x9f8(%rbp)
jmp 0x64fb
movq -0x9f8(%rbp), %rdi
leaq 0x60ca2(%rip), %rsi     # 0x671ab
callq 0x43c0
movq %rax, -0xa00(%rbp)
jmp 0x6517
leaq -0xc0(%rbp), %rdi
callq 0x6c20
movq -0xa00(%rbp), %rdi
movq %rax, %rsi
callq 0x40f0
movq %rax, -0xa08(%rbp)
jmp 0x653b
movq -0xa08(%rbp), %rdi
movq 0x8ea4f(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x6550
movq 0x8ea91(%rip), %rdi     # 0x94fe8
leaq 0x60f96(%rip), %rsi     # 0x674f4
callq 0x43c0
movq %rax, -0xa10(%rbp)
jmp 0x656c
movq -0xa10(%rbp), %rdi
leaq 0x60c3e(%rip), %rsi     # 0x671b8
callq 0x43c0
movq %rax, -0xa18(%rbp)
jmp 0x6588
movq -0xa18(%rbp), %rdi
movl -0x608(%rbp), %esi
callq 0x46d0
movq %rax, -0xa20(%rbp)
jmp 0x65a3
movq -0xa20(%rbp), %rdi
movq 0x8e9e7(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x65b8
jmp 0x65ba
movq 0x8ea27(%rip), %rdi     # 0x94fe8
leaq 0x60bfe(%rip), %rsi     # 0x671c6
callq 0x43c0
movq %rax, -0xa28(%rbp)
jmp 0x65d6
movq -0xa28(%rbp), %rdi
movq 0x8e9b4(%rip), %rsi     # 0x94f98
callq 0x4400
jmp 0x65eb
leaq -0x630(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0x41a0
jmp 0x6600
leaq -0x610(%rbp), %rdi
leaq -0x630(%rbp), %rsi
callq 0x8510
jmp 0x6615
leaq -0x630(%rbp), %rdi
callq 0x4818
leaq -0x658(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x41a0
jmp 0x6636
leaq -0x638(%rbp), %rdi
leaq -0x658(%rbp), %rsi
callq 0x88d0
jmp 0x664b
leaq -0x658(%rbp), %rdi
callq 0x4818
leaq -0x678(%rbp), %rdi
callq 0x4560
leaq -0x610(%rbp), %rdi
leaq -0x678(%rbp), %rsi
callq 0x6c40
movb %al, -0xa29(%rbp)
jmp 0x667e
movb -0xa29(%rbp), %al
testb $0x1, %al
jne 0x668d
jmp 0x6ab5
leaq -0x6a8(%rbp), %rdi
callq 0x6b80
leaq -0x6d8(%rbp), %rdi
callq 0x6ba0
leaq -0x6f0(%rbp), %rdi
callq 0x6c70
testb $0x1, -0xc1(%rbp)
je 0x677d
movq -0x90(%rbp), %rdi
movzbl -0x479(%rbp), %r8d
andl $0x1, %r8d
leaq -0x678(%rbp), %rsi
leaq -0x6a8(%rbp), %rdx
leaq -0x6f0(%rbp), %rcx
callq 0x429e0
jmp 0x66ed
jmp 0x67f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x630(%rbp), %rdi
callq 0x4818
jmp 0x6b26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x6b1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x658(%rbp), %rdi
callq 0x4818
jmp 0x6b1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x6b02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x6a8f
movq -0x90(%rbp), %rcx
leaq 0x8ecad(%rip), %rdx     # 0x95438
leaq -0x768(%rbp), %rdi
leaq -0x678(%rbp), %rsi
xorl %r8d, %r8d
callq 0x21a80
jmp 0x67a3
leaq -0xc0(%rbp), %rdi
leaq -0x768(%rbp), %rsi
leaq -0x6d8(%rbp), %rdx
leaq -0x6f0(%rbp), %rcx
callq 0x43f40
jmp 0x67c6
leaq -0x768(%rbp), %rdi
callq 0x23ff0
jmp 0x67f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x768(%rbp), %rdi
callq 0x23ff0
jmp 0x6a8f
leaq -0x638(%rbp), %rdi
leaq -0x678(%rbp), %rsi
callq 0x8b70
movq %rax, -0xa38(%rbp)
jmp 0x6813
leaq -0x789(%rbp), %rdi
movq %rdi, -0xa40(%rbp)
callq 0x46f0
movq -0xa40(%rbp), %rdx
leaq 0x60cc0(%rip), %rsi     # 0x674f4
leaq -0x788(%rbp), %rdi
callq 0x4550
jmp 0x6842
movq -0xa38(%rbp), %rdi
leaq -0x788(%rbp), %rsi
callq 0x8b70
jmp 0x6857
leaq -0x788(%rbp), %rdi
callq 0x4818
leaq -0x789(%rbp), %rdi
callq 0x4420
movl $0x0, -0x790(%rbp)
movl -0x790(%rbp), %eax
movq %rax, -0xa48(%rbp)
leaq -0x6f0(%rbp), %rdi
callq 0x6c90
movq %rax, %rcx
movq -0xa48(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x69cc
movl -0x790(%rbp), %eax
movl %eax, %esi
leaq -0x6f0(%rbp), %rdi
callq 0x6cb0
movsd (%rax), %xmm0
leaq -0x638(%rbp), %rdi
callq 0x8ca0
movq %rax, -0xa50(%rbp)
jmp 0x68d6
leaq -0x7b1(%rbp), %rdi
movq %rdi, -0xa58(%rbp)
callq 0x46f0
movq -0xa58(%rbp), %rdx
leaq 0x60a6f(%rip), %rsi     # 0x67366
leaq -0x7b0(%rbp), %rdi
callq 0x4550
jmp 0x6905
movq -0xa50(%rbp), %rdi
leaq -0x7b0(%rbp), %rsi
callq 0x8b70
jmp 0x691a
leaq -0x7b0(%rbp), %rdi
callq 0x4818
leaq -0x7b1(%rbp), %rdi
callq 0x4420
movl -0x790(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x790(%rbp)
jmp 0x6879
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x6978
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x788(%rbp), %rdi
callq 0x4818
leaq -0x789(%rbp), %rdi
callq 0x4420
jmp 0x6a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x69bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x7b0(%rbp), %rdi
callq 0x4818
leaq -0x7b1(%rbp), %rdi
callq 0x4420
jmp 0x6a8f
leaq -0x7d9(%rbp), %rdi
movq %rdi, -0xa60(%rbp)
callq 0x46f0
movq -0xa60(%rbp), %rdx
leaq 0x60963(%rip), %rsi     # 0x67350
leaq -0x7d8(%rbp), %rdi
callq 0x4550
jmp 0x69fb
leaq -0x638(%rbp), %rdi
leaq -0x7d8(%rbp), %rsi
callq 0x8b70
jmp 0x6a10
leaq -0x7d8(%rbp), %rdi
callq 0x4818
leaq -0x7d9(%rbp), %rdi
callq 0x4420
leaq -0x6f0(%rbp), %rdi
callq 0x6cd0
leaq -0x6d8(%rbp), %rdi
callq 0x6d30
leaq -0x6a8(%rbp), %rdi
callq 0x6d50
jmp 0x6663
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x6a83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x7d8(%rbp), %rdi
callq 0x4818
leaq -0x7d9(%rbp), %rdi
callq 0x4420
leaq -0x6f0(%rbp), %rdi
callq 0x6cd0
leaq -0x6d8(%rbp), %rdi
callq 0x6d30
leaq -0x6a8(%rbp), %rdi
callq 0x6d50
jmp 0x6b02
leaq -0x638(%rbp), %rdi
callq 0x8b10
jmp 0x6ac3
cmpq $0x0, -0x90(%rbp)
je 0x6afb
movq -0x90(%rbp), %rax
movq %rax, -0xa68(%rbp)
cmpq $0x0, %rax
je 0x6af9
movq -0xa68(%rbp), %rdi
callq 0x1b350
movq -0xa68(%rbp), %rdi
callq 0x43a0
jmp 0x6afb
xorl %edi, %edi
callq 0x4470
leaq -0x678(%rbp), %rdi
callq 0x4818
leaq -0x638(%rbp), %rdi
callq 0x8ae0
leaq -0x610(%rbp), %rdi
callq 0x8720
leaq -0x478(%rbp), %rdi
callq 0x4818
leaq -0x458(%rbp), %rdi
callq 0x4818
leaq -0x180(%rbp), %rdi
callq 0x6d70
leaq -0xc0(%rbp), %rdi
callq 0x6d30
leaq -0x88(%rbp), %rdi
callq 0x6d50
leaq -0x50(%rbp), %rdi
callq 0x4818
leaq -0x30(%rbp), %rdi
callq 0x4818
movq -0x188(%rbp), %rdi
callq 0x46e0