// File: /workspace/github_cpp_makefile_star2_O2/reedoolang[P]reedoo/lexer.cc
// Function: lex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
vector<string> lex(string prog) {
  std::vector<std::string> lex_tokens;
  int i = 0;
  int ifcount = 0;
  int elsecount = 0;
  int start_ce = 0;
  int current_if = 0;
  string tok = "";
  string n = "";
  string expr = "";
  bool state = 0;
  bool expr_started = 0;
  bool is_expr = 0;
  bool var_started = 0;
  bool sl_comment_started = 0;
  bool unquoted_str_fnd = false;
  bool block_started = false;
  bool condstarted = false;
  string s = "";
  string v = "";
  string ce = "";
  string condition = "";

  for(i = 0; i < prog.size(); ++i) {
    tok += prog[i];
    //cout << tok << endl;
      if (tok == " " and state == 0) {
        tok = "";
        if (n != "") {
          //is_expr = 1;
          //lex_tokens.push_back(reserved[7] + ":" + n);
          condition += reserved[7] + ":" + expr + " ";
        }
        expr = "";
        n = "";
        if (v != "" and condstarted == false) {
          lex_tokens.push_back(reserved[3] + ":\"" + v + "\"");
          v = "";
        }
        
        var_started = 0;
      } else if (tok == ";" and state == 0) {
        tok = "";
        if (expr.length() >= expr.length()-1) {
          if (expr.substr(expr.length()-1) == "+" or expr.substr(expr.length()-1) == "-" or expr.substr(expr.length()-1) == "/" or expr.substr(expr.length()-1) == "*") {
            if (lnum == 0)
              lnum++;
            cout << SYNTAX_ERROR << "Numbers and expressions must not end with an opperator [line " << lnum << "]" << endl;
            /* If the error count goes about 0, the program immediately exits. This prevents crashes and provides a better user experience. */
            ecount++;
          }
        }
        if (expr != "" and is_expr == 1) {
          lex_tokens.push_back(reserved[8] + ":(" + expr + ")");
        } else if (n != "" and is_expr == 0) {
          condition += reserved[7] + ":" + expr;
          lex_tokens.push_back(reserved[7] + ":" + expr);
        }
        if (v != "") {
          lex_tokens.push_back(reserved[3] + ":\"" + v + "\"");
        }
        if (lex_tokens.back() != "sc") {
          lex_tokens.push_back(reserved[2]); 
        }        
        v = "";
        var_started = 0;
        n = "";
        expr = "";
        is_expr = 0;
      } 
      /* Single-line comments */
      else if (tok == "#" and state == 0) {
        /* Start of a single-line comment means end of an expression */
        if (expr != "" and is_expr == 1) {
            lex_tokens.push_back(reserved[8] + ":(" + expr + ")");
          } else if (n != "" and is_expr == 0) {
            lex_tokens.push_back(reserved[7] + ":" + expr);
          }
          /* Also means end of variables */
          if (v != "") {
            lex_tokens.push_back(reserved[3] + ":\"" + v + "\"");
          }
          /* If sl_comment_started doesn't already equal 1, set it to 1 */
        if (sl_comment_started == 0) {
          sl_comment_started = 1;
        }
        v = "";
        var_started = 0;
        n = "";
        expr = "";
        is_expr = 0;
      } else if (sl_comment_started == 1) {
        if (tok == "\n") {
          sl_comment_started = 0;
          if (lex_tokens.size() != 0) {
          if (lex_tokens.back() != "sc") {
            lex_tokens.push_back(reserved[2]); 
          } 
        }
        }
        tok = "";
      } else if (tok == "\r") {
        tok = "";
      } else if (tok == "\t") {
        tok = "";
      } else if (tok == "\n" and state == 1) {

        cout << SYNTAX_ERROR << "EOL found inside of string. [line " << lnum << "]" << endl;
        ecount++;

      } else if (tok == "\n" and state == 0) {
        
        if (state == 0) {
          tok = "";
          if (expr.length() >= expr.length()-1) {
            if (expr.substr(expr.length()-1) == "+" or expr.substr(expr.length()-1) == "-" or expr.substr(expr.length()-1) == "/" or expr.substr(expr.length()-1) == "*") {
              if (lnum == 0)
                lnum++;
              cout << SYNTAX_ERROR << "Numbers and expressions must not end with an opperator [line " << lnum << "]" << endl;
              /* If the error count goes about 0, the program immediately exits. This prevents crashes and provides a better user experience. */
              ecount++;
            }
          }
          lnum++;
          if (expr != "" and is_expr == 1) {
            lex_tokens.push_back(reserved[8] + ":(" + expr + ")");
          } else if (n != "" and is_expr == 0) {
            lex_tokens.push_back(reserved[7] + ":" + expr);
          }
          if (v != "") {
            lex_tokens.push_back(reserved[3] + ":\"" + v + "\"");
          }
          if (lex_tokens.size() != 0) {
            if (lex_tokens.back() != "sc" and lex_tokens.back() != "opencb") {
              lex_tokens.push_back(reserved[2]); 
            }   
          }    
          v = "";
          var_started = 0;
          n = "";
          expr = "";
          is_expr = 0;
        }
      } else if (tok == "%" and state == 0) {
        if (var_started == 0)
          var_started = 1;
      } else if (var_started == 1) {
        v += tok;
        tok = "";
      } else if (tok == "0" or tok == "1" or tok == "2" or tok == "3" or tok == "4" or tok == "5" 
        or tok == "6" or tok == "7" or tok == "8" or tok == "9") {
        if (state == 0) {
          n += tok;
          expr += tok;
        } else {
          s += tok;
        }
        tok = "";
      } else if (tok == "+" or tok == "-" or tok == "*" or tok == "/" or tok == "(" or tok == ")") {
        if (state == 0) {
          expr += tok;
          is_expr = 1;
          tok = "";
          n = "";
        }
      } else if (tok == "=" and state == 0) {
        if (lex_tokens.back() == "eq") {
          if (condstarted == false) {
            lex_tokens.back() = "eqeq";
          } else {
            
            if (v != "") {
              condition += "variable:\"" + v + "\" ";
              v = "";
            }
            var_started = 0;            
            condition += "eqeq ";
            lex_tokens.pop_back();

          } 
        } else {
        lex_tokens.push_back("eq");
        }
        tok = "";
      } else if (tok == reserved[12] and state == 0) {
          if (condstarted == false) {
            lex_tokens.push_back("and");
          } else {
            if (v != "") {
              condition += "variable:\"" + v + "\" ";
              v = "";
            }
            var_started = 0;     
            condition += "and ";
          } 
        tok = "";
      } else if (tok == reserved[13] and state == 0) {
          if (condstarted == false) {
            lex_tokens.push_back("or");
          } else {
            if (v != "") {
              condition += "variable:\"" + v + "\" ";
              v = "";
            }
            var_started = 0;     
            condition += "or ";
          }
        tok = "";
      } else if (tok == reserved[10]) {
        ifcount++;
        lex_tokens.push_back(reserved[10] + ":" + to_string(ifcount));
        condstarted = true;
        condition = "cond:";
        tok = "";
      } else if (tok == reserved[11]) {
        elsecount = ifcount;
        lex_tokens.push_back(reserved[11] + ":" + to_string(elsecount));
        ifcount--;
        tok = "";
      } else if (tok == "{") {
        block_started = true;
        condstarted = false;
        if (v != "") {
          condition += "variable:\"" + v + "\" ";
          v = "";
        }
        var_started = 0;
        if (condition != "") {
          lex_tokens.push_back(condition);
        }
        lex_tokens.push_back("opencb");
        tok = "";
        condition = "";
      } else if (tok == "}") {
        if (expr != "" and is_expr == 1) {
            lex_tokens.push_back(reserved[8] + ":(" + expr + ")");
          } else if (n != "" and is_expr == 0) {
            lex_tokens.push_back(reserved[7] + ":" + expr);
          }
          if (v != "") {
            lex_tokens.push_back(reserved[3] + ":\"" + v + "\"");
          }
          v = "";
        var_started = 0;
        n = "";
        expr = "";
        is_expr = 0;
        if (lex_tokens.back() != "opencb" and lex_tokens.back() != "sc") {
          lex_tokens.push_back("sc");
        }
        lex_tokens.push_back("closecb");
        block_started = false;
        tok = "";
      } else if (tok == reserved[0]) {
        lex_tokens.push_back(reserved[0]);
        tok = "";
      } else if (tok == "\"" or tok == "\"\"") {

        if (state == 0) {
          state = 1;
        } else if (state == 1) {
          state = 0;
          if (s == "") {
            s = "\"";
          }
          if (condstarted == false) {
            lex_tokens.push_back(reserved[1] + ":" + s + "\"");
          } else {
            condition += reserved[1] + ":" + s + "\" ";
          }
          s = "";
          tok = "";
        }
      } else if (state == 1) {
        if (tok == "\"\"") {
          s = "\"";
          lex_tokens.push_back(reserved[1] + ":" + s + "\"");
          state = 0;
          s = "";
          tok = "";
        } else {
          s += tok;
          tok = "";
        }
      } 

      if (ecount > 0) {
        exit(1);
      }
      
  }
  //cout << lex_tokens.size() << endl;
  for (i = 0; i < lex_tokens.size();i++) {
    //cout << lex_tokens[i] << endl;
  }
  return lex_tokens;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x198, %rsp            # imm = 0x198
movq %rsi, %rbx
movq %rdi, %r15
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0x6111(%rip), %rsi      # 0x9192
leaq 0xb0(%rsp), %rdi
leaq 0x110(%rsp), %rdx
callq 0x2d6a
leaq 0x60f5(%rip), %rsi      # 0x9192
leaq 0x110(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x2d6a
leaq 0x60d9(%rip), %rsi      # 0x9192
leaq 0x88(%rsp), %rdi
leaq 0x130(%rsp), %rdx
callq 0x2d6a
leaq 0x60bd(%rip), %rsi      # 0x9192
leaq 0x130(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0x2d6a
leaq 0x60a1(%rip), %rsi      # 0x9192
leaq 0xd0(%rsp), %rdi
leaq 0x158(%rsp), %rdx
callq 0x2d6a
leaq 0x6085(%rip), %rsi      # 0x9192
leaq 0x158(%rsp), %rdi
leaq 0xf0(%rsp), %rdx
callq 0x2d6a
movq %rbx, 0x150(%rsp)
leaq 0x6061(%rip), %rsi      # 0x9192
leaq 0xf0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x2d6a
xorl %ebp, %ebp
leaq 0x6046(%rip), %r13      # 0x9192
movl $0x0, 0xac(%rsp)
movl $0x0, 0x34(%rsp)
movl $0x0, 0x5c(%rsp)
xorl %ebx, %ebx
movl $0x0, 0x64(%rsp)
movl $0x0, 0x60(%rsp)
movq %r15, 0x8(%rsp)
movq 0x150(%rsp), %rax
cmpq %rbp, 0x8(%rax)
jbe 0x4b05
movq (%rax), %rax
movsbl (%rax,%rbp), %esi
leaq 0xb0(%rsp), %rdi
callq 0x21a0
leaq 0xb0(%rsp), %r12
movq %r12, %rdi
leaq 0x6029(%rip), %rsi      # 0x91df
callq 0x2e1b
movl 0x34(%rsp), %r14d
testb $0x1, %r14b
sete %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x332c
movq %r12, %rdi
movq %r13, %rsi
callq 0x2320
leaq 0x110(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
je 0x3265
leaq 0x68(%rsp), %rbx
movq %rbx, %rdi
leaq 0xa230(%rip), %rsi      # 0xd430
leaq 0x5fed(%rip), %rdx      # 0x91f4
callq 0x4eab
leaq 0x38(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
leaq 0x88(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x5fa9(%rip), %rdx      # 0x91df
callq 0x4e6d
leaq 0xf0(%rsp), %rdi
movq %r14, %rsi
callq 0x2330
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x2110
leaq 0x88(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
leaq 0x110(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb $0x1, 0x60(%rsp)
sete %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x3967
leaq 0x68(%rsp), %rbx
movq %rbx, %rdi
leaq 0xa0f9(%rip), %rsi      # 0xd3b0
leaq 0x5f1d(%rip), %rdx      # 0x91db
callq 0x4eab
leaq 0x38(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
leaq 0xd0(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x5d6b(%rip), %rdx      # 0x9058
callq 0x4e6d
movq %r15, %rdi
movq %r14, %rsi
callq 0x5100
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
jmp 0x3967
testb $0x1, %r14b
sete %r15b
movq %r12, %rdi
leaq 0x5df4(%rip), %rsi      # 0x9132
callq 0x2e1b
andb %r15b, %al
cmpb $0x1, %al
jne 0x33aa
movq %r12, %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
movq 0x90(%rsp), %rdx
testq %rdx, %rdx
leaq 0x68(%rsp), %rbx
je 0x3744
decq %rdx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
leaq 0x88(%rsp), %rsi
pushq $-0x1
popq %rcx
callq 0x2200
movq %r14, %rdi
leaq 0x5d9f(%rip), %rsi      # 0x9134
callq 0x2e1b
testb %al, %al
je 0x360f
movq %r14, %rdi
jmp 0x36da
testb $0x1, %r14b
sete %r15b
movq %r12, %rdi
leaq 0x5dd1(%rip), %rsi      # 0x918d
callq 0x2e1b
andb %r15b, %al
cmpb $0x1, %al
jne 0x3463
leaq 0x88(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
movq 0x8(%rsp), %r15
je 0x34d4
testb $0x1, 0x5c(%rsp)
je 0x34d4
leaq 0x68(%rsp), %rbx
movq %rbx, %rdi
leaq 0xa04d(%rip), %rsi      # 0xd450
leaq 0x5d80(%rip), %rdx      # 0x918a
callq 0x4eab
leaq 0x38(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
leaq 0x88(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x5c60(%rip), %rdx      # 0x9099
callq 0x4e6d
movq %r15, %rdi
movq %r14, %rsi
callq 0x5100
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
jmp 0x3543
testb $0x1, 0x64(%rsp)
movq 0x8(%rsp), %r15
leaq 0xb0(%rsp), %rdi
je 0x364d
leaq 0x5bdb(%rip), %rsi      # 0x905d
callq 0x2e1b
testb %al, %al
je 0x34bf
movq 0x8(%r15), %rdi
cmpq (%r15), %rdi
je 0x34b7
addq $-0x20, %rdi
leaq 0x5f14(%rip), %rsi      # 0x93b3
callq 0x4e63
testb %al, %al
je 0x34b7
movq %r15, %rdi
leaq 0x9ede(%rip), %rsi      # 0xd390
callq 0x4ee4
movl $0x0, 0x64(%rsp)
leaq 0xb0(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
jmp 0x3969
leaq 0x110(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb $0x1, 0x5c(%rsp)
sete %cl
andb %al, %cl
cmpb $0x1, %cl
leaq 0x68(%rsp), %rbx
jne 0x3548
leaq 0x38(%rsp), %r12
movq %r12, %rdi
leaq 0x9f29(%rip), %rsi      # 0xd430
leaq 0x5ce6(%rip), %rdx      # 0x91f4
callq 0x4eab
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x88(%rsp), %rdx
callq 0x4e8c
movq %r15, %rdi
movq %r14, %rsi
callq 0x5100
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
je 0x35c6
movq %rbx, %rdi
leaq 0x9e4a(%rip), %rsi      # 0xd3b0
leaq 0x5c6e(%rip), %rdx      # 0x91db
callq 0x4eab
leaq 0x38(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
leaq 0xd0(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x5abc(%rip), %rdx      # 0x9058
callq 0x4e6d
movq %r15, %rdi
movq %r14, %rsi
callq 0x5100
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x2110
movl 0x64(%rsp), %ecx
testb $0x1, %cl
movzbl %cl, %ecx
pushq $0x1
popq %rax
cmovel %eax, %ecx
movl %ecx, 0x64(%rsp)
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
leaq 0x110(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
leaq 0x88(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
jmp 0x395f
movq 0x90(%rsp), %rdx
decq %rdx
leaq 0x38(%rsp), %r12
movq %r12, %rdi
leaq 0x88(%rsp), %rsi
pushq $-0x1
popq %rcx
callq 0x2200
movq %r12, %rdi
leaq 0x5afa(%rip), %rsi      # 0x9136
callq 0x2e1b
testb %al, %al
je 0x368e
movq %r12, %rdi
jmp 0x36d0
leaq 0x5b3b(%rip), %rsi      # 0x918f
callq 0x2e1b
testb %al, %al
jne 0x3679
leaq 0xb0(%rsp), %rdi
leaq 0x5b25(%rip), %rsi      # 0x9191
callq 0x2e1b
testb %al, %al
je 0x39ef
leaq 0xb0(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
jmp 0x3969
movq 0x90(%rsp), %rdx
decq %rdx
movq %rbx, %rdi
leaq 0x88(%rsp), %rsi
pushq $-0x1
popq %rcx
callq 0x2200
movq %rbx, %rdi
leaq 0x5a82(%rip), %rsi      # 0x9138
callq 0x2e1b
testb %al, %al
je 0x397f
movq %rbx, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0x10(%rsp), %rdi
callq 0x2110
cmpl $0x0, 0x9ad2(%rip)      # 0xd1b8
jne 0x36f2
movl $0x1, 0x9ac6(%rip)      # 0xd1b8
movq 0x98cf(%rip), %rdi      # 0xcfc8
leaq 0x5a3c(%rip), %rsi      # 0x913c
callq 0x21d0
movq %rax, %rdi
leaq 0x5a3d(%rip), %rsi      # 0x914c
callq 0x21d0
movl 0x9a9e(%rip), %esi      # 0xd1b8
movq %rax, %rdi
callq 0x22e0
movq %rax, %rdi
leaq 0x5954(%rip), %rsi      # 0x9080
callq 0x21d0
movq %rax, %rdi
callq 0x2120
incl 0x9de9(%rip)            # 0xd528
leaq 0x68(%rsp), %rbx
leaq 0x88(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
je 0x37c9
testb $0x1, 0x5c(%rsp)
je 0x37c9
movq %rbx, %rdi
leaq 0x9ce7(%rip), %rsi      # 0xd450
leaq 0x5a1a(%rip), %rdx      # 0x918a
callq 0x4eab
leaq 0x38(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
leaq 0x88(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x58fa(%rip), %rdx      # 0x9099
callq 0x4e6d
movq %r15, %rdi
movq %r14, %rsi
callq 0x5100
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
jmp 0x3885
leaq 0x110(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb $0x1, 0x5c(%rsp)
sete %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x388a
leaq 0x38(%rsp), %r12
movq %r12, %rdi
leaq 0x9c35(%rip), %rsi      # 0xd430
leaq 0x59f2(%rip), %rdx      # 0x91f4
callq 0x4eab
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x88(%rsp), %rdx
callq 0x4e8c
leaq 0xf0(%rsp), %rdi
movq %r14, %rsi
callq 0x2330
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %r12
movq %r12, %rdi
callq 0x2110
movq %r12, %rdi
leaq 0x9be2(%rip), %rsi      # 0xd430
leaq 0x599f(%rip), %rdx      # 0x91f4
callq 0x4eab
movq %r14, %rdi
movq %r12, %rsi
leaq 0x88(%rsp), %rdx
callq 0x4e8c
movq %r15, %rdi
movq %r14, %rsi
callq 0x5100
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
je 0x3908
movq %rbx, %rdi
leaq 0x9b08(%rip), %rsi      # 0xd3b0
leaq 0x592c(%rip), %rdx      # 0x91db
callq 0x4eab
leaq 0x38(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
leaq 0xd0(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x577a(%rip), %rdx      # 0x9058
callq 0x4e6d
movq %r15, %rdi
movq %r14, %rsi
callq 0x5100
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x2110
movq 0x8(%r15), %rdi
addq $-0x20, %rdi
leaq 0x5a9c(%rip), %rsi      # 0x93b3
callq 0x4e63
testb %al, %al
je 0x392f
movq %r15, %rdi
leaq 0x9a66(%rip), %rsi      # 0xd390
callq 0x4ee4
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
leaq 0x110(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
leaq 0x88(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
movl $0x0, 0x5c(%rsp)
xorl %ebx, %ebx
movl 0x9bb9(%rip), %eax      # 0xd528
incq %rbp
testl %eax, %eax
jle 0x317e
jmp 0x4b75
movq 0x90(%rsp), %rdx
decq %rdx
leaq 0x178(%rsp), %rbx
movq %rbx, %rdi
leaq 0x88(%rsp), %rsi
pushq $-0x1
popq %rcx
callq 0x2200
movq %rbx, %rdi
leaq 0x578b(%rip), %rsi      # 0x913a
callq 0x2e1b
movq %rbx, %rdi
movl %eax, %ebx
callq 0x2110
leaq 0x68(%rsp), %r12
movq %r12, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0x10(%rsp), %rdi
callq 0x2110
testb %bl, %bl
movq %r12, %rbx
jne 0x36df
jmp 0x3744
leaq 0xb0(%rsp), %rdi
leaq 0x565f(%rip), %rsi      # 0x905d
callq 0x2e1b
testb %al, %al
je 0x3a68
testb $0x1, 0x34(%rsp)
je 0x3a68
movq 0x95b3(%rip), %rdi      # 0xcfc8
leaq 0x5720(%rip), %rsi      # 0x913c
callq 0x21d0
movq %rax, %rdi
leaq 0x5768(%rip), %rsi      # 0x9193
callq 0x21d0
movl 0x9782(%rip), %esi      # 0xd1b8
movq %rax, %rdi
callq 0x22e0
movq %rax, %rdi
leaq 0x5638(%rip), %rsi      # 0x9080
callq 0x21d0
movq %rax, %rdi
callq 0x2120
movl 0x9acd(%rip), %eax      # 0xd528
incl %eax
movl %eax, 0x9ac5(%rip)      # 0xd528
jmp 0x396f
movl 0x34(%rsp), %r14d
testb $0x1, %r14b
sete %r15b
leaq 0xb0(%rsp), %r12
movq %r12, %rdi
leaq 0x55d6(%rip), %rsi      # 0x905d
callq 0x2e1b
andb %r15b, %al
cmpb $0x1, %al
jne 0x3af3
movq %r12, %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
movq 0x90(%rsp), %rdx
testq %rdx, %rdx
leaq 0x68(%rsp), %rbx
je 0x3d42
decq %rdx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
leaq 0x88(%rsp), %rsi
pushq $-0x1
popq %rcx
callq 0x2200
movq %r14, %rdi
leaq 0x5656(%rip), %rsi      # 0x9134
callq 0x2e1b
testb %al, %al
je 0x3c51
movq %r14, %rdi
jmp 0x3cd8
testb $0x1, %r14b
sete %r15b
movq %r12, %rdi
leaq 0x56b1(%rip), %rsi      # 0x91b6
callq 0x2e1b
andb %r15b, %al
cmpb $0x1, %al
jne 0x3b27
testb $0x1, %bl
movzbl %bl, %ebx
pushq $0x1
popq %rax
cmovel %eax, %ebx
movq 0x8(%rsp), %r15
jmp 0x3969
leaq 0xd0(%rsp), %rdi
testb $0x1, %bl
movq 0x8(%rsp), %r15
jne 0x3c3f
leaq 0xb0(%rsp), %r14
movq %r14, %rdi
leaq 0x5669(%rip), %rsi      # 0x91b8
callq 0x2e1b
testb %al, %al
jne 0x3c13
movq %r14, %rdi
leaq 0x5654(%rip), %rsi      # 0x91ba
callq 0x2e1b
testb %al, %al
jne 0x3c13
movq %r14, %rdi
leaq 0x563f(%rip), %rsi      # 0x91bc
callq 0x2e1b
testb %al, %al
jne 0x3c13
movq %r14, %rdi
leaq 0x562a(%rip), %rsi      # 0x91be
callq 0x2e1b
testb %al, %al
jne 0x3c13
movq %r14, %rdi
leaq 0x5619(%rip), %rsi      # 0x91c0
callq 0x2e1b
testb %al, %al
jne 0x3c13
movq %r14, %rdi
leaq 0x5608(%rip), %rsi      # 0x91c2
callq 0x2e1b
testb %al, %al
jne 0x3c13
movq %r14, %rdi
leaq 0x55f7(%rip), %rsi      # 0x91c4
callq 0x2e1b
testb %al, %al
jne 0x3c13
movq %r14, %rdi
leaq 0x55e6(%rip), %rsi      # 0x91c6
callq 0x2e1b
testb %al, %al
jne 0x3c13
movq %r14, %rdi
leaq 0x55d5(%rip), %rsi      # 0x91c8
callq 0x2e1b
testb %al, %al
jne 0x3c13
movq %r14, %rdi
leaq 0x55c4(%rip), %rsi      # 0x91ca
callq 0x2e1b
testb %al, %al
je 0x3f60
leaq 0x130(%rsp), %rdi
testb $0x1, 0x34(%rsp)
jne 0x3c3f
leaq 0x110(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x2330
leaq 0x88(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x2330
jmp 0x3679
movq 0x90(%rsp), %rdx
decq %rdx
leaq 0x38(%rsp), %r12
movq %r12, %rdi
leaq 0x88(%rsp), %rsi
pushq $-0x1
popq %rcx
callq 0x2200
movq %r12, %rdi
leaq 0x54b8(%rip), %rsi      # 0x9136
callq 0x2e1b
testb %al, %al
je 0x3c8c
movq %r12, %rdi
jmp 0x3cce
movq 0x90(%rsp), %rdx
decq %rdx
movq %rbx, %rdi
leaq 0x88(%rsp), %rsi
pushq $-0x1
popq %rcx
callq 0x2200
movq %rbx, %rdi
leaq 0x5484(%rip), %rsi      # 0x9138
callq 0x2e1b
testb %al, %al
je 0x3ef0
movq %rbx, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0x10(%rsp), %rdi
callq 0x2110
cmpl $0x0, 0x94d4(%rip)      # 0xd1b8
jne 0x3cf0
movl $0x1, 0x94c8(%rip)      # 0xd1b8
movq 0x92d1(%rip), %rdi      # 0xcfc8
leaq 0x543e(%rip), %rsi      # 0x913c
callq 0x21d0
movq %rax, %rdi
leaq 0x543f(%rip), %rsi      # 0x914c
callq 0x21d0
movl 0x94a0(%rip), %esi      # 0xd1b8
movq %rax, %rdi
callq 0x22e0
movq %rax, %rdi
leaq 0x5356(%rip), %rsi      # 0x9080
callq 0x21d0
movq %rax, %rdi
callq 0x2120
incl 0x97eb(%rip)            # 0xd528
leaq 0x68(%rsp), %rbx
incl 0x9470(%rip)            # 0xd1b8
leaq 0x88(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
je 0x3dca
testb $0x1, 0x5c(%rsp)
je 0x3dca
movq %rbx, %rdi
leaq 0x96e3(%rip), %rsi      # 0xd450
leaq 0x5416(%rip), %rdx      # 0x918a
callq 0x4eab
leaq 0x38(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
leaq 0x88(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x52f6(%rip), %rdx      # 0x9099
callq 0x4e6d
movq %r15, %rdi
movq %r14, %rsi
callq 0x5100
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
jmp 0x3e34
leaq 0x110(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb $0x1, 0x5c(%rsp)
sete %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x3e39
leaq 0x38(%rsp), %r12
movq %r12, %rdi
leaq 0x9638(%rip), %rsi      # 0xd430
leaq 0x53f5(%rip), %rdx      # 0x91f4
callq 0x4eab
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x88(%rsp), %rdx
callq 0x4e8c
movq %r15, %rdi
movq %r14, %rsi
callq 0x5100
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
je 0x3eb7
movq %rbx, %rdi
leaq 0x9559(%rip), %rsi      # 0xd3b0
leaq 0x537d(%rip), %rdx      # 0x91db
callq 0x4eab
leaq 0x38(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
leaq 0xd0(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x51cb(%rip), %rdx      # 0x9058
callq 0x4e6d
movq %r15, %rdi
movq %r14, %rsi
callq 0x5100
movq %r14, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x2110
movq 0x8(%r15), %rdi
cmpq (%r15), %rdi
je 0x392f
addq $-0x20, %rdi
leaq 0x54e4(%rip), %rsi      # 0x93b3
callq 0x4e63
testb %al, %al
je 0x392f
movq 0x8(%r15), %rdi
addq $-0x20, %rdi
leaq 0x54d3(%rip), %rsi      # 0x93be
jmp 0x3917
movq 0x90(%rsp), %rdx
decq %rdx
leaq 0x178(%rsp), %rbx
movq %rbx, %rdi
leaq 0x88(%rsp), %rsi
pushq $-0x1
popq %rcx
callq 0x2200
movq %rbx, %rdi
leaq 0x521a(%rip), %rsi      # 0x913a
callq 0x2e1b
movq %rbx, %rdi
movl %eax, %ebx
callq 0x2110
leaq 0x68(%rsp), %r12
movq %r12, %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0x10(%rsp), %rdi
callq 0x2110
testb %bl, %bl
movq %r12, %rbx
jne 0x3cdd
jmp 0x3d42
movq %r14, %rdi
leaq 0x51ca(%rip), %rsi      # 0x9134
callq 0x2e1b
testb %al, %al
jne 0x3fd2
movq %r14, %rdi
leaq 0x51b9(%rip), %rsi      # 0x9136
callq 0x2e1b
testb %al, %al
jne 0x3fd2
movq %r14, %rdi
leaq 0x51aa(%rip), %rsi      # 0x913a
callq 0x2e1b
testb %al, %al
jne 0x3fd2
movq %r14, %rdi
leaq 0x5195(%rip), %rsi      # 0x9138
callq 0x2e1b
testb %al, %al
jne 0x3fd2
movq %r14, %rdi
leaq 0x51d5(%rip), %rsi      # 0x918b
callq 0x2e1b
testb %al, %al
jne 0x3fd2
movq %r14, %rdi
leaq 0x50d0(%rip), %rsi      # 0x9099
callq 0x2e1b
testb %al, %al
je 0x4022
testb $0x1, 0x34(%rsp)
jne 0x3b1d
leaq 0x88(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
movq 0x8(%rsp), %r15
callq 0x2330
leaq 0xb0(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
movb $0x1, %al
movl %eax, 0x5c(%rsp)
leaq 0x110(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
jmp 0x3969
testb $0x1, 0x34(%rsp)
sete %r15b
movq %r14, %rdi
leaq 0x5197(%rip), %rsi      # 0x91cc
callq 0x2e1b
andb %r15b, %al
cmpb $0x1, %al
jne 0x408b
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
addq $-0x20, %rdi
leaq 0x517b(%rip), %rsi      # 0x91d0
callq 0x2e1b
testb %al, %al
je 0x40ee
testb $0x1, 0x60(%rsp)
jne 0x418e
movq 0x8(%rsp), %r15
movq 0x8(%r15), %rdi
addq $-0x20, %rdi
leaq 0x514d(%rip), %rsi      # 0x91ce
callq 0x2320
jmp 0x422f
testb $0x1, 0x34(%rsp)
sete %r15b
leaq 0xb0(%rsp), %rdi
leaq 0x942d(%rip), %rsi      # 0xd4d0
callq 0x4e3a
andb %r15b, %al
cmpb $0x1, %al
jne 0x4127
testb $0x1, 0x60(%rsp)
jne 0x4244
leaq 0x10(%rsp), %rdi
leaq 0x5065(%rip), %rsi      # 0x912b
leaq 0x38(%rsp), %rdx
callq 0x2d6a
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
jmp 0x42dd
leaq 0x10(%rsp), %rdi
leaq 0x50d6(%rip), %rsi      # 0x91d0
leaq 0x38(%rsp), %rdx
callq 0x2d6a
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
movq 0x8(%rsp), %r15
jmp 0x422f
testb $0x1, 0x34(%rsp)
sete %r15b
leaq 0xb0(%rsp), %rdi
leaq 0x93b1(%rip), %rsi      # 0xd4f0
callq 0x4e3a
andb %r15b, %al
cmpb $0x1, %al
jne 0x42f7
testb $0x1, 0x60(%rsp)
jne 0x43ba
leaq 0x10(%rsp), %rdi
leaq 0x4fc9(%rip), %rsi      # 0x912f
leaq 0x38(%rsp), %rdx
callq 0x2d6a
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
jmp 0x4453
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
movq 0x8(%rsp), %r15
je 0x4211
leaq 0x38(%rsp), %rdi
leaq 0x5020(%rip), %rsi      # 0x91d3
leaq 0xd0(%rsp), %rdx
callq 0x4f10
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x500d(%rip), %rdx      # 0x91de
callq 0x4e6d
leaq 0xf0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2330
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
leaq 0xf0(%rsp), %rdi
leaq 0x4fc1(%rip), %rsi      # 0x91e1
callq 0x2310
movq %r15, %rdi
callq 0x4f86
xorl %ebx, %ebx
leaq 0xb0(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
jmp 0x3969
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
movq 0x8(%rsp), %r15
je 0x42c7
leaq 0x38(%rsp), %rdi
leaq 0x4f6a(%rip), %rsi      # 0x91d3
leaq 0xd0(%rsp), %rdx
callq 0x4f10
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x4f57(%rip), %rdx      # 0x91de
callq 0x4e6d
leaq 0xf0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2330
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
leaq 0xf0(%rsp), %rdi
leaq 0x4f11(%rip), %rsi      # 0x91e7
callq 0x2310
xorl %ebx, %ebx
leaq 0xb0(%rsp), %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
jmp 0x3969
leaq 0xb0(%rsp), %rdi
leaq 0x918a(%rip), %rsi      # 0xd490
callq 0x4e3a
testb %al, %al
je 0x446d
leaq 0x38(%rsp), %rdi
leaq 0x9171(%rip), %rsi      # 0xd490
leaq 0x4ece(%rip), %rdx      # 0x91f4
callq 0x4eab
movl 0xac(%rsp), %esi
incl %esi
leaq 0x68(%rsp), %rdi
movl %esi, 0xac(%rsp)
callq 0x5001
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x4f9a
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x68(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0xf0(%rsp), %rdi
leaq 0x4e5b(%rip), %rsi      # 0x91f0
movq 0x8(%rsp), %r15
callq 0x2320
movb $0x1, %al
movl %eax, 0x60(%rsp)
leaq 0xb0(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
jmp 0x3969
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
movq 0x8(%rsp), %r15
je 0x443d
leaq 0x38(%rsp), %rdi
leaq 0x4df4(%rip), %rsi      # 0x91d3
leaq 0xd0(%rsp), %rdx
callq 0x4f10
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x4de1(%rip), %rdx      # 0x91de
callq 0x4e6d
leaq 0xf0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2330
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
leaq 0xf0(%rsp), %rdi
leaq 0x4da0(%rip), %rsi      # 0x91ec
callq 0x2310
xorl %ebx, %ebx
leaq 0xb0(%rsp), %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
jmp 0x3969
leaq 0xb0(%rsp), %rdi
leaq 0x9034(%rip), %rsi      # 0xd4b0
callq 0x4e3a
testb %al, %al
je 0x4514
leaq 0x38(%rsp), %rdi
leaq 0x901b(%rip), %rsi      # 0xd4b0
leaq 0x4d58(%rip), %rdx      # 0x91f4
callq 0x4eab
leaq 0x68(%rsp), %rdi
movl 0xac(%rsp), %esi
callq 0x5001
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x4f9a
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x68(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0xb0(%rsp), %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
decl 0xac(%rsp)
jmp 0x3969
leaq 0xb0(%rsp), %rdi
leaq 0x4cd3(%rip), %rsi      # 0x91f6
callq 0x2e1b
testb %al, %al
je 0x463a
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
movq 0x8(%rsp), %r15
je 0x45b3
leaq 0x38(%rsp), %rdi
leaq 0x4c7e(%rip), %rsi      # 0x91d3
leaq 0xd0(%rsp), %rdx
callq 0x4f10
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x4c6b(%rip), %rdx      # 0x91de
callq 0x4e6d
leaq 0xf0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2330
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
leaq 0xf0(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
je 0x45d7
movq %r15, %rdi
leaq 0xf0(%rsp), %rsi
callq 0x4ee4
leaq 0x10(%rsp), %rdi
leaq 0x4ddb(%rip), %rsi      # 0x93be
leaq 0x38(%rsp), %rdx
callq 0x2d6a
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0xb0(%rsp), %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
leaq 0xf0(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
xorl %ebx, %ebx
movl $0x0, 0x60(%rsp)
jmp 0x3969
leaq 0xb0(%rsp), %rdi
leaq 0x4baf(%rip), %rsi      # 0x91f8
callq 0x2e1b
testb %al, %al
je 0x46eb
leaq 0x88(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
je 0x4720
testb $0x1, 0x5c(%rsp)
je 0x4720
leaq 0x68(%rsp), %rdi
leaq 0x8dcb(%rip), %rsi      # 0xd450
leaq 0x4afe(%rip), %rdx      # 0x918a
callq 0x4eab
leaq 0x38(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x49e0(%rip), %rdx      # 0x9099
callq 0x4e6d
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0x68(%rsp), %rdi
jmp 0x478c
leaq 0xb0(%rsp), %rdi
leaq 0x8c56(%rip), %rsi      # 0xd350
callq 0x4e3a
testb %al, %al
je 0x48f1
movq 0x8(%rsp), %r15
movq %r15, %rdi
leaq 0x8c3a(%rip), %rsi      # 0xd350
callq 0x4ee4
jmp 0x3679
leaq 0x110(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb $0x1, 0x5c(%rsp)
sete %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x4791
leaq 0x38(%rsp), %rdi
leaq 0x8ce5(%rip), %rsi      # 0xd430
leaq 0x4aa2(%rip), %rdx      # 0x91f4
callq 0x4eab
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x4e8c
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
callq 0x4e63
testb %al, %al
je 0x4817
leaq 0x68(%rsp), %rdi
leaq 0x8bff(%rip), %rsi      # 0xd3b0
leaq 0x4a23(%rip), %rdx      # 0x91db
callq 0x4eab
leaq 0x38(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x4873(%rip), %rdx      # 0x9058
callq 0x4e6d
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0x68(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
leaq 0x110(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
leaq 0x88(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
movq 0x8(%r15), %rdi
addq $-0x20, %rdi
leaq 0x4b63(%rip), %rsi      # 0x93be
callq 0x4e63
testb %al, %al
je 0x48b0
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
addq $-0x20, %rdi
leaq 0x4b3b(%rip), %rsi      # 0x93b3
callq 0x4e63
testb %al, %al
je 0x48b0
leaq 0x10(%rsp), %rdi
leaq 0x4b26(%rip), %rsi      # 0x93b3
leaq 0x38(%rsp), %rdx
callq 0x2d6a
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x10(%rsp), %rdi
leaq 0x493e(%rip), %rsi      # 0x91fa
leaq 0x38(%rsp), %rdx
callq 0x2d6a
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0xb0(%rsp), %rdi
movq 0x8(%rsp), %r15
jmp 0x3957
leaq 0xb0(%rsp), %rdi
leaq 0x4758(%rip), %rsi      # 0x9058
callq 0x2e1b
testb %al, %al
jne 0x4925
leaq 0xb0(%rsp), %rdi
leaq 0x48ea(%rip), %rsi      # 0x9202
callq 0x2e1b
testb %al, %al
je 0x49c8
testb $0x1, 0x34(%rsp)
jne 0x4937
movb $0x1, %al
movl %eax, 0x34(%rsp)
jmp 0x3b1d
leaq 0x130(%rsp), %rdi
movq %r13, %rsi
callq 0x2e1b
testb %al, %al
movq 0x8(%rsp), %r15
je 0x4964
leaq 0x130(%rsp), %rdi
leaq 0x46f9(%rip), %rsi      # 0x9058
callq 0x2320
testb $0x1, 0x60(%rsp)
jne 0x4a5e
leaq 0x68(%rsp), %rdi
leaq 0x89f5(%rip), %rsi      # 0xd370
leaq 0x4872(%rip), %rdx      # 0x91f4
callq 0x4eab
leaq 0x38(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x130(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x46a9(%rip), %rdx      # 0x9058
callq 0x4e6d
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
jmp 0x4ab5
testb $0x1, 0x34(%rsp)
je 0x3b1d
leaq 0xb0(%rsp), %rdi
leaq 0x4820(%rip), %rsi      # 0x9202
callq 0x2e1b
leaq 0x130(%rsp), %rdi
testb %al, %al
movq 0x8(%rsp), %r15
je 0x3c3f
leaq 0x4655(%rip), %rsi      # 0x9058
callq 0x2320
leaq 0x68(%rsp), %rdi
leaq 0x895c(%rip), %rsi      # 0xd370
leaq 0x47d9(%rip), %rdx      # 0x91f4
callq 0x4eab
leaq 0x38(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x130(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x4610(%rip), %rdx      # 0x9058
callq 0x4e6d
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5100
jmp 0x4ab5
leaq 0x68(%rsp), %rdi
leaq 0x8906(%rip), %rsi      # 0xd370
leaq 0x4783(%rip), %rdx      # 0x91f4
callq 0x4eab
leaq 0x38(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x130(%rsp), %rdx
callq 0x4e8c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x4740(%rip), %rdx      # 0x91de
callq 0x4e6d
leaq 0xf0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2330
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
leaq 0x68(%rsp), %rdi
callq 0x2110
leaq 0x130(%rsp), %rdi
movq %r13, %rsi
movq 0x8(%rsp), %r15
callq 0x2320
leaq 0xb0(%rsp), %rdi
movq %r13, %rsi
callq 0x2320
movl $0x0, 0x34(%rsp)
jmp 0x3969
leaq 0xf0(%rsp), %rdi
callq 0x2110
leaq 0x158(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0x130(%rsp), %rdi
callq 0x2110
leaq 0x88(%rsp), %rdi
callq 0x2110
leaq 0x110(%rsp), %rdi
callq 0x2110
leaq 0xb0(%rsp), %rdi
callq 0x2110
movq %r15, %rax
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x1
popq %rdi
callq 0x2230
jmp 0x4c88
jmp 0x4c76
jmp 0x4db6
jmp 0x4c88
jmp 0x4c88
jmp 0x4d94
jmp 0x4d9b
jmp 0x4d5b
jmp 0x4d94
jmp 0x4d9b
jmp 0x4c88
jmp 0x4c56
jmp 0x4d6d
jmp 0x4d6d
jmp 0x4d5b
jmp 0x4d94
jmp 0x4db6
jmp 0x4c88
jmp 0x4c88
jmp 0x4db6
jmp 0x4c88
jmp 0x4c88
jmp 0x4d5b
jmp 0x4d5b
jmp 0x4d6d
jmp 0x4c88
jmp 0x4c88
jmp 0x4d72
jmp 0x4c88
jmp 0x4d72
jmp 0x4d6d
jmp 0x4d6d
jmp 0x4d5b
jmp 0x4c88
jmp 0x4c88
jmp 0x4d5b
jmp 0x4d9b
jmp 0x4c88
jmp 0x4d94
jmp 0x4d9b
jmp 0x4c88
jmp 0x4db6
jmp 0x4d94
jmp 0x4d72
jmp 0x4c88
jmp 0x4db6
jmp 0x4d72
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2110
jmp 0x4c79
jmp 0x4d6d
jmp 0x4d9b
jmp 0x4c88
jmp 0x4d6d
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
jmp 0x4d7a
jmp 0x4d72
movq %rax, %rbx
jmp 0x4dc3
jmp 0x4cd8
jmp 0x4d33
jmp 0x4dcc
jmp 0x4d9b
jmp 0x4d94
jmp 0x4db6
jmp 0x4d5b
jmp 0x4d72
jmp 0x4d6d
jmp 0x4dcc
jmp 0x4d9b
jmp 0x4d94
jmp 0x4db6
jmp 0x4dcc
jmp 0x4dcc
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x2110
jmp 0x4d36
jmp 0x4d9b
jmp 0x4dcc
jmp 0x4db6
jmp 0x4d94
movq %rax, %rbx
jmp 0x4ddc
movq %rax, %rbx
jmp 0x4de9
movq %rax, %rbx
jmp 0x4df6
movq %rax, %rbx
jmp 0x4e03
movq %rax, %rbx
jmp 0x4e10
movq %rax, %rbx
jmp 0x4e1d
movq %rax, %rbx
jmp 0x4e2a
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x2110
jmp 0x4d5e
jmp 0x4d72
jmp 0x4d6d
jmp 0x4dcc
jmp 0x4db6
jmp 0x4dcc
jmp 0x4d9b
jmp 0x4d94
jmp 0x4db6
jmp 0x4dcc
jmp 0x4d9b
jmp 0x4d94
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
jmp 0x4dbe
jmp 0x4d72
jmp 0x4d6d
jmp 0x4dcc
jmp 0x4dcc
movq %rax, %rbx
jmp 0x4d7f
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
jmp 0x4dbe
jmp 0x4db6
jmp 0x4dcc
jmp 0x4d9b
jmp 0x4d94
jmp 0x4dcc
jmp 0x4d9b
jmp 0x4d94
movq %rax, %rbx
jmp 0x4da8
jmp 0x4dcc
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2110
leaq 0x38(%rsp), %rdi
callq 0x2110
jmp 0x4db9
jmp 0x4db6
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x2110
movq 0x8(%rsp), %r15
jmp 0x4dcf
jmp 0x4dcc
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x2110
leaq 0x158(%rsp), %rdi
callq 0x2110
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0x130(%rsp), %rdi
callq 0x2110
leaq 0x88(%rsp), %rdi
callq 0x2110
leaq 0x110(%rsp), %rdi
callq 0x2110
leaq 0xb0(%rsp), %rdi
callq 0x2110
movq %r15, %rdi
callq 0x2da6
movq %rbx, %rdi
callq 0x22f0