// File: /workspace/github_cpp_makefile_star2_O3/stevedonovan[P]outstreams/testins.cpp
// Function: main
int main(int argc, char **argv)
{
    int i;
    double x = 1.2;
    int res = 0, N = 0;
    string s1,s2,s3;
    vector<string> lines;
    Reader::Error err;
    char ch = 'X';

    outs.sep(' ');

    outs("+++all lines from file matching some condition")();
    Reader inf("instream.cpp");
    while (inf.getline(s3)) {
        if (s3.find('#')==0)
            outs(s3)(eol);
    }
    // this will normally happen when inf goes out of scope
    inf.close();

    // alternatively, getlines will append lines using push_back
    // and an optional number of lines to grab can be set
    inf.open("instream.cpp");
    inf.getlines(lines,4);
    inf.close();
    outs(range(lines),quote_s)(eol);

    outs("+++read variables from file")();
    Reader rdr("input-test.txt");

    rdr(i)(x)(s1);
    outs(i)(x)(s1,quote_s)(eol);

    // this line fails since there's no good match for res
    // () means grab rest of line and continue...
    // (err) captures error state of instream
    rdr(i)(s1)(s2)()(res)(ch)(err);
    if (err) {
        outs("failed")(err.errcode)(err.msg)(eol);
    }
    outs(i)(s1)(s2)(res)(ch)(eol);


    outs("+++read input-test.txt contents")();
    string contents;
    Reader("input-test.txt").readall(contents);
    outs(contents)(eol);

    outs("+++read from string with errors")();
    StrReader sc(contents);
    sc()(i)(s1)(s2)()(res)(ch)(err);
    if (err) {
        outs("failed")(err.errcode)(err.msg)(eol);
    }
    outs(i)(s1)(s2)(res)(ch)(eol);

    outs("+++all header files in this directory")();
    lines.clear();
    CmdReader("ls *.h").getlines(lines);
    for (string L : lines) outs(L,quote_s)(eol);

    outs("+++file doesn't exist")();
    Reader b("bonzo.txt");
    b(res);
    if (! b) {
       outs("bonzo.txt doesn't exist")(b.error())(eol);
    }

    outs("+++CmdReader result")();
    string line = CmdReader("uname").line();
    outs("uname")(line)(eol);

    outs("+++How to execute commands silently and test errors")();
    string result = CmdReader("true",cmd_ok).line();   
    if (result == "OK") {
        outs("true is OK")(eol);
    }
    if (CmdReader("false",cmd_ok).line() != "OK") {
        outs("false is not OK")(eol);
    }

    int retcode;
    CmdReader("false",cmd_retcode) (retcode);
    outs("actual retcode")(retcode)(eol);

    /*

   s = "one two   30";
   StrReader ss(s);
   ss(s1)(s2)(res);

   printf("'%s' '%s' '%s' %d\n",C(s1),C(s2),C(s3),res);
*/
   return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3d8, %rsp            # imm = 0x3D8
movabsq $0x3ff3333333333333, %rax # imm = 0x3FF3333333333333
movq %rax, 0xb8(%rsp)
movl $0x0, 0x8(%rsp)
leaq 0x88(%rsp), %r13
movq %r13, -0x10(%r13)
xorl %eax, %eax
movq %rax, -0x8(%r13)
movb %al, (%r13)
leaq 0xa8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rax, -0x8(%rbp)
movb %al, (%rbp)
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
movq %rax, -0x8(%r14)
movb %al, (%r14)
movq %rax, 0x20(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x60(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rax, -0x8(%r15)
movb %al, (%r15)
movb $0x58, 0x7(%rsp)
leaq 0x6ab7(%rip), %rdi      # 0x9260
movl $0x20, %esi
callq 0x5886
leaq 0x6aa6(%rip), %rdi      # 0x9260
leaq 0x3a09(%rip), %rsi      # 0x61ca
leaq 0x386a(%rip), %rcx      # 0x6032
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x3881(%rip), %rsi      # 0x6061
leaq 0x3ac0(%rip), %rdx      # 0x62a7
leaq 0x358(%rsp), %rdi
callq 0x3ef6
leaq 0x358(%rsp), %rbx
leaq 0x28(%rsp), %r14
leaq 0x6a58(%rip), %r15      # 0x9260
leaq 0x39bb(%rip), %r12      # 0x61ca
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4f84
movq %rax, %rdi
callq 0x40e6
testb %al, %al
je 0x2858
movq %r14, %rdi
movl $0x23, %esi
xorl %edx, %edx
callq 0x2210
testq %rax, %rax
jne 0x280f
movq 0x28(%rsp), %rcx
movq %r15, %rdi
movq %r12, %rsi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
jmp 0x280f
leaq 0x358(%rsp), %rdi
callq 0x40ba
leaq 0x2b0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x37e9(%rip), %rsi      # 0x6061
leaq 0x37ee(%rip), %rdx      # 0x606d
leaq 0x2a0(%rsp), %rdi
callq 0x3b52
leaq 0x3a14(%rip), %rdx      # 0x62a7
leaq 0x358(%rsp), %rdi
leaq 0x2a0(%rsp), %rsi
callq 0x3fb0
movq 0x2a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x28c5
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x358(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x4, %edx
callq 0x39cc
leaq 0x358(%rsp), %rdi
callq 0x40ba
movaps 0x10(%rsp), %xmm0
leaq 0x2a0(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x6960(%rip), %rdi      # 0x9260
leaq 0x3767(%rip), %rdx      # 0x606e
movl $0x20, %ecx
callq 0x3a78
movq %rax, %rdi
callq 0x58c8
leaq 0x6940(%rip), %rdi      # 0x9260
leaq 0x38a3(%rip), %rsi      # 0x61ca
leaq 0x3742(%rip), %rcx      # 0x6070
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x3746(%rip), %rsi      # 0x608c
leaq 0x395a(%rip), %rdx      # 0x62a7
leaq 0x398(%rsp), %rdi
callq 0x3ef6
leaq 0x398(%rsp), %rdi
leaq 0xc(%rsp), %rsi
xorl %edx, %edx
callq 0x4d18
leaq 0xb8(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4c98
leaq 0x78(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4748
movl 0xc(%rsp), %ecx
leaq 0x68c6(%rip), %rdi      # 0x9260
leaq 0x382f(%rip), %rsi      # 0x61d0
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movsd 0xb8(%rsp), %xmm0
leaq 0x3819(%rip), %rsi      # 0x61d3
movq %rax, %rdi
xorl %edx, %edx
movb $0x1, %al
callq 0x563e
movq 0x78(%rsp), %rcx
leaq 0x37f8(%rip), %rsi      # 0x61ca
leaq 0x3695(%rip), %rdx      # 0x606e
movq %rax, %rdi
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x398(%rsp), %rdi
leaq 0xc(%rsp), %rsi
xorl %edx, %edx
callq 0x4d18
leaq 0x78(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4748
leaq 0x98(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4748
movq %rax, %rdi
callq 0x4f2c
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4d18
leaq 0x7(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4e94
leaq 0x48(%rsp), %rsi
movq %rax, %rdi
callq 0x4c68
cmpl $0x0, 0x48(%rsp)
je 0x2aaf
leaq 0x67ff(%rip), %rdi      # 0x9260
leaq 0x3762(%rip), %rsi      # 0x61ca
leaq 0x362c(%rip), %rcx      # 0x609b
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movl 0x48(%rsp), %ecx
leaq 0x374d(%rip), %rsi      # 0x61d0
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq 0x50(%rsp), %rcx
leaq 0x372f(%rip), %rsi      # 0x61ca
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
movl 0xc(%rsp), %ecx
leaq 0x67a6(%rip), %rdi      # 0x9260
leaq 0x370f(%rip), %rsi      # 0x61d0
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq 0x78(%rsp), %rcx
leaq 0x36f4(%rip), %rsi      # 0x61ca
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq 0x98(%rsp), %rcx
leaq 0x36d9(%rip), %rsi      # 0x61ca
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movl 0x8(%rsp), %ecx
leaq 0x36c8(%rip), %rsi      # 0x61d0
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movsbl 0x7(%rsp), %esi
movq %rax, %rdi
xorl %edx, %edx
callq 0x39ae
movq %rax, %rdi
callq 0x58c8
leaq 0x672e(%rip), %rdi      # 0x9260
leaq 0x3691(%rip), %rsi      # 0x61ca
leaq 0x3562(%rip), %rcx      # 0x60a2
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x110(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x351d(%rip), %rsi      # 0x608c
leaq 0x3731(%rip), %rdx      # 0x62a7
leaq 0x2a0(%rsp), %rdi
callq 0x3ef6
leaq 0x2a0(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x4bec
leaq 0x2a0(%rsp), %rdi
callq 0x4074
movq 0x100(%rsp), %rcx
leaq 0x66ac(%rip), %rdi      # 0x9260
leaq 0x360f(%rip), %rsi      # 0x61ca
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x668d(%rip), %rdi      # 0x9260
leaq 0x35f0(%rip), %rsi      # 0x61ca
leaq 0x34e1(%rip), %rcx      # 0x60c2
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x2a0(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x529c
leaq 0x2a0(%rsp), %rdi
callq 0x4f2c
leaq 0xc(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4d18
leaq 0x78(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4748
leaq 0x98(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4748
movq %rax, %rdi
callq 0x4f2c
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4d18
leaq 0x7(%rsp), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x4e94
leaq 0x48(%rsp), %rsi
movq %rax, %rdi
callq 0x4c68
cmpl $0x0, 0x48(%rsp)
je 0x2cd3
leaq 0x65db(%rip), %rdi      # 0x9260
leaq 0x353e(%rip), %rsi      # 0x61ca
leaq 0x3408(%rip), %rcx      # 0x609b
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movl 0x48(%rsp), %ecx
leaq 0x3529(%rip), %rsi      # 0x61d0
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq 0x50(%rsp), %rcx
leaq 0x350b(%rip), %rsi      # 0x61ca
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
movl 0xc(%rsp), %ecx
leaq 0x6582(%rip), %rdi      # 0x9260
leaq 0x34eb(%rip), %rsi      # 0x61d0
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq 0x78(%rsp), %rcx
leaq 0x34d0(%rip), %rsi      # 0x61ca
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq 0x98(%rsp), %rcx
leaq 0x34b5(%rip), %rsi      # 0x61ca
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movl 0x8(%rsp), %ecx
leaq 0x34a4(%rip), %rsi      # 0x61d0
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movsbl 0x7(%rsp), %esi
movq %rax, %rdi
xorl %edx, %edx
callq 0x39ae
movq %rax, %rdi
callq 0x58c8
leaq 0x650a(%rip), %rdi      # 0x9260
leaq 0x346d(%rip), %rsi      # 0x61ca
leaq 0x337e(%rip), %rcx      # 0x60e2
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
movq 0x10(%rsp), %rbx
movq 0x18(%rsp), %r14
cmpq %rbx, %r14
je 0x2db1
leaq 0x10(%rbx), %r15
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x2d9c
movq (%r15), %rsi
incq %rsi
callq 0x2190
leaq 0x20(%r15), %rax
addq $0x10, %r15
cmpq %r14, %r15
movq %rax, %r15
jne 0x2d88
movq %rbx, 0x18(%rsp)
leaq 0x290(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3344(%rip), %rsi      # 0x6108
leaq 0x3343(%rip), %rdx      # 0x610e
leaq 0x280(%rsp), %rdi
callq 0x3b52
leaq 0x270(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x34d2(%rip), %rdx      # 0x62bd
leaq 0x260(%rsp), %rdi
movq %rdx, %rsi
callq 0x3b52
leaq 0x120(%rsp), %rdi
leaq 0x280(%rsp), %rsi
leaq 0x260(%rsp), %rdx
callq 0x50b4
leaq 0x120(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movq $-0x1, %rdx
callq 0x39cc
leaq 0x120(%rsp), %rdi
callq 0x4074
movq 0x260(%rsp), %rdi
cmpq %r15, %rdi
je 0x2e5b
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x280(%rsp), %rdi
cmpq %r14, %rdi
je 0x2e78
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x10(%rsp), %rbp
movq 0x18(%rsp), %rbx
cmpq %rbx, %rbp
je 0x2f0e
leaq 0x130(%rsp), %r13
leaq 0x63c6(%rip), %r14      # 0x9260
leaq 0x3329(%rip), %r15      # 0x61ca
leaq 0x31c6(%rip), %r12      # 0x606e
movq %r13, 0x120(%rsp)
movq (%rbp), %rsi
movq 0x8(%rbp), %rdx
addq %rsi, %rdx
leaq 0x120(%rsp), %rdi
callq 0x3be8
movq 0x120(%rsp), %rcx
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
movq 0x120(%rsp), %rdi
cmpq %r13, %rdi
je 0x2f05
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x2190
addq $0x20, %rbp
cmpq %rbx, %rbp
jne 0x2ea8
leaq 0x634b(%rip), %rdi      # 0x9260
leaq 0x32ae(%rip), %rsi      # 0x61ca
leaq 0x31ec(%rip), %rcx      # 0x610f
xorl %edx, %edx
xorl %eax, %eax
leaq 0x88(%rsp), %r13
leaq 0xa8(%rsp), %rbp
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x31da(%rip), %rsi      # 0x6125
leaq 0x3355(%rip), %rdx      # 0x62a7
leaq 0x120(%rsp), %rdi
callq 0x3ef6
leaq 0x120(%rsp), %rdi
leaq 0x8(%rsp), %rsi
xorl %edx, %edx
callq 0x4d18
leaq 0x120(%rsp), %rdi
callq 0x40e6
testb %al, %al
jne 0x2ffe
leaq 0x62d5(%rip), %rdi      # 0x9260
leaq 0x3238(%rip), %rsi      # 0x61ca
leaq 0x3196(%rip), %rcx      # 0x612f
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x40f2
movq 0xc0(%rsp), %rcx
leaq 0x3201(%rip), %rsi      # 0x61ca
movq %rbx, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2ffe
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x625b(%rip), %rdi      # 0x9260
leaq 0x31be(%rip), %rsi      # 0x61ca
leaq 0x3134(%rip), %rcx      # 0x6147
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x250(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3124(%rip), %rsi      # 0x615b
leaq 0x3122(%rip), %rdx      # 0x6160
leaq 0x240(%rsp), %rdi
callq 0x3b52
leaq 0x230(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x325f(%rip), %rdx      # 0x62bd
leaq 0x220(%rsp), %rdi
movq %rdx, %rsi
callq 0x3b52
leaq 0xc0(%rsp), %rdi
leaq 0x240(%rsp), %rsi
leaq 0x220(%rsp), %rdx
callq 0x50b4
leaq 0x338(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x524e
leaq 0xc0(%rsp), %rdi
callq 0x4074
movq 0x220(%rsp), %rdi
cmpq %r15, %rdi
je 0x30ca
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x240(%rsp), %rdi
cmpq %r14, %rdi
je 0x30e7
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x6172(%rip), %rdi      # 0x9260
leaq 0x30d5(%rip), %rsi      # 0x61ca
leaq 0x305f(%rip), %rcx      # 0x615b
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq 0x338(%rsp), %rcx
leaq 0x30b6(%rip), %rsi      # 0x61ca
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x6131(%rip), %rdi      # 0x9260
leaq 0x3094(%rip), %rsi      # 0x61ca
leaq 0x3024(%rip), %rcx      # 0x6161
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x210(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3034(%rip), %rsi      # 0x6195
leaq 0x3031(%rip), %rdx      # 0x6199
leaq 0x200(%rsp), %rdi
callq 0x3b52
leaq 0x1f0(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x6010(%rip), %rsi      # 0x9198
movq 0x6011(%rip), %rdx      # 0x91a0
addq %rsi, %rdx
leaq 0x1e0(%rsp), %rdi
callq 0x3be8
leaq 0xc0(%rsp), %rdi
leaq 0x200(%rsp), %rsi
leaq 0x1e0(%rsp), %rdx
callq 0x50b4
leaq 0x318(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x524e
leaq 0xc0(%rsp), %rdi
callq 0x4074
movq 0x1e0(%rsp), %rdi
cmpq %r15, %rdi
je 0x31fb
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x200(%rsp), %rdi
cmpq %r14, %rdi
je 0x3218
movq 0x210(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x2df9(%rip), %rsi      # 0x6018
leaq 0x318(%rsp), %rdi
callq 0x2070
testl %eax, %eax
jne 0x3256
leaq 0x6029(%rip), %rdi      # 0x9260
leaq 0x2f8c(%rip), %rsi      # 0x61ca
leaq 0x2f55(%rip), %rcx      # 0x619a
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x1d0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2f3c(%rip), %rsi      # 0x61a5
leaq 0x2f3a(%rip), %rdx      # 0x61aa
leaq 0x1c0(%rsp), %rdi
callq 0x3b52
leaq 0x1b0(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x5f07(%rip), %rsi      # 0x9198
movq 0x5f08(%rip), %rdx      # 0x91a0
addq %rsi, %rdx
leaq 0x1a0(%rsp), %rdi
callq 0x3be8
leaq 0xc0(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x50b4
leaq 0x2f8(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x524e
leaq 0x2d37(%rip), %rsi      # 0x6018
leaq 0x2f8(%rsp), %r14
movq %r14, %rdi
callq 0x2070
movl %eax, %ebx
movq (%r14), %rdi
leaq 0x308(%rsp), %rax
cmpq %rax, %rdi
je 0x3313
movq 0x308(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0xc0(%rsp), %rdi
callq 0x4074
movq 0x1a0(%rsp), %rdi
cmpq %r12, %rdi
je 0x333d
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x1c0(%rsp), %rdi
cmpq %r15, %rdi
je 0x335a
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0x2190
testl %ebx, %ebx
je 0x3384
leaq 0x5efb(%rip), %rdi      # 0x9260
leaq 0x2e5e(%rip), %rsi      # 0x61ca
leaq 0x2e38(%rip), %rcx      # 0x61ab
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x190(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2e0e(%rip), %rsi      # 0x61a5
leaq 0x2e0c(%rip), %rdx      # 0x61aa
leaq 0x180(%rsp), %rdi
callq 0x3b52
leaq 0x170(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x5dfa(%rip), %rsi      # 0x91b8
movq 0x5dfb(%rip), %rdx      # 0x91c0
addq %rsi, %rdx
leaq 0x160(%rsp), %rdi
callq 0x3be8
leaq 0xc0(%rsp), %rdi
leaq 0x180(%rsp), %rsi
leaq 0x160(%rsp), %rdx
callq 0x50b4
leaq 0xc0(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
xorl %edx, %edx
callq 0x4d18
leaq 0xc0(%rsp), %rdi
callq 0x4074
movq 0x160(%rsp), %rdi
cmpq %r15, %rdi
je 0x3433
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x180(%rsp), %rdi
cmpq %r14, %rdi
leaq 0x60(%rsp), %r14
je 0x3455
movq 0x190(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x5e04(%rip), %rdi      # 0x9260
leaq 0x2d67(%rip), %rsi      # 0x61ca
leaq 0x2d51(%rip), %rcx      # 0x61bb
xorl %edx, %edx
xorl %eax, %eax
leaq 0x38(%rsp), %rbx
callq 0x563e
movl 0x2f8(%rsp), %ecx
leaq 0x2d4a(%rip), %rsi      # 0x61d0
movq %rax, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x563e
movq %rax, %rdi
callq 0x58c8
leaq 0x328(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34bb
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x348(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34dc
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x120(%rsp), %rdi
callq 0x4074
leaq 0x2a0(%rsp), %rdi
callq 0x4074
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x351b
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x398(%rsp), %rdi
callq 0x4074
leaq 0x358(%rsp), %rdi
callq 0x4074
movq 0x50(%rsp), %rdi
cmpq %r14, %rdi
je 0x354c
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x10(%rsp), %rdi
callq 0x3ae8
movq 0x28(%rsp), %rdi
cmpq %rbx, %rdi
je 0x356d
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x98(%rsp), %rdi
cmpq %rbp, %rdi
je 0x358a
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x35a4
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x2190
xorl %eax, %eax
addq $0x3d8, %rsp            # imm = 0x3D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3858
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x4074
jmp 0x35d2
movq %rax, %rbx
movq 0x160(%rsp), %rdi
cmpq %r15, %rdi
je 0x35f4
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x35f4
movq %rax, %rbx
movq 0x180(%rsp), %rdi
cmpq %r14, %rdi
je 0x3828
movq 0x190(%rsp), %rsi
jmp 0x3664
jmp 0x3825
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x4074
jmp 0x3629
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
cmpq %r12, %rdi
je 0x364b
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x364b
movq %rax, %rbx
movq 0x1c0(%rsp), %rdi
cmpq %r15, %rdi
je 0x3828
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x3828
jmp 0x3825
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x4074
jmp 0x368b
movq %rax, %rbx
movq 0x1e0(%rsp), %rdi
cmpq %r15, %rdi
je 0x36ad
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x36ad
movq %rax, %rbx
movq 0x200(%rsp), %rdi
cmpq %r14, %rdi
je 0x3860
movq 0x210(%rsp), %rsi
jmp 0x3841
jmp 0x385d
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x4074
jmp 0x36e5
movq %rax, %rbx
movq 0x220(%rsp), %rdi
cmpq %r15, %rdi
je 0x3707
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x3707
movq %rax, %rbx
movq 0x240(%rsp), %rdi
cmpq %r14, %rdi
je 0x3881
movq 0x250(%rsp), %rsi
jmp 0x3879
jmp 0x3858
movq %rax, %rbx
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3881
movq 0xd0(%rsp), %rsi
jmp 0x3879
jmp 0x3897
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0x4074
jmp 0x3769
movq %rax, %rbx
movq 0x260(%rsp), %rdi
cmpq %r15, %rdi
je 0x378b
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x378b
movq %rax, %rbx
movq 0x280(%rsp), %rdi
cmpq %r14, %rdi
je 0x38c1
movq 0x290(%rsp), %rsi
jmp 0x38b9
jmp 0x3897
jmp 0x3853
movq %rax, %rbx
leaq 0x2a0(%rsp), %rdi
callq 0x4074
jmp 0x38ce
jmp 0x3853
jmp 0x391c
movq %rax, %rbx
movq 0x2a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x37f7
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x37f7
movq %rax, %rbx
leaq 0x88(%rsp), %r13
leaq 0xa8(%rsp), %rbp
jmp 0x391f
movq %rax, %rbx
leaq 0x38(%rsp), %r14
leaq 0x60(%rsp), %r15
jmp 0x3936
jmp 0x3825
jmp 0x391c
movq %rax, %rbx
leaq 0x328(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3860
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x3860
movq %rax, %rbx
jmp 0x3936
movq %rax, %rbx
jmp 0x38ce
movq %rax, %rbx
jmp 0x3881
movq %rax, %rbx
leaq 0x348(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3881
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x120(%rsp), %rdi
callq 0x4074
jmp 0x38c1
jmp 0x391c
jmp 0x3897
movq %rax, %rbx
jmp 0x38c1
movq %rax, %rbx
jmp 0x3903
movq %rax, %rbx
movq 0x120(%rsp), %rdi
cmpq %r13, %rdi
je 0x38c1
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x2a0(%rsp), %rdi
callq 0x4074
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x38f3
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x88(%rsp), %r13
leaq 0xa8(%rsp), %rbp
leaq 0x38(%rsp), %r14
leaq 0x60(%rsp), %r15
leaq 0x398(%rsp), %rdi
callq 0x4074
jmp 0x3929
movq %rax, %rbx
leaq 0x38(%rsp), %r14
leaq 0x60(%rsp), %r15
leaq 0x358(%rsp), %rdi
callq 0x4074
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x394d
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x10(%rsp), %rdi
callq 0x3ae8
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x396e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x98(%rsp), %rdi
cmpq %rbp, %rdi
je 0x398b
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x39a5
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x2190
movq %rbx, %rdi
callq 0x22a0
nop