// File: shangjingbo1226[P]MACFP/src/methods/MACFP.cpp
// Function: main
int main(int argc, char* argv[])
{
    loadConfiguration(argc, argv);

    cout << "settings:" << endl;
    cout << "\tfilename = " << DNA_FILENAME << endl;
    cout << "\tmin_sup = " << MIN_SUP << endl;
    cout << "\tlen_thres = " << LEN_THRES << endl;
    cout << "\tedit_thres = " << EDIT_DIS_THRES << endl;

    double start = clock();

    string dna = loadDNASequence();

    cerr << "n = " << dna.size() << endl;

    size_t n = dna.size();

    s = new String(dna);
    reverse(dna.begin(), dna.end());
    rev_s = new String(dna);
    reverse(dna.begin(), dna.end());

    prefixSum.resize(alphabet.size(), vector<int>(dna.size() + 1, 0));
    for (int i = 0; i < dna.size(); ++ i) {
        for (int j = 0; j < alphabet.size(); ++ j) {
            prefixSum[j][i + 1] = prefixSum[j][i];
        }
        int index = alphabet.find(dna[i]);
        prefixSum[index][i + 1] += 1;
    }

    cerr << "initialization done" << endl;

    FILE* out = tryOpen(OUTPUT_FILENAME, "w");
    int lastJ = -1;
    int cnt = 0;
    for (int i = 0, j = 0; i + LEN_THRES - 1 < n; ++ i) {
        j = max(j, i + LEN_THRES - 1);

        bufferLeft.clear();
        vector<PII> sup = getSup(i, j);
        while (j < n && sup.size() >= MIN_SUP) {
            bufferRight.clear();
            vector<PII> newSup = getSup(i, j);
            if (newSup.size() >= MIN_SUP) {
                sup = newSup;
                ++ j;
            } else {
                break;
            }
        }

        if (j > lastJ && sup.size() >= MIN_SUP) {
            //cerr << i << " " << j - 1 << endl;
            lastJ = j;
            fprintf(out, "%d %d ", i, j - 1);
            for (int k = i; k < j; ++ k) {
                fprintf(out, "%c", dna[k]);
            }
            fprintf(out, "\n");
            fprintf(out, "supports: %d\n", sup.size());
            FOR (pair, sup) {
                fprintf(out, "\t%d %d ", pair->first, pair->second);
                for (int k = pair->first; k <= pair->second; ++ k) {
                    fprintf(out, "%c", dna[k]);
                }
                fprintf(out, "\n");
            }
            cnt ++;
        }
    }
    cerr << "# approximate patterns = " << cnt << endl;
    cerr << "counter = " << counter << endl;
    fclose(out);

    cout << "running time: " << (clock() - start) / CLOCKS_PER_SEC << endl;
    cout << "# of patterns: " << cnt << endl;

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2c0, %rsp            # imm = 0x2C0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x3f20
movq 0x21d2c(%rip), %rdi     # 0x28fc8
movq %rdi, -0x1b8(%rbp)
leaq 0x14e80(%rip), %rsi     # 0x1c12a
callq 0x3250
movq %rax, %rdi
movq 0x21cf7(%rip), %rsi     # 0x28fb0
movq %rsi, -0x1b0(%rbp)
callq 0x32a0
movq -0x1b8(%rbp), %rdi
leaq 0x14e61(%rip), %rsi     # 0x1c134
callq 0x3250
movq %rax, %rdi
leaq 0x5f800c6(%rip), %rsi   # 0x5f873a8
callq 0x3220
movq -0x1b0(%rbp), %rsi
movq %rax, %rdi
callq 0x32a0
movq -0x1b8(%rbp), %rdi
leaq 0x14e3d(%rip), %rsi     # 0x1c141
callq 0x3250
movq %rax, %rdi
movl 0x21f52(%rip), %esi     # 0x29264
callq 0x3410
movq -0x1b0(%rbp), %rsi
movq %rax, %rdi
callq 0x32a0
movq -0x1b8(%rbp), %rdi
leaq 0x14e19(%rip), %rsi     # 0x1c14d
callq 0x3250
movq %rax, %rdi
movl 0x21f2a(%rip), %esi     # 0x2926c
callq 0x3410
movq -0x1b0(%rbp), %rsi
movq %rax, %rdi
callq 0x32a0
movq -0x1b8(%rbp), %rdi
leaq 0x14df7(%rip), %rsi     # 0x1c15b
callq 0x3250
movq %rax, %rdi
movl 0x21ef6(%rip), %esi     # 0x29268
callq 0x3410
movq -0x1b0(%rbp), %rsi
movq %rax, %rdi
callq 0x32a0
callq 0x3170
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x41e0
movq 0x21c4b(%rip), %rdi     # 0x28ff0
leaq 0x14dbe(%rip), %rsi     # 0x1c16a
callq 0x3250
movq %rax, -0x1a8(%rbp)
jmp 0x73ba
leaq -0x38(%rbp), %rdi
callq 0x31a0
movq -0x1a8(%rbp), %rdi
movq %rax, %rsi
callq 0x3080
movq %rax, -0x1c0(%rbp)
jmp 0x73db
movq -0x1c0(%rbp), %rdi
movq 0x21bc7(%rip), %rsi     # 0x28fb0
callq 0x32a0
jmp 0x73f0
leaq -0x38(%rbp), %rdi
callq 0x31a0
movq %rax, -0x50(%rbp)
movl $0x38, %edi
callq 0x3270
movq %rax, -0x1c8(%rbp)
jmp 0x7410
movb $0x1, -0x71(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x30f0
jmp 0x7423
movq -0x1c8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x91d0
jmp 0x7435
movq -0x1c8(%rbp), %rax
movb $0x0, -0x71(%rbp)
movq %rax, 0x5f7ffc1(%rip)   # 0x5f87408
leaq -0x70(%rbp), %rdi
callq 0x34a8
leaq -0x38(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x3200
movq -0x1d0(%rbp), %rdi
movq %rax, -0x80(%rbp)
callq 0x3140
movq %rax, -0x88(%rbp)
movq -0x80(%rbp), %rdi
movq -0x88(%rbp), %rsi
callq 0x96f0
jmp 0x7489
movl $0x38, %edi
callq 0x3270
movq %rax, -0x1d8(%rbp)
jmp 0x749c
movb $0x1, -0xa9(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x30f0
jmp 0x74b5
movq -0x1d8(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x91d0
jmp 0x74ca
movq -0x1d8(%rbp), %rax
movb $0x0, -0xa9(%rbp)
movq %rax, 0x5f7ff31(%rip)   # 0x5f87410
leaq -0xa8(%rbp), %rdi
callq 0x34a8
leaq -0x38(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
callq 0x3200
movq -0x1e0(%rbp), %rdi
movq %rax, -0xb8(%rbp)
callq 0x3140
movq %rax, -0xc0(%rbp)
movq -0xb8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
callq 0x96f0
jmp 0x752a
leaq 0x5f7feb7(%rip), %rdi   # 0x5f873e8
callq 0x31a0
movq %rax, -0x1f8(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x31a0
incq %rax
movq %rax, -0x1f0(%rbp)
movl $0x0, -0xdc(%rbp)
leaq -0xdd(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x84b0
movq -0x1f0(%rbp), %rsi
movq -0x1e8(%rbp), %rcx
leaq -0xd8(%rbp), %rdi
leaq -0xdc(%rbp), %rdx
callq 0x84d0
jmp 0x7590
movq -0x1f8(%rbp), %rsi
leaq 0x5f7fe7a(%rip), %rdi   # 0x5f87418
leaq -0xd8(%rbp), %rdx
callq 0x9730
jmp 0x75ac
leaq -0xd8(%rbp), %rdi
callq 0x8640
leaq -0xdd(%rbp), %rdi
callq 0x8550
movl $0x0, -0xe4(%rbp)
movslq -0xe4(%rbp), %rax
movq %rax, -0x200(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x31a0
movq %rax, %rcx
movq -0x200(%rbp), %rax
cmpq %rcx, %rax
jae 0x77e7
movl $0x0, -0xe8(%rbp)
movslq -0xe8(%rbp), %rax
movq %rax, -0x208(%rbp)
leaq 0x5f7fdd1(%rip), %rdi   # 0x5f873e8
callq 0x31a0
movq %rax, %rcx
movq -0x208(%rbp), %rax
cmpq %rcx, %rax
jae 0x776c
movslq -0xe8(%rbp), %rsi
leaq 0x5f7fddb(%rip), %rdi   # 0x5f87418
callq 0x8ee0
movq %rax, %rdi
movslq -0xe4(%rbp), %rsi
callq 0x8590
movl (%rax), %eax
movl %eax, -0x20c(%rbp)
movslq -0xe8(%rbp), %rsi
leaq 0x5f7fdb1(%rip), %rdi   # 0x5f87418
callq 0x8ee0
movq %rax, %rdi
movl -0xe4(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rsi
callq 0x8590
movl -0x20c(%rbp), %ecx
movl %ecx, (%rax)
movl -0xe8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe8(%rbp)
jmp 0x7602
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x7ec3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x76d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x34a8
testb $0x1, -0x71(%rbp)
jne 0x76d8
jmp 0x76e9
movq -0x1c8(%rbp), %rdi
movl $0x38, %esi
callq 0x3280
jmp 0x7ec3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x7714
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x34a8
testb $0x1, -0xa9(%rbp)
jne 0x771f
jmp 0x7730
movq -0x1d8(%rbp), %rdi
movl $0x38, %esi
callq 0x3280
jmp 0x7ec3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x775b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x8640
leaq -0xdd(%rbp), %rdi
callq 0x8550
jmp 0x7ec3
movslq -0xe4(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x3490
movq %rax, -0x218(%rbp)
jmp 0x7785
movq -0x218(%rbp), %rax
leaq 0x5f7fc55(%rip), %rdi   # 0x5f873e8
xorl %ecx, %ecx
movl %ecx, %edx
movsbl (%rax), %esi
callq 0x3330
movl %eax, -0xec(%rbp)
movslq -0xec(%rbp), %rsi
leaq 0x5f7fc65(%rip), %rdi   # 0x5f87418
callq 0x8ee0
movq %rax, %rdi
movl -0xe4(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rsi
callq 0x8590
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movl -0xe4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe4(%rbp)
jmp 0x75ce
movq 0x21802(%rip), %rdi     # 0x28ff0
leaq 0x1497a(%rip), %rsi     # 0x1c16f
callq 0x3250
movq %rax, -0x220(%rbp)
jmp 0x7803
movq -0x220(%rbp), %rdi
movq 0x2179f(%rip), %rsi     # 0x28fb0
callq 0x32a0
jmp 0x7818
leaq 0x5f7fba9(%rip), %rsi   # 0x5f873c8
leaq -0x118(%rbp), %rdi
callq 0x30f0
jmp 0x782d
leaq -0x139(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x3430
movq -0x228(%rbp), %rdx
leaq 0x14935(%rip), %rsi     # 0x1c183
leaq -0x138(%rbp), %rdi
callq 0x8300
jmp 0x785c
leaq -0x118(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x3cc0
movq %rax, -0x230(%rbp)
jmp 0x7878
leaq -0x138(%rbp), %rdi
callq 0x34a8
leaq -0x139(%rbp), %rdi
callq 0x32c0
leaq -0x118(%rbp), %rdi
callq 0x34a8
movq -0x230(%rbp), %rax
movq %rax, -0xf8(%rbp)
movl $0xffffffff, -0x140(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x144(%rbp)
movl $0x0, -0x148(%rbp)
movl $0x0, -0x14c(%rbp)
movl -0x148(%rbp), %eax
addl 0x2198e(%rip), %eax     # 0x2926c
subl $0x1, %eax
cltq
cmpq -0x50(%rbp), %rax
jae 0x7d46
movl -0x148(%rbp), %edx
movl 0x21973(%rip), %eax     # 0x2926c
movl %eax, %ecx
movl %edx, %eax
leal -0x1(%rax,%rcx), %eax
movl %eax, -0x150(%rbp)
leaq -0x14c(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x8be0
movq %rax, -0x238(%rbp)
jmp 0x7923
movq -0x238(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x14c(%rbp)
leaq 0x5f7faf7(%rip), %rdi   # 0x5f87430
callq 0x97e0
movl -0x148(%rbp), %esi
movl -0x14c(%rbp), %edx
leaq -0x168(%rbp), %rdi
callq 0x63e0
jmp 0x7958
jmp 0x795a
movslq -0x14c(%rbp), %rcx
xorl %eax, %eax
cmpq -0x50(%rbp), %rcx
movb %al, -0x239(%rbp)
jae 0x798e
leaq -0x168(%rbp), %rdi
callq 0x80c0
movslq 0x218e2(%rip), %rcx     # 0x29264
cmpq %rcx, %rax
setae %al
movb %al, -0x239(%rbp)
movb -0x239(%rbp), %al
testb $0x1, %al
jne 0x799d
jmp 0x7aab
leaq 0x5f7fac4(%rip), %rdi   # 0x5f87468
callq 0x97e0
movl -0x148(%rbp), %esi
movl -0x14c(%rbp), %edx
leaq -0x180(%rbp), %rdi
callq 0x63e0
jmp 0x79c3
leaq -0x180(%rbp), %rdi
callq 0x80c0
movslq 0x2188e(%rip), %rcx     # 0x29264
cmpq %rcx, %rax
jb 0x7a76
leaq -0x168(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x9800
jmp 0x79f4
movl -0x14c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14c(%rbp)
jmp 0x7a82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x7a2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x34a8
leaq -0x139(%rbp), %rdi
callq 0x32c0
leaq -0x118(%rbp), %rdi
callq 0x34a8
jmp 0x7ec3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x7d35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x8170
jmp 0x7d35
movl $0xc, -0x184(%rbp)
jmp 0x7a8c
movl $0x0, -0x184(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x8170
movl -0x184(%rbp), %eax
testl %eax, %eax
je 0x7aa6
jmp 0x7aa4
jmp 0x7aab
jmp 0x795a
movl -0x14c(%rbp), %eax
cmpl -0x140(%rbp), %eax
jle 0x7d15
leaq -0x168(%rbp), %rdi
callq 0x80c0
movslq 0x21794(%rip), %rcx     # 0x29264
cmpq %rcx, %rax
jb 0x7d15
movl -0x14c(%rbp), %eax
movl %eax, -0x140(%rbp)
movq -0xf8(%rbp), %rdi
movl -0x148(%rbp), %edx
movl -0x14c(%rbp), %ecx
subl $0x1, %ecx
leaq 0x14695(%rip), %rsi     # 0x1c197
movb $0x0, %al
callq 0x3370
movl -0x148(%rbp), %eax
movl %eax, -0x188(%rbp)
movl -0x188(%rbp), %eax
cmpl -0x14c(%rbp), %eax
jge 0x7b7a
movq -0xf8(%rbp), %rax
movq %rax, -0x250(%rbp)
movslq -0x188(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x3490
movq %rax, -0x248(%rbp)
jmp 0x7b4a
movq -0x250(%rbp), %rdi
movq -0x248(%rbp), %rax
movsbl (%rax), %edx
leaq 0x14623(%rip), %rsi     # 0x1c185
movb $0x0, %al
callq 0x3370
movl -0x188(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x188(%rbp)
jmp 0x7b15
movq -0xf8(%rbp), %rdi
leaq 0x1460c(%rip), %rsi     # 0x1c194
movb $0x0, %al
callq 0x3370
movq -0xf8(%rbp), %rax
movq %rax, -0x258(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x80c0
movq -0x258(%rbp), %rdi
movq %rax, %rdx
leaq 0x145ce(%rip), %rsi     # 0x1c188
movb $0x0, %al
callq 0x3370
leaq -0x168(%rbp), %rdi
callq 0x7f30
movq %rax, -0x190(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x7f60
movq %rax, -0x198(%rbp)
leaq -0x190(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x9a50
testb $0x1, %al
jne 0x7c03
jmp 0x7d06
movq -0xf8(%rbp), %rax
movq %rax, -0x268(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x9a90
movl (%rax), %eax
movl %eax, -0x25c(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x9a90
movq -0x268(%rbp), %rdi
movl -0x25c(%rbp), %edx
movl 0x4(%rax), %ecx
leaq 0x1454e(%rip), %rsi     # 0x1c196
movb $0x0, %al
callq 0x3370
leaq -0x190(%rbp), %rdi
callq 0x9a90
movl (%rax), %eax
movl %eax, -0x19c(%rbp)
movl -0x19c(%rbp), %eax
movl %eax, -0x26c(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x9a90
movq %rax, %rcx
movl -0x26c(%rbp), %eax
cmpl 0x4(%rcx), %eax
jg 0x7ce0
movq -0xf8(%rbp), %rax
movq %rax, -0x280(%rbp)
movslq -0x19c(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x3490
movq %rax, -0x278(%rbp)
jmp 0x7cb0
movq -0x280(%rbp), %rdi
movq -0x278(%rbp), %rax
movsbl (%rax), %edx
leaq 0x144bd(%rip), %rsi     # 0x1c185
movb $0x0, %al
callq 0x3370
movl -0x19c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x19c(%rbp)
jmp 0x7c63
movq -0xf8(%rbp), %rdi
leaq 0x144a6(%rip), %rsi     # 0x1c194
movb $0x0, %al
callq 0x3370
leaq -0x190(%rbp), %rdi
callq 0x9ab0
jmp 0x7bd4
movl -0x144(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x144(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x8170
movl -0x148(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x148(%rbp)
jmp 0x78d2
leaq -0x168(%rbp), %rdi
callq 0x8170
jmp 0x7ec3
movq 0x212a3(%rip), %rdi     # 0x28ff0
leaq 0x1444a(%rip), %rsi     # 0x1c19e
callq 0x3250
movq %rax, -0x288(%rbp)
jmp 0x7d62
movq -0x288(%rbp), %rdi
movl -0x144(%rbp), %esi
callq 0x3410
movq %rax, -0x290(%rbp)
jmp 0x7d7d
movq -0x290(%rbp), %rdi
movq 0x21225(%rip), %rsi     # 0x28fb0
callq 0x32a0
jmp 0x7d92
movq 0x21257(%rip), %rdi     # 0x28ff0
leaq 0x14418(%rip), %rsi     # 0x1c1b8
callq 0x3250
movq %rax, -0x298(%rbp)
jmp 0x7dae
movq -0x298(%rbp), %rdi
movl 0x5f7f6e5(%rip), %esi   # 0x5f874a0
callq 0x3410
movq %rax, -0x2a0(%rbp)
jmp 0x7dc9
movq -0x2a0(%rbp), %rdi
movq 0x211d9(%rip), %rsi     # 0x28fb0
callq 0x32a0
jmp 0x7dde
movq -0xf8(%rbp), %rdi
callq 0x3260
jmp 0x7dec
movq 0x211d5(%rip), %rdi     # 0x28fc8
leaq 0x143c9(%rip), %rsi     # 0x1c1c3
callq 0x3250
movq %rax, -0x2a8(%rbp)
jmp 0x7e08
callq 0x3170
movq -0x2a8(%rbp), %rdi
cvtsi2sd %rax, %xmm0
movsd -0x18(%rbp), %xmm1
subsd %xmm1, %xmm0
movsd 0x141de(%rip), %xmm1    # 0x1c008
divsd %xmm1, %xmm0
callq 0x3450
movq %rax, -0x2b0(%rbp)
jmp 0x7e3c
movq -0x2b0(%rbp), %rdi
movq 0x21166(%rip), %rsi     # 0x28fb0
callq 0x32a0
jmp 0x7e51
movq 0x21170(%rip), %rdi     # 0x28fc8
leaq 0x14373(%rip), %rsi     # 0x1c1d2
callq 0x3250
movq %rax, -0x2b8(%rbp)
jmp 0x7e6d
movq -0x2b8(%rbp), %rdi
movl -0x144(%rbp), %esi
callq 0x3410
movq %rax, -0x2c0(%rbp)
jmp 0x7e88
movq -0x2c0(%rbp), %rdi
movq 0x2111a(%rip), %rsi     # 0x28fb0
callq 0x32a0
jmp 0x7e9d
movl $0x0, -0x4(%rbp)
movl $0x1, -0x184(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x34a8
movl -0x4(%rbp), %eax
addq $0x2c0, %rsp            # imm = 0x2C0
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0x34a8
movq -0x40(%rbp), %rdi
callq 0x3420
nopw %cs:(%rax,%rax)
nop