// File: lemire[P]runningmaxmin/runningmaxmin.cpp
// Function: main
int main(int params, char ** args) {
    int whitesize = 0;
    int walksize = 0;
    int times = 1;
    int sinesize = 0;
    floattype sineperiod = 0.0;
    int windowbegin = 10;
    int windowend = 11;
    bool doslow = true;
    bool cininput = false;
    std::vector<floattype> data(0);
    for (int i = 1; i < params; ++i) {
        if (strcmp(args[i], "--skipslow") == 0) {
            doslow = false;
        }
        if (strcmp(args[i], "--pipedata") == 0) {
            cininput = true;
        }
        if (strcmp(args[i], "--unit") == 0) {
            std::cout << "OK " << std::endl;
            return 0;
        }
        if (strcmp(args[i], "--window") == 0) {
            if (params - i > 1) {
                windowbegin = atoi(args[++i]);
                windowend = windowbegin + 1;
            } else {
                std::cerr << "--window expects an integer (length)"
                          << std::endl;
                return -1;
            }
            continue;
        }
        if (strcmp(args[i], "--windowrange") == 0) {
            if (params - i > 2) {
                windowbegin = atoi(args[++i]);
                windowend = atoi(args[++i]) + 1;
            } else {
                std::cerr << "--windowrange expects two integers (length)"
                          << std::endl;
                return -1;
            }
            continue;
        }
        if (strcmp(args[i], "--white") == 0) {
            if (params - i > 1)
                whitesize = atoi(args[++i]);
            else {
                std::cerr << "--white expects an integer (length)" << std::endl;
                return -1;
            }
            continue;
        }
        if (strcmp(args[i], "--walk") == 0) {
            if (params - i > 1)
                walksize = atoi(args[++i]);
            else {
                std::cerr << "--walk expects an integer (length)" << std::endl;
                return -1;
            }
            continue;
        }
        if (strcmp(args[i], "--sine") == 0) {
            if (params - i > 1)
                sinesize = atoi(args[++i]);
            else {
                std::cerr << "--sine expects an integer (length)" << std::endl;
                return -1;
            }
            if (params - i > 1)
                sineperiod = atof(args[++i]);
            else {
                std::cerr << "--sine expects an integer (length) followed by a "
                             "float (freq) "
                          << std::endl;
                return -1;
            }
            continue;
        }
        if (strcmp(args[i], "--times") == 0) {
            if (params - i > 1)
                times = atoi(args[++i]);
            else {
                std::cerr << "--times expects an integer" << std::endl;
                return -1;
            }
            continue;
        }
    }
    std::cout << "# we report timings (in seconds) so lower is better" << std::endl;
    for (int window = windowbegin; window < windowend; ++window) {
        if (whitesize > 0) {
            std::cout << "# window = " << window << " whitesize = " << whitesize
                      << " times = " << times << " doslow = " << doslow
                      << std::endl;
            assert(window + 1 < whitesize);
            timings(window, whitesize, times, doslow);
        } else if (walksize > 0) {
            std::cout << "# window = " << window << " walksize = " << walksize
                      << " times = " << times << " doslow = " << doslow
                      << std::endl;
            walktimings(window, walksize, times, doslow);

        } else if (sinesize > 0) {
            std::cout << "# window = " << window << " sinesize = " << sinesize
                      << " sine period " << sineperiod << " times = " << times
                      << " doslow = " << doslow << std::endl;
            assert(window + 1 < sinesize);
            sinetimings(window, sinesize, sineperiod, times, doslow);
        } else {
            if ((data.empty()) && cininput) {
                data = getcin();
                std::cout << "# window = " << window << " times = " << times
                          << " doslow = " << doslow << std::endl;
                process(data, window, times, doslow);
            } else {
                std::cout << "Generating sine waves." << std::endl;
                for (uint width = 3; width <= 100; ++width) {
                    std::cout << "Using a min/max width of " << width
                              << std::endl;
                    sinetimings(width);
                }
            }
        }
    }
    return 0;
}

// Assembly:
subq $0x208, %rsp            # imm = 0x208
movl $0x0, 0x204(%rsp)
movl %edi, 0x200(%rsp)
movq %rsi, 0x1f8(%rsp)
movl $0x0, 0x1f4(%rsp)
movl $0x0, 0x1f0(%rsp)
movl $0x1, 0x1ec(%rsp)
movl $0x0, 0x1e8(%rsp)
movq $0x0, 0x1e0(%rsp)
movl $0xa, 0x1dc(%rsp)
movl $0xb, 0x1d8(%rsp)
movb $0x1, 0x1d7(%rsp)
movb $0x0, 0x1d6(%rsp)
leaq 0x1b7(%rsp), %rdi
movq %rdi, 0x170(%rsp)
callq 0x4dc0
movq 0x170(%rsp), %rdx
xorl %eax, %eax
movl %eax, %esi
leaq 0x1b8(%rsp), %rdi
callq 0x4dd0
jmp 0x401f
leaq 0x1b7(%rsp), %rdi
callq 0x4e50
movl $0x1, 0x1a0(%rsp)
movl 0x1a0(%rsp), %eax
cmpl 0x200(%rsp), %eax
jge 0x46ba
movq 0x1f8(%rsp), %rax
movslq 0x1a0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xd076(%rip), %rsi      # 0x110dc
callq 0x21a0
cmpl $0x0, %eax
jne 0x40a0
movb $0x0, 0x1d7(%rsp)
jmp 0x40a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
leaq 0x1b7(%rsp), %rdi
callq 0x4e50
jmp 0x4db0
movq 0x1f8(%rsp), %rax
movslq 0x1a0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xd02c(%rip), %rsi      # 0x110e7
callq 0x21a0
cmpl $0x0, %eax
jne 0x40cd
movb $0x1, 0x1d6(%rsp)
movq 0x1f8(%rsp), %rax
movslq 0x1a0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xd00a(%rip), %rsi      # 0x110f2
callq 0x21a0
cmpl $0x0, %eax
jne 0x4166
movq 0x11ecf(%rip), %rdi     # 0x15fc8
leaq 0xcff9(%rip), %rsi      # 0x110f9
callq 0x2110
movq %rax, 0x168(%rsp)
jmp 0x410f
movq 0x168(%rsp), %rdi
movq 0x11e9a(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x4125
movl $0x0, 0x204(%rsp)
movl $0x1, 0x19c(%rsp)
jmp 0x4d94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
leaq 0x1b8(%rsp), %rdi
callq 0x4e80
jmp 0x4db0
movq 0x1f8(%rsp), %rax
movslq 0x1a0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xcf7c(%rip), %rsi      # 0x110fd
callq 0x21a0
cmpl $0x0, %eax
jne 0x4234
movl 0x200(%rsp), %eax
subl 0x1a0(%rsp), %eax
cmpl $0x1, %eax
jle 0x41e1
movq 0x1f8(%rsp), %rax
movl 0x1a0(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x1a0(%rsp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x21d0
movl %eax, 0x1dc(%rsp)
movl 0x1dc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1d8(%rsp)
jmp 0x422f
movq 0x11e08(%rip), %rdi     # 0x15ff0
leaq 0xcf17(%rip), %rsi      # 0x11106
callq 0x2110
movq %rax, 0x160(%rsp)
jmp 0x41fe
movq 0x160(%rsp), %rdi
movq 0x11dab(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x4214
movl $0xffffffff, 0x204(%rsp) # imm = 0xFFFFFFFF
movl $0x1, 0x19c(%rsp)
jmp 0x4d94
jmp 0x46a4
movq 0x1f8(%rsp), %rax
movslq 0x1a0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xcedc(%rip), %rsi      # 0x1112b
callq 0x21a0
cmpl $0x0, %eax
jne 0x4320
movl 0x200(%rsp), %eax
subl 0x1a0(%rsp), %eax
cmpl $0x2, %eax
jle 0x42cd
movq 0x1f8(%rsp), %rax
movl 0x1a0(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x1a0(%rsp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x21d0
movl %eax, 0x1dc(%rsp)
movq 0x1f8(%rsp), %rax
movl 0x1a0(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x1a0(%rsp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x21d0
addl $0x1, %eax
movl %eax, 0x1d8(%rsp)
jmp 0x431b
movq 0x11d1c(%rip), %rdi     # 0x15ff0
leaq 0xce5e(%rip), %rsi      # 0x11139
callq 0x2110
movq %rax, 0x158(%rsp)
jmp 0x42ea
movq 0x158(%rsp), %rdi
movq 0x11cbf(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x4300
movl $0xffffffff, 0x204(%rsp) # imm = 0xFFFFFFFF
movl $0x1, 0x19c(%rsp)
jmp 0x4d94
jmp 0x46a4
movq 0x1f8(%rsp), %rax
movslq 0x1a0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xce2a(%rip), %rsi      # 0x11165
callq 0x21a0
cmpl $0x0, %eax
jne 0x43dd
movl 0x200(%rsp), %eax
subl 0x1a0(%rsp), %eax
cmpl $0x1, %eax
jle 0x438a
movq 0x1f8(%rsp), %rax
movl 0x1a0(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x1a0(%rsp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x21d0
movl %eax, 0x1f4(%rsp)
jmp 0x43d8
movq 0x11c5f(%rip), %rdi     # 0x15ff0
leaq 0xcdd5(%rip), %rsi      # 0x1116d
callq 0x2110
movq %rax, 0x150(%rsp)
jmp 0x43a7
movq 0x150(%rsp), %rdi
movq 0x11c02(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x43bd
movl $0xffffffff, 0x204(%rsp) # imm = 0xFFFFFFFF
movl $0x1, 0x19c(%rsp)
jmp 0x4d94
jmp 0x46a4
movq 0x1f8(%rsp), %rax
movslq 0x1a0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xcd99(%rip), %rsi      # 0x11191
callq 0x21a0
cmpl $0x0, %eax
jne 0x449a
movl 0x200(%rsp), %eax
subl 0x1a0(%rsp), %eax
cmpl $0x1, %eax
jle 0x4447
movq 0x1f8(%rsp), %rax
movl 0x1a0(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x1a0(%rsp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x21d0
movl %eax, 0x1f0(%rsp)
jmp 0x4495
movq 0x11ba2(%rip), %rdi     # 0x15ff0
leaq 0xcd43(%rip), %rsi      # 0x11198
callq 0x2110
movq %rax, 0x148(%rsp)
jmp 0x4464
movq 0x148(%rsp), %rdi
movq 0x11b45(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x447a
movl $0xffffffff, 0x204(%rsp) # imm = 0xFFFFFFFF
movl $0x1, 0x19c(%rsp)
jmp 0x4d94
jmp 0x46a4
movq 0x1f8(%rsp), %rax
movslq 0x1a0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xcd06(%rip), %rsi      # 0x111bb
callq 0x21a0
cmpl $0x0, %eax
jne 0x45e8
movl 0x200(%rsp), %eax
subl 0x1a0(%rsp), %eax
cmpl $0x1, %eax
jle 0x4504
movq 0x1f8(%rsp), %rax
movl 0x1a0(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x1a0(%rsp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x21d0
movl %eax, 0x1e8(%rsp)
jmp 0x4552
movq 0x11ae5(%rip), %rdi     # 0x15ff0
leaq 0xccb0(%rip), %rsi      # 0x111c2
callq 0x2110
movq %rax, 0x140(%rsp)
jmp 0x4521
movq 0x140(%rsp), %rdi
movq 0x11a88(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x4537
movl $0xffffffff, 0x204(%rsp) # imm = 0xFFFFFFFF
movl $0x1, 0x19c(%rsp)
jmp 0x4d94
movl 0x200(%rsp), %eax
subl 0x1a0(%rsp), %eax
cmpl $0x1, %eax
jle 0x4595
movq 0x1f8(%rsp), %rax
movl 0x1a0(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x1a0(%rsp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2160
vmovsd %xmm0, 0x1e0(%rsp)
jmp 0x45e3
movq 0x11a54(%rip), %rdi     # 0x15ff0
leaq 0xcc42(%rip), %rsi      # 0x111e5
callq 0x2110
movq %rax, 0x138(%rsp)
jmp 0x45b2
movq 0x138(%rsp), %rdi
movq 0x119f7(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x45c8
movl $0xffffffff, 0x204(%rsp) # imm = 0xFFFFFFFF
movl $0x1, 0x19c(%rsp)
jmp 0x4d94
jmp 0x46a4
movq 0x1f8(%rsp), %rax
movslq 0x1a0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xcc21(%rip), %rsi      # 0x11224
callq 0x21a0
cmpl $0x0, %eax
jne 0x46a2
movl 0x200(%rsp), %eax
subl 0x1a0(%rsp), %eax
cmpl $0x1, %eax
jle 0x4652
movq 0x1f8(%rsp), %rax
movl 0x1a0(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x1a0(%rsp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x21d0
movl %eax, 0x1ec(%rsp)
jmp 0x46a0
movq 0x11997(%rip), %rdi     # 0x15ff0
leaq 0xcbcc(%rip), %rsi      # 0x1122c
callq 0x2110
movq %rax, 0x130(%rsp)
jmp 0x466f
movq 0x130(%rsp), %rdi
movq 0x1193a(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x4685
movl $0xffffffff, 0x204(%rsp) # imm = 0xFFFFFFFF
movl $0x1, 0x19c(%rsp)
jmp 0x4d94
jmp 0x46a4
jmp 0x46a4
movl 0x1a0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1a0(%rsp)
jmp 0x4037
movq 0x11907(%rip), %rdi     # 0x15fc8
leaq 0xcb7f(%rip), %rsi      # 0x11247
callq 0x2110
movq %rax, 0x128(%rsp)
jmp 0x46d7
movq 0x128(%rsp), %rdi
movq 0x118d2(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x46ed
movl 0x1dc(%rsp), %eax
movl %eax, 0x198(%rsp)
movl 0x198(%rsp), %eax
cmpl 0x1d8(%rsp), %eax
jge 0x4d7e
cmpl $0x0, 0x1f4(%rsp)
jle 0x4886
movq 0x118a4(%rip), %rdi     # 0x15fc8
leaq 0xcb50(%rip), %rsi      # 0x1127b
callq 0x2110
movq %rax, 0x120(%rsp)
jmp 0x473a
movq 0x120(%rsp), %rdi
movl 0x198(%rsp), %esi
callq 0x2200
movq %rax, 0x118(%rsp)
jmp 0x4758
movq 0x118(%rsp), %rdi
leaq 0xcb20(%rip), %rsi      # 0x11287
callq 0x2110
movq %rax, 0x110(%rsp)
jmp 0x4776
movq 0x110(%rsp), %rdi
movl 0x1f4(%rsp), %esi
callq 0x2200
movq %rax, 0x108(%rsp)
jmp 0x4794
movq 0x108(%rsp), %rdi
leaq 0xcaf2(%rip), %rsi      # 0x11295
callq 0x2110
movq %rax, 0x100(%rsp)
jmp 0x47b2
movq 0x100(%rsp), %rdi
movl 0x1ec(%rsp), %esi
callq 0x2200
movq %rax, 0xf8(%rsp)
jmp 0x47d0
movq 0xf8(%rsp), %rdi
leaq 0xcac0(%rip), %rsi      # 0x1129f
callq 0x2110
movq %rax, 0xf0(%rsp)
jmp 0x47ee
movq 0xf0(%rsp), %rdi
movzbl 0x1d7(%rsp), %esi
andl $0x1, %esi
callq 0x2220
movq %rax, 0xe8(%rsp)
jmp 0x4810
movq 0xe8(%rsp), %rdi
movq 0x11799(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x4826
movl 0x198(%rsp), %eax
addl $0x1, %eax
cmpl 0x1f4(%rsp), %eax
jge 0x483b
jmp 0x485a
leaq 0xca68(%rip), %rdi      # 0x112aa
leaq 0xca78(%rip), %rsi      # 0x112c1
movl $0x11e, %edx            # imm = 0x11E
leaq 0xca7e(%rip), %rcx      # 0x112d3
callq 0x20c0
movl 0x198(%rsp), %edi
movl 0x1f4(%rsp), %esi
movl 0x1ec(%rsp), %edx
movzbl 0x1d7(%rsp), %ecx
andl $0x1, %ecx
callq 0x2f90
jmp 0x4881
jmp 0x4d66
cmpl $0x0, 0x1f0(%rsp)
jle 0x49c9
movq 0x1172d(%rip), %rdi     # 0x15fc8
leaq 0xc9d9(%rip), %rsi      # 0x1127b
callq 0x2110
movq %rax, 0xe0(%rsp)
jmp 0x48b1
movq 0xe0(%rsp), %rdi
movl 0x198(%rsp), %esi
callq 0x2200
movq %rax, 0xd8(%rsp)
jmp 0x48cf
movq 0xd8(%rsp), %rdi
leaq 0xca0c(%rip), %rsi      # 0x112ea
callq 0x2110
movq %rax, 0xd0(%rsp)
jmp 0x48ed
movq 0xd0(%rsp), %rdi
movl 0x1f0(%rsp), %esi
callq 0x2200
movq %rax, 0xc8(%rsp)
jmp 0x490b
movq 0xc8(%rsp), %rdi
leaq 0xc97b(%rip), %rsi      # 0x11295
callq 0x2110
movq %rax, 0xc0(%rsp)
jmp 0x4929
movq 0xc0(%rsp), %rdi
movl 0x1ec(%rsp), %esi
callq 0x2200
movq %rax, 0xb8(%rsp)
jmp 0x4947
movq 0xb8(%rsp), %rdi
leaq 0xc949(%rip), %rsi      # 0x1129f
callq 0x2110
movq %rax, 0xb0(%rsp)
jmp 0x4965
movq 0xb0(%rsp), %rdi
movzbl 0x1d7(%rsp), %esi
andl $0x1, %esi
callq 0x2220
movq %rax, 0xa8(%rsp)
jmp 0x4987
movq 0xa8(%rsp), %rdi
movq 0x11622(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x499d
movl 0x198(%rsp), %edi
movl 0x1f0(%rsp), %esi
movl 0x1ec(%rsp), %edx
movzbl 0x1d7(%rsp), %ecx
andl $0x1, %ecx
callq 0x33b0
jmp 0x49c4
jmp 0x4d64
cmpl $0x0, 0x1e8(%rsp)
jle 0x4b69
movq 0x115ea(%rip), %rdi     # 0x15fc8
leaq 0xc896(%rip), %rsi      # 0x1127b
callq 0x2110
movq %rax, 0xa0(%rsp)
jmp 0x49f4
movq 0xa0(%rsp), %rdi
movl 0x198(%rsp), %esi
callq 0x2200
movq %rax, 0x98(%rsp)
jmp 0x4a12
movq 0x98(%rsp), %rdi
leaq 0xc8d6(%rip), %rsi      # 0x112f7
callq 0x2110
movq %rax, 0x90(%rsp)
jmp 0x4a30
movq 0x90(%rsp), %rdi
movl 0x1e8(%rsp), %esi
callq 0x2200
movq %rax, 0x88(%rsp)
jmp 0x4a4e
movq 0x88(%rsp), %rdi
leaq 0xc8a7(%rip), %rsi      # 0x11304
callq 0x2110
movq %rax, 0x80(%rsp)
jmp 0x4a6c
movq 0x80(%rsp), %rdi
vmovsd 0x1e0(%rsp), %xmm0
callq 0x2230
movq %rax, 0x78(%rsp)
jmp 0x4a89
movq 0x78(%rsp), %rdi
leaq 0xc800(%rip), %rsi      # 0x11295
callq 0x2110
movq %rax, 0x70(%rsp)
jmp 0x4aa1
movq 0x70(%rsp), %rdi
movl 0x1ec(%rsp), %esi
callq 0x2200
movq %rax, 0x68(%rsp)
jmp 0x4ab9
movq 0x68(%rsp), %rdi
leaq 0xc7da(%rip), %rsi      # 0x1129f
callq 0x2110
movq %rax, 0x60(%rsp)
jmp 0x4ad1
movq 0x60(%rsp), %rdi
movzbl 0x1d7(%rsp), %esi
andl $0x1, %esi
callq 0x2220
movq %rax, 0x58(%rsp)
jmp 0x4aed
movq 0x58(%rsp), %rdi
movq 0x114bf(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x4b00
movl 0x198(%rsp), %eax
addl $0x1, %eax
cmpl 0x1e8(%rsp), %eax
jge 0x4b15
jmp 0x4b34
leaq 0xc7f6(%rip), %rdi      # 0x11312
leaq 0xc79e(%rip), %rsi      # 0x112c1
movl $0x12a, %edx            # imm = 0x12A
leaq 0xc7a4(%rip), %rcx      # 0x112d3
callq 0x20c0
movl 0x198(%rsp), %edi
movl 0x1e8(%rsp), %esi
vmovsd 0x1e0(%rsp), %xmm0
movl 0x1ec(%rsp), %edx
movzbl 0x1d7(%rsp), %ecx
andl $0x1, %ecx
callq 0x37d0
jmp 0x4b64
jmp 0x4d62
leaq 0x1b8(%rsp), %rdi
callq 0x9050
testb $0x1, %al
jne 0x4b7f
jmp 0x4c96
testb $0x1, 0x1d6(%rsp)
je 0x4c96
leaq 0x180(%rsp), %rdi
callq 0x25e0
jmp 0x4b9c
leaq 0x1b8(%rsp), %rdi
leaq 0x180(%rsp), %rsi
movq %rsi, 0x48(%rsp)
callq 0x4fc0
movq 0x48(%rsp), %rdi
callq 0x4e80
movq 0x11401(%rip), %rdi     # 0x15fc8
leaq 0xc6ad(%rip), %rsi      # 0x1127b
callq 0x2110
movq %rax, 0x50(%rsp)
jmp 0x4bda
movq 0x50(%rsp), %rdi
movl 0x198(%rsp), %esi
callq 0x2200
movq %rax, 0x40(%rsp)
jmp 0x4bf2
movq 0x40(%rsp), %rdi
leaq 0xc697(%rip), %rsi      # 0x11295
callq 0x2110
movq %rax, 0x38(%rsp)
jmp 0x4c0a
movq 0x38(%rsp), %rdi
movl 0x1ec(%rsp), %esi
callq 0x2200
movq %rax, 0x30(%rsp)
jmp 0x4c22
movq 0x30(%rsp), %rdi
leaq 0xc671(%rip), %rsi      # 0x1129f
callq 0x2110
movq %rax, 0x28(%rsp)
jmp 0x4c3a
movq 0x28(%rsp), %rdi
movzbl 0x1d7(%rsp), %esi
andl $0x1, %esi
callq 0x2220
movq %rax, 0x20(%rsp)
jmp 0x4c56
movq 0x20(%rsp), %rdi
movq 0x11356(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x4c69
movl 0x198(%rsp), %esi
movl 0x1ec(%rsp), %edx
movzbl 0x1d7(%rsp), %ecx
andl $0x1, %ecx
leaq 0x1b8(%rsp), %rdi
callq 0x2d60
jmp 0x4c91
jmp 0x4d60
movq 0x1132b(%rip), %rdi     # 0x15fc8
leaq 0xc684(%rip), %rsi      # 0x11328
callq 0x2110
movq %rax, 0x18(%rsp)
jmp 0x4cb0
movq 0x18(%rsp), %rdi
movq 0x112fc(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x4cc3
movl $0x3, 0x17c(%rsp)
cmpl $0x64, 0x17c(%rsp)
ja 0x4d5e
movq 0x112e5(%rip), %rdi     # 0x15fc8
leaq 0xc655(%rip), %rsi      # 0x1133f
callq 0x2110
movq %rax, 0x10(%rsp)
jmp 0x4cf6
movq 0x10(%rsp), %rdi
movl 0x17c(%rsp), %esi
callq 0x2190
movq %rax, 0x8(%rsp)
jmp 0x4d0e
movq 0x8(%rsp), %rdi
movq 0x1129e(%rip), %rsi     # 0x15fb8
callq 0x2130
jmp 0x4d21
movl 0x17c(%rsp), %edi
movl $0x2710, %esi           # imm = 0x2710
vmovsd 0xc2fb(%rip), %xmm0     # 0x11030
movl $0x1f4, %edx            # imm = 0x1F4
movl $0x1, %ecx
callq 0x37d0
jmp 0x4d46
jmp 0x4d48
movl 0x17c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x17c(%rsp)
jmp 0x4cce
jmp 0x4d60
jmp 0x4d62
jmp 0x4d64
jmp 0x4d66
jmp 0x4d68
movl 0x198(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x198(%rsp)
jmp 0x46fb
movl $0x0, 0x204(%rsp)
movl $0x1, 0x19c(%rsp)
leaq 0x1b8(%rsp), %rdi
callq 0x4e80
movl 0x204(%rsp), %eax
addq $0x208, %rsp            # imm = 0x208
retq
movq 0x1a8(%rsp), %rdi
callq 0x2210
nopl (%rax)