// File: /workspace/github_cpp_makefile_star2_O2/reedoolang[P]reedoo/parser.cc
// Function: parse(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>)
void parse(vector<string> tokens) {
  int errcount = 0;
  int linenum = 1;
  int i = 0;
  int starti = 0;
  bool cond = false;
  int cond_result = 2;
  int opencb_count = 0;
  int i_diff = 0;
  string cond_chunk = "";
  string varname = "";
  string new_cond = "";

  while (i < tokens.size()) {
    
    TOP:if (tokens[i] + " " + tokens[i+1] == "print sc") {
      cout << SYNTAX_ERROR << "'print' supplied without anything to print [line " << linenum << "]" << endl;
      errcount++;
      i+=2;
      break;
    }

    if (tokens[i] + " " + tokens[i+1].substr(0,6) + " " + tokens[i+2] == "print string sc" or
        tokens[i] + " " + tokens[i+1].substr(0,3) + " " + tokens[i+2] == "print num sc" or
        tokens[i] + " " + tokens[i+1].substr(0,4) + " " + tokens[i+2] == "print expr sc" or
        tokens[i] + " " + tokens[i+1].substr(0,8) + " " + tokens[i+2] == "print variable sc") {
      if (tokens[i+1].substr(0,8) == "variable") {
        doPRINT(goGETVAR(tokens[i+1]));
      } else {
        doPRINT(tokens[i+1]);
      }
      i+=3;
    } else if (tokens[i].substr(0,8) + " " + tokens[i+1] + " " + tokens[i+2].substr(0,3) + " " + tokens[i+3] == "variable eq num sc" or
        tokens[i].substr(0,8) + " " + tokens[i+1] + " " + tokens[i+2].substr(0,6) + " " + tokens[i+3] == "variable eq string sc" or
        tokens[i].substr(0,8) + " " + tokens[i+1] + " " + tokens[i+2].substr(0,4) + " " + tokens[i+3] == "variable eq expr sc" or
        tokens[i].substr(0,8) + " " + tokens[i+1] + " " + tokens[i+2].substr(0,8) + " " + tokens[i+3] == "variable eq variable sc") {
      

      if (tokens[i+2].substr(0,8) == "variable") {
        doASSIGN(tokens[i],goGETVAR(tokens[i+2]));
      } else {
        doASSIGN(tokens[i],tokens[i+2]);
      }

      i+=4;
    } else if (tokens[i].substr(0,2) + " " + tokens[i+1].substr(0,4) + " " + tokens[i+2] == "if cond opencb") {
        cond_chunk = tokens[i+1].substr(5);
        new_cond = "";
        for (int it = 0; it < cond_chunk.size(); it++) {
          if (cond_chunk[it] == ' ') {
            varname = cond_chunk.substr(0,it);

            if (varname.size() > 8 and varname[10] == '%') {
              varname = goGETVAR(varname);
            }

            //cout << varname << endl;

            new_cond += varname + " ";
            cond_chunk = cond_chunk.substr(it+1);
            it = 0;
          }
        }
        //cout << new_cond << endl;
        //cout << tokens[i+1].substr(5) << endl;
        cond_result = eval_cond(new_cond);
        //cout << "----" << cond_result << "-----" << endl;
        starti = i;
        if (eval_cond(new_cond)) {
            // Run true block
            //cout << "TOKENS: " << tokens[i+1].substr(5) << eval_cond(tokens[i+1].substr(5)) << endl;
            i+=1;
        } else {
            
            //cout << "TOKENS: " << tokens[i+1].substr(5) << eval_cond(tokens[i+1].substr(5)) << endl;
            

           //while (tokens[i] != "closecb") {
              
              while (tokens[i+1] != "else" + tokens[starti].substr(2)) {
                i++;
              }
          // } 
            
           

          i++;

        }
        i+=2;
    } else if (tokens[i] == "closecb") {
        if (tokens[i+1] == "else") {
          i+=1;
          if (cond_result == 0) {

          }
        } else {
          i+=2;
        }
    } else {
        break;
    }

    if (i >= tokens.size()-2) {
      break;
    }

    if (errcount > 0) {
      break;
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x5e8, %rsp            # imm = 0x5E8
movq %rdi, %rbx
leaq 0x3de3(%rip), %r14      # 0x9192
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rdx
movq %r14, %rsi
callq 0x2d6a
leaq 0x108(%rsp), %rdi
leaq 0xe8(%rsp), %rdx
movq %r14, %rsi
callq 0x2d6a
leaq 0x3dac(%rip), %rsi      # 0x9192
leaq 0xe8(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x2d6a
movq (%rbx), %rsi
movq %rbx, 0x8(%rsp)
movq 0x8(%rbx), %rax
xorl %edi, %edi
movslq %edi, %r13
subq %rsi, %rax
sarq $0x5, %rax
cmpq %r13, %rax
jbe 0x6370
movq %rdi, 0x18(%rsp)
movq %r13, %rax
shlq $0x5, %rax
movq %rax, 0x10(%rsp)
addq %rax, %rsi
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
leaq 0x3da3(%rip), %rdx      # 0x91df
callq 0x4eab
leaq 0x1(%r13), %rbp
shlq $0x5, %rbp
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %rbp, %rdx
leaq 0x60(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x4e8c
movq %r15, %rdi
leaq 0x3e7b(%rip), %rsi      # 0x92e9
callq 0x2e1b
movl %eax, %r14d
movq %r15, %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x2110
testb %r14b, %r14b
jne 0x632c
movq 0x8(%rsp), %rbx
movq (%rbx), %rsi
addq 0x10(%rsp), %rsi
leaq 0x20(%rsp), %rdi
leaq 0x3d37(%rip), %rdx      # 0x91df
callq 0x4eab
movq (%rbx), %rsi
addq %rbp, %rsi
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
xorl %edx, %edx
pushq $0x6
popq %rcx
callq 0x2200
leaq 0x80(%rsp), %r14
movq %r14, %rdi
leaq 0x20(%rsp), %rsi
movq %rbx, %rdx
callq 0x4f9a
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
leaq 0x3ced(%rip), %rdx      # 0x91df
callq 0x4e6d
leaq 0x2(%r13), %r14
movq %r14, 0xe0(%rsp)
shlq $0x5, %r14
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %r14, %rdx
leaq 0x60(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x4e8c
movq %r15, %rdi
leaq 0x3df8(%rip), %rsi      # 0x9324
callq 0x2e1b
testb %al, %al
je 0x5570
movq %r15, %rdi
callq 0x2110
leaq 0x40(%rsp), %rdi
callq 0x2110
leaq 0x80(%rsp), %rdi
callq 0x2110
leaq 0xc0(%rsp), %rdi
callq 0x2110
leaq 0x20(%rsp), %rdi
callq 0x2110
jmp 0x5873
movq 0x8(%rsp), %rbx
movq (%rbx), %rsi
addq 0x10(%rsp), %rsi
leaq 0x1c8(%rsp), %rdi
leaq 0x3c53(%rip), %rdx      # 0x91df
callq 0x4eab
movq (%rbx), %rsi
addq %rbp, %rsi
leaq 0x288(%rsp), %r15
movq %r15, %rdi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x2200
leaq 0x2a8(%rsp), %r12
movq %r12, %rdi
leaq 0x1c8(%rsp), %rbx
movq %rbx, %rsi
movq %r15, %rdx
callq 0x4f9a
leaq 0x2c8(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
leaq 0x3c00(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %r14, %rdx
leaq 0xa0(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x4e8c
movq %r12, %rdi
leaq 0x3d28(%rip), %rsi      # 0x9334
callq 0x2e1b
movb $0x1, %r12b
testb %al, %al
jne 0x57f3
movq 0x8(%rsp), %rbx
movq (%rbx), %rsi
addq 0x10(%rsp), %rsi
leaq 0x188(%rsp), %rdi
leaq 0x3ba7(%rip), %rdx      # 0x91df
callq 0x4eab
movq (%rbx), %rsi
addq %rbp, %rsi
leaq 0x228(%rsp), %rbx
movq %rbx, %rdi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x2200
leaq 0x248(%rsp), %r15
movq %r15, %rdi
leaq 0x188(%rsp), %rsi
movq %rbx, %rdx
callq 0x4f9a
leaq 0x1c8(%rsp), %rbx
leaq 0x1a8(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
leaq 0x3b4f(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %r14, %rdx
leaq 0x268(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x4e8c
movq %r15, %rdi
leaq 0x3c84(%rip), %rsi      # 0x9341
callq 0x2e1b
movb $0x1, %r12b
testb %al, %al
jne 0x57b2
movq 0x8(%rsp), %rbx
movq (%rbx), %rsi
addq 0x10(%rsp), %rsi
leaq 0x168(%rsp), %rdi
leaq 0x3af6(%rip), %rdx      # 0x91df
callq 0x4eab
movq (%rbx), %rsi
addq %rbp, %rsi
leaq 0x148(%rsp), %rbx
movq %rbx, %rdi
xorl %edx, %edx
pushq $0x8
popq %rcx
callq 0x2200
leaq 0x1e8(%rsp), %r15
movq %r15, %rdi
leaq 0x168(%rsp), %rsi
movq %rbx, %rdx
callq 0x4f9a
leaq 0x1c8(%rsp), %rbx
leaq 0x208(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
leaq 0x3a9e(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %r14, %rdx
leaq 0x348(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x4e8c
movq %r15, %rdi
leaq 0x3be1(%rip), %rsi      # 0x934f
callq 0x2e1b
movl %eax, %r12d
movq %r15, %rdi
callq 0x2110
leaq 0x208(%rsp), %rdi
callq 0x2110
leaq 0x1e8(%rsp), %rdi
callq 0x2110
leaq 0x148(%rsp), %rdi
callq 0x2110
leaq 0x168(%rsp), %rdi
callq 0x2110
leaq 0x268(%rsp), %rdi
callq 0x2110
leaq 0x1a8(%rsp), %rdi
callq 0x2110
leaq 0x248(%rsp), %rdi
callq 0x2110
leaq 0x228(%rsp), %rdi
callq 0x2110
leaq 0x188(%rsp), %rdi
callq 0x2110
leaq 0xa0(%rsp), %rdi
callq 0x2110
leaq 0x2c8(%rsp), %rdi
callq 0x2110
leaq 0x2a8(%rsp), %rdi
callq 0x2110
leaq 0x288(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x2110
leaq 0x60(%rsp), %r15
movq %r15, %rdi
callq 0x2110
leaq 0x40(%rsp), %rdi
callq 0x2110
leaq 0x80(%rsp), %rdi
callq 0x2110
leaq 0xc0(%rsp), %rdi
callq 0x2110
leaq 0x20(%rsp), %rdi
callq 0x2110
testb %r12b, %r12b
je 0x5945
movq 0x8(%rsp), %rbx
movq (%rbx), %rsi
addq %rbp, %rsi
movq %r15, %rdi
xorl %edx, %edx
pushq $0x8
popq %rcx
callq 0x2200
movq %r15, %rdi
leaq 0x377c(%rip), %rsi      # 0x9011
callq 0x2e1b
movl %eax, %r14d
movq %r15, %rdi
callq 0x2110
addq (%rbx), %rbp
testb %r14b, %r14b
leaq 0x5a8(%rsp), %r14
je 0x58ef
leaq 0x328(%rsp), %rdi
movq %rbp, %rsi
callq 0x2260
movq %r14, %rdi
leaq 0x328(%rsp), %rsi
callq 0x6918
movq %r14, %rdi
callq 0x8818
movq %r14, %rdi
callq 0x2110
leaq 0x328(%rsp), %rdi
jmp 0x5912
leaq 0x4c8(%rsp), %rdi
movq %rbp, %rsi
callq 0x2260
leaq 0x4c8(%rsp), %r14
movq %r14, %rdi
callq 0x8818
movq %r14, %rdi
callq 0x2110
movq 0x18(%rsp), %rdi
addl $0x3, %edi
movslq %edi, %rcx
movq (%rbx), %rsi
movq 0x8(%rbx), %rax
movq %rax, %rdx
subq %rsi, %rdx
sarq $0x5, %rdx
addq $-0x2, %rdx
cmpq %rcx, %rdx
ja 0x5406
jmp 0x6370
movq 0x8(%rsp), %rax
movq (%rax), %rsi
addq 0x10(%rsp), %rsi
leaq 0x2c8(%rsp), %rbx
movq %rbx, %rdi
xorl %edx, %edx
pushq $0x8
popq %rcx
callq 0x2200
leaq 0xa0(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
leaq 0x3863(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %rbp, %rdx
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x4e8c
leaq 0x20(%rsp), %rdi
movq %rbx, %rsi
leaq 0x3831(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rsi
addq %r14, %rsi
leaq 0x2a8(%rsp), %rbx
movq %rbx, %rdi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x2200
leaq 0x80(%rsp), %r15
movq %r15, %rdi
leaq 0x20(%rsp), %rsi
movq %rbx, %rdx
callq 0x4f9a
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
leaq 0x37e2(%rip), %rdx      # 0x91df
callq 0x4e6d
addq $0x3, %r13
shlq $0x5, %r13
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %r13, %rdx
leaq 0x60(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x4e8c
movq %r15, %rdi
leaq 0x3932(%rip), %rsi      # 0x9361
callq 0x2e1b
movb $0x1, %r12b
testb %al, %al
jne 0x5e5a
movq 0x8(%rsp), %rax
movq (%rax), %rsi
addq 0x10(%rsp), %rsi
leaq 0x228(%rsp), %r15
movq %r15, %rdi
xorl %edx, %edx
pushq $0x8
popq %rcx
callq 0x2200
leaq 0x1c8(%rsp), %rbx
leaq 0x188(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
leaq 0x3761(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %rbp, %rdx
leaq 0x248(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x4e8c
leaq 0x1a8(%rsp), %rdi
movq %r15, %rsi
leaq 0x372c(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rsi
addq %r14, %rsi
leaq 0x348(%rsp), %r15
movq %r15, %rdi
xorl %edx, %edx
pushq $0x6
popq %rcx
callq 0x2200
leaq 0x268(%rsp), %r12
movq %r12, %rdi
leaq 0x1a8(%rsp), %rsi
movq %r15, %rdx
callq 0x4f9a
leaq 0x288(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
leaq 0x36d7(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %r13, %rdx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x4e8c
movq %rbx, %rdi
leaq 0x3847(%rip), %rsi      # 0x9374
callq 0x2e1b
movb $0x1, %r12b
testb %al, %al
jne 0x5df7
movq 0x8(%rsp), %rax
movq (%rax), %rsi
addq 0x10(%rsp), %rsi
leaq 0x468(%rsp), %r15
movq %r15, %rdi
xorl %edx, %edx
pushq $0x8
popq %rcx
callq 0x2200
leaq 0x488(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
leaq 0x366b(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %rbp, %rdx
leaq 0x4a8(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x4e8c
leaq 0x148(%rsp), %rdi
movq %r15, %rsi
leaq 0x3636(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rsi
addq %r14, %rsi
leaq 0x448(%rsp), %r15
movq %r15, %rdi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x2200
leaq 0x168(%rsp), %r12
movq %r12, %rdi
leaq 0x148(%rsp), %rsi
movq %r15, %rdx
callq 0x4f9a
leaq 0x1e8(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
leaq 0x35e1(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %r13, %rdx
leaq 0x208(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x4e8c
movq %r12, %rdi
leaq 0x375f(%rip), %rsi      # 0x938a
callq 0x2e1b
movb $0x1, %r12b
testb %al, %al
jne 0x5d8f
movq 0x8(%rsp), %rax
movq (%rax), %rsi
addq 0x10(%rsp), %rsi
leaq 0x3c8(%rsp), %r15
movq %r15, %rdi
xorl %edx, %edx
pushq $0x8
popq %rcx
callq 0x2200
leaq 0x3e8(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
leaq 0x356d(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rdx
addq %rbp, %rdx
leaq 0x408(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x4e8c
leaq 0x308(%rsp), %rdi
movq %r15, %rsi
leaq 0x3538(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
movq (%rax), %rsi
addq %r14, %rsi
leaq 0x3a8(%rsp), %r15
movq %r15, %rdi
xorl %edx, %edx
pushq $0x8
popq %rcx
callq 0x2200
leaq 0x428(%rsp), %r12
movq %r12, %rdi
leaq 0x308(%rsp), %rsi
movq %r15, %rdx
callq 0x4f9a
leaq 0x588(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
leaq 0x34e3(%rip), %rdx      # 0x91df
callq 0x4e6d
movq 0x8(%rsp), %rax
addq (%rax), %r13
leaq 0x5c8(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x4e8c
movq %r12, %rdi
leaq 0x3675(%rip), %rsi      # 0x939e
callq 0x2e1b
movq %r12, %rdi
movl %eax, %r12d
callq 0x2110
movq %r15, %rdi
callq 0x2110
leaq 0x428(%rsp), %rdi
callq 0x2110
leaq 0x3a8(%rsp), %rdi
callq 0x2110
leaq 0x308(%rsp), %rdi
callq 0x2110
leaq 0x408(%rsp), %rdi
callq 0x2110
leaq 0x3e8(%rsp), %rdi
callq 0x2110
leaq 0x3c8(%rsp), %rdi
callq 0x2110
leaq 0x208(%rsp), %rdi
callq 0x2110
leaq 0x1e8(%rsp), %rdi
callq 0x2110
leaq 0x168(%rsp), %rdi
callq 0x2110
leaq 0x448(%rsp), %rdi
callq 0x2110
leaq 0x148(%rsp), %rdi
callq 0x2110
leaq 0x4a8(%rsp), %rdi
callq 0x2110
leaq 0x488(%rsp), %rdi
callq 0x2110
leaq 0x468(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x2110
leaq 0x288(%rsp), %rdi
callq 0x2110
leaq 0x268(%rsp), %rdi
callq 0x2110
leaq 0x348(%rsp), %rdi
callq 0x2110
leaq 0x1a8(%rsp), %rdi
callq 0x2110
leaq 0x248(%rsp), %rdi
callq 0x2110
leaq 0x188(%rsp), %rdi
callq 0x2110
leaq 0x228(%rsp), %rdi
callq 0x2110
leaq 0x60(%rsp), %r15
movq %r15, %rdi
callq 0x2110
leaq 0x40(%rsp), %rdi
callq 0x2110
leaq 0x80(%rsp), %rdi
callq 0x2110
leaq 0x2a8(%rsp), %rdi
callq 0x2110
leaq 0x20(%rsp), %rdi
callq 0x2110
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
callq 0x2110
leaq 0xa0(%rsp), %rdi
callq 0x2110
leaq 0x2c8(%rsp), %rdi
callq 0x2110
testb %r12b, %r12b
je 0x5f61
movq 0x8(%rsp), %rbx
movq (%rbx), %rsi
addq %r14, %rsi
movq %r15, %rdi
xorl %edx, %edx
pushq $0x8
popq %rcx
callq 0x2200
movq %r15, %rdi
leaq 0x3127(%rip), %rsi      # 0x9011
callq 0x2e1b
movl %eax, %ebp
movq %r15, %rdi
callq 0x2110
movq 0x10(%rsp), %rsi
addq (%rbx), %rsi
testb %bpl, %bpl
leaq 0x568(%rsp), %r15
leaq 0x528(%rsp), %r12
leaq 0x548(%rsp), %r13
je 0x61b0
movq %r15, %rdi
callq 0x2260
addq (%rbx), %r14
movq %r12, %rdi
movq %r14, %rsi
callq 0x2260
movq %r13, %rdi
movq %r12, %rsi
callq 0x6918
movq %r15, %rdi
movq %r13, %rsi
callq 0x6a0a
movq %r13, %rdi
callq 0x2110
movq %r12, %rdi
movq %r15, %r14
jmp 0x61e9
movq 0x8(%rsp), %r13
movq (%r13), %rsi
addq 0x10(%rsp), %rsi
movq %rbx, %rdi
xorl %edx, %edx
pushq $0x2
popq %rcx
callq 0x2200
leaq 0x20(%rsp), %rdi
movq %rbx, %rsi
leaq 0x3254(%rip), %rdx      # 0x91df
callq 0x4e6d
movq (%r13), %rsi
addq %rbp, %rsi
leaq 0xa0(%rsp), %rbx
movq %rbx, %rdi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x2200
leaq 0x80(%rsp), %r15
movq %r15, %rdi
leaq 0x20(%rsp), %rsi
movq %rbx, %rdx
callq 0x4f9a
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
leaq 0x3209(%rip), %rdx      # 0x91df
callq 0x4e6d
addq (%r13), %r14
leaq 0x60(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x4e8c
movq 0x18(%rsp), %rax
leal 0x1(%rax), %r12d
movq %r15, %rdi
leaq 0x33b1(%rip), %rsi      # 0x93b6
callq 0x2e1b
movl %eax, %r14d
movq %r15, %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x2110
leaq 0x80(%rsp), %rdi
callq 0x2110
leaq 0xa0(%rsp), %rdi
callq 0x2110
leaq 0x20(%rsp), %rdi
callq 0x2110
leaq 0xc0(%rsp), %rdi
callq 0x2110
testb %r14b, %r14b
je 0x6203
addq (%r13), %rbp
movq %r15, %rdi
movq %rbp, %rsi
pushq $0x5
popq %rdx
pushq $-0x1
popq %rcx
callq 0x2200
movq %r15, %rbx
leaq 0x128(%rsp), %rdi
movq %r15, %rsi
callq 0x2240
movq %r15, %rdi
callq 0x2110
leaq 0xe8(%rsp), %rdi
leaq 0x30fc(%rip), %rsi      # 0x9192
callq 0x2320
xorl %ebp, %ebp
leaq 0x2e8(%rsp), %rdi
movslq %ebp, %rcx
cmpq %rcx, 0x130(%rsp)
jbe 0x624a
movq 0x128(%rsp), %rax
cmpb $0x20, (%rax,%rcx)
jne 0x61a9
movq %rbx, %rdi
leaq 0x128(%rsp), %rsi
xorl %edx, %edx
callq 0x2200
leaq 0x108(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2240
movq %rbx, %rdi
callq 0x2110
cmpq $0x9, 0x110(%rsp)
jb 0x614f
movq 0x108(%rsp), %rax
cmpb $0x25, 0xa(%rax)
jne 0x614f
leaq 0x4e8(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x2260
movq %rbx, %rdi
movq %r15, %rsi
callq 0x6918
leaq 0x108(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2240
movq %rbx, %rdi
callq 0x2110
movq %r15, %rdi
callq 0x2110
movq %rbx, %rdi
movq %r14, %rsi
leaq 0x3083(%rip), %rdx      # 0x91df
callq 0x4eab
leaq 0xe8(%rsp), %rdi
movq %rbx, %rsi
callq 0x2330
movq %rbx, %rdi
callq 0x2110
incl %ebp
movslq %ebp, %rdx
movq %rbx, %rdi
leaq 0x128(%rsp), %r14
movq %r14, %rsi
pushq $-0x1
popq %rcx
callq 0x2200
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2240
movq %rbx, %rdi
callq 0x2110
xorl %ebp, %ebp
incl %ebp
jmp 0x609d
leaq 0x388(%rsp), %rdi
callq 0x2260
addq (%rbx), %r14
leaq 0x508(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x2260
leaq 0x388(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x6a0a
movq %r15, %rdi
callq 0x2110
movq %r14, %rdi
callq 0x2110
movq 0x18(%rsp), %rdi
addl $0x4, %edi
jmp 0x591f
movq 0x10(%rsp), %rdi
addq (%r13), %rdi
leaq 0x2fe7(%rip), %rsi      # 0x91fa
callq 0x2e1b
testb %al, %al
je 0x6370
movq 0x8(%rsp), %rbx
addq (%rbx), %rbp
movq %rbp, %rdi
leaq 0x2ef4(%rip), %rsi      # 0x9126
callq 0x2e1b
testb %al, %al
movq 0xe0(%rsp), %rdi
cmovnel %r12d, %edi
jmp 0x591f
leaq 0xe8(%rsp), %rsi
callq 0x2260
leaq 0x2e8(%rsp), %rbx
movq %rbx, %rdi
callq 0x89a8
movq %rbx, %rdi
callq 0x2110
leaq 0x368(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x2260
leaq 0x368(%rsp), %rbx
movq %rbx, %rdi
callq 0x89a8
movl %eax, %ebp
movq %rbx, %rdi
callq 0x2110
testb %bpl, %bpl
leaq 0x40(%rsp), %rbx
jne 0x631b
movq 0x10(%rsp), %rax
leaq 0x20(%rax), %r13
movq 0x18(%rsp), %rax
movl %eax, %r12d
movq 0x8(%rsp), %rax
movq (%rax), %r14
movq 0x10(%rsp), %rax
leaq (%r14,%rax), %rsi
movq %rbx, %rdi
pushq $0x2
popq %rdx
pushq $-0x1
popq %rcx
callq 0x2200
leaq 0x60(%rsp), %r15
movq %r15, %rdi
leaq 0x2e3f(%rip), %rsi      # 0x9126
movq %rbx, %rdx
callq 0x68f3
addq %r13, %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x68e9
movl %eax, %ebp
movq %r15, %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x2110
incl %r12d
addq $0x20, %r13
testb %bpl, %bpl
jne 0x62b9
addl $0x2, %r12d
movl %r12d, %edi
movq 0x8(%rsp), %rbx
jmp 0x591f
movq 0x6c95(%rip), %rdi      # 0xcfc8
leaq 0x2e02(%rip), %rsi      # 0x913c
callq 0x21d0
leaq 0x2fac(%rip), %rsi      # 0x92f2
movq %rax, %rdi
callq 0x21d0
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0x22e0
leaq 0x2d20(%rip), %rsi      # 0x9080
movq %rax, %rdi
callq 0x21d0
movq %rax, %rdi
callq 0x2120
leaq 0xe8(%rsp), %rdi
callq 0x2110
leaq 0x108(%rsp), %rdi
callq 0x2110
leaq 0x128(%rsp), %rdi
callq 0x2110
addq $0x5e8, %rsp            # imm = 0x5E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x588(%rsp), %rdi
callq 0x2110
jmp 0x63be
movq %rax, %rbx
leaq 0x428(%rsp), %rdi
callq 0x2110
jmp 0x63d0
movq %rax, %rbx
leaq 0x3a8(%rsp), %rdi
callq 0x2110
jmp 0x63e2
movq %rax, %rbx
leaq 0x308(%rsp), %rdi
callq 0x2110
jmp 0x63f4
movq %rax, %rbx
leaq 0x408(%rsp), %rdi
callq 0x2110
leaq 0x3e8(%rsp), %rdi
callq 0x2110
leaq 0x3c8(%rsp), %rdi
callq 0x2110
leaq 0x208(%rsp), %rdi
callq 0x2110
jmp 0x64ba
movq %rax, %rbx
jmp 0x6401
movq %rax, %rbx
jmp 0x640e
movq %rax, %rbx
jmp 0x641b
movq %rax, %rbx
leaq 0x548(%rsp), %rdi
callq 0x2110
jmp 0x6451
movq %rax, %rbx
leaq 0x528(%rsp), %rdi
callq 0x2110
jmp 0x6463
movq %rax, %rbx
leaq 0x568(%rsp), %rdi
jmp 0x6864
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
callq 0x2110
jmp 0x6485
movq %rax, %rbx
leaq 0x388(%rsp), %rdi
jmp 0x6864
movq %rax, %rbx
leaq 0x368(%rsp), %rdi
jmp 0x6864
movq %rax, %rbx
leaq 0x2e8(%rsp), %rdi
jmp 0x6864
jmp 0x68b7
movq %rax, %rbx
leaq 0x1e8(%rsp), %rdi
callq 0x2110
leaq 0x168(%rsp), %rdi
callq 0x2110
leaq 0x448(%rsp), %rdi
callq 0x2110
leaq 0x148(%rsp), %rdi
callq 0x2110
leaq 0x4a8(%rsp), %rdi
callq 0x2110
leaq 0x488(%rsp), %rdi
callq 0x2110
leaq 0x468(%rsp), %rdi
callq 0x2110
leaq 0x1c8(%rsp), %rdi
callq 0x2110
leaq 0x288(%rsp), %rdi
callq 0x2110
leaq 0x268(%rsp), %rdi
callq 0x2110
leaq 0x348(%rsp), %rdi
callq 0x2110
leaq 0x1a8(%rsp), %rdi
callq 0x2110
leaq 0x248(%rsp), %rdi
callq 0x2110
leaq 0x188(%rsp), %rdi
callq 0x2110
leaq 0x228(%rsp), %rdi
callq 0x2110
leaq 0x60(%rsp), %rdi
callq 0x2110
leaq 0x40(%rsp), %rdi
callq 0x2110
leaq 0x80(%rsp), %rdi
callq 0x2110
leaq 0x2a8(%rsp), %rdi
callq 0x2110
leaq 0x20(%rsp), %rdi
callq 0x2110
leaq 0xc0(%rsp), %rdi
callq 0x2110
leaq 0xa0(%rsp), %rdi
callq 0x2110
leaq 0x2c8(%rsp), %rdi
jmp 0x6864
movq %rax, %rbx
jmp 0x64c7
movq %rax, %rbx
jmp 0x64d4
movq %rax, %rbx
jmp 0x64e1
movq %rax, %rbx
jmp 0x64ee
movq %rax, %rbx
jmp 0x64fb
movq %rax, %rbx
jmp 0x6508
movq %rax, %rbx
jmp 0x6515
movq %rax, %rbx
jmp 0x68c7
movq %rax, %rbx
jmp 0x68d4
movq %rax, %rbx
jmp 0x6522
movq %rax, %rbx
jmp 0x652f
movq %rax, %rbx
jmp 0x653c
movq %rax, %rbx
jmp 0x6549
movq %rax, %rbx
jmp 0x6556
movq %rax, %rbx
jmp 0x6563
movq %rax, %rbx
jmp 0x6570
movq %rax, %rbx
jmp 0x657d
movq %rax, %rbx
leaq 0x208(%rsp), %rdi
callq 0x2110
jmp 0x6679
movq %rax, %rbx
leaq 0x1e8(%rsp), %rdi
callq 0x2110
jmp 0x668b
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
callq 0x2110
jmp 0x669d
movq %rax, %rbx
leaq 0x168(%rsp), %rdi
callq 0x2110
jmp 0x66af
movq %rax, %rbx
leaq 0x268(%rsp), %rdi
callq 0x2110
jmp 0x6777
jmp 0x68b7
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x2110
jmp 0x66d8
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x2110
jmp 0x66ea
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x2110
jmp 0x66fc
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x2110
jmp 0x670b
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
jmp 0x6864
jmp 0x68b7
jmp 0x68b7
movq %rax, %rbx
leaq 0x4e8(%rsp), %rdi
jmp 0x6864
jmp 0x68b7
movq %rax, %rbx
jmp 0x6587
movq %rax, %rbx
jmp 0x6591
movq %rax, %rbx
jmp 0x659e
movq %rax, %rbx
jmp 0x65ab
movq %rax, %rbx
jmp 0x65b5
movq %rax, %rbx
jmp 0x65c2
movq %rax, %rbx
jmp 0x65cf
jmp 0x68b7
movq %rax, %rbx
leaq 0x1a8(%rsp), %rdi
callq 0x2110
jmp 0x6789
movq %rax, %rbx
leaq 0x248(%rsp), %rdi
callq 0x2110
leaq 0x228(%rsp), %rdi
callq 0x2110
leaq 0x188(%rsp), %rdi
callq 0x2110
leaq 0xa0(%rsp), %rdi
callq 0x2110
jmp 0x67fd
movq %rax, %rbx
jmp 0x6796
movq %rax, %rbx
jmp 0x67a3
movq %rax, %rbx
jmp 0x67b0
movq %rax, %rbx
leaq 0x5a8(%rsp), %rdi
callq 0x2110
jmp 0x67e3
movq %rax, %rbx
leaq 0x328(%rsp), %rdi
jmp 0x6864
movq %rax, %rbx
leaq 0x4c8(%rsp), %rdi
jmp 0x6864
movq %rax, %rbx
leaq 0x2c8(%rsp), %rdi
callq 0x2110
leaq 0x2a8(%rsp), %rdi
callq 0x2110
leaq 0x288(%rsp), %rdi
callq 0x2110
leaq 0x1c8(%rsp), %rdi
callq 0x2110
leaq 0x60(%rsp), %rdi
callq 0x2110
leaq 0x40(%rsp), %rdi
callq 0x2110
leaq 0x80(%rsp), %rdi
callq 0x2110
leaq 0xc0(%rsp), %rdi
callq 0x2110
leaq 0x20(%rsp), %rdi
callq 0x2110
jmp 0x68ba
movq %rax, %rbx
jmp 0x680a
movq %rax, %rbx
jmp 0x6817
movq %rax, %rbx
jmp 0x6824
movq %rax, %rbx
jmp 0x6831
jmp 0x68b7
jmp 0x68b7
jmp 0x68b7
jmp 0x68b7
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
jmp 0x6864
jmp 0x68ab
jmp 0x68b7
jmp 0x68b7
movq %rax, %rbx
jmp 0x683b
movq %rax, %rbx
jmp 0x6845
movq %rax, %rbx
jmp 0x6852
movq %rax, %rbx
jmp 0x685f
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
jmp 0x6864
jmp 0x68b7
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0x2110
leaq 0x108(%rsp), %rdi
callq 0x2110
leaq 0x128(%rsp), %rdi
callq 0x2110
movq %rbx, %rdi
callq 0x22f0