// File: /workspace/github_c_makefile_star2_O0/luixmao[P]verilog/vlg_parser_man.cpp
// Function: VlgParser::parse(char*)
Design* VlgParser::parse(char *filename) {


  //take text into ifile
  ifstream ifile(filename);

  //initializers
  Design* ptr_des1; //needs to be inialized later    // = new Design(designName);
  int next_line_no=1;//line number 
  bool hasModule=false; //whether it has module
  bool hasEndmodule=false; //whether it has endmodule

  //check that the first thing is module
  while ( !ifile.eof() ){
    string line_of_text;
    //get a line of text
    getline(ifile, line_of_text);
    //increase to the next line
    next_line_no++;
    //clean up, erase comments and repeated spaces
    line_of_text= errase_comments_and_spaces(line_of_text);

    stringstream ss(line_of_text);
    string token;
    ss >>token;
          //check that first thing is module
          if(token!="module" && token!=" "  && !token.empty()){
	      cout << " error: line " << next_line_no-1 << ": need module   " <<endl;
	      return NULL;
          } 
          //if module, set name
          else if (token=="module"){
            hasModule=true;
            string designName;
            getline(ss , designName, '(' );
            designName= remove_side_spaces( designName);//might contain side spaces, so remove them
            if(! (isID(designName)) ){
		 cout << " error: line " << next_line_no-1 << ": not a valid name   " <<endl; 
                 return NULL;
            }
            ptr_des1= new Design(designName);

            //check inside the parentesis
               //check proper close parenthesis ')'
               string pos_parentesis;
               getline(ss , pos_parentesis );
               if(!has_proper_parentesis(pos_parentesis) ){
	  	  cout << " error: line " << next_line_no-1 << ": not proper parenthesis   " <<endl; 
                  delete ptr_des1;
                  return NULL;
               }

               //check for validity inside parentesis
               stringstream temp(pos_parentesis);
               string inside_parentesis; 
               getline(temp , inside_parentesis ,')'); 
               inside_parentesis=remove_side_spaces(inside_parentesis);
 
               if (inside_parentesis[inside_parentesis.length()-1] == ','){//error if last item is ',' 
                  cout << " error: line " << next_line_no-1 << ":  additional ','  " <<endl; 
                  delete ptr_des1;
                  return NULL;
               }
               //check parentesis are right
               stringstream temp2(inside_parentesis);
               string name_id;
               int count_elements=0;
               while( temp2.good() ){ //while there are inputs
                 count_elements++;
                 getline(temp2,name_id, ',');
                 name_id=remove_side_spaces(name_id);
                 //check valid id
                 if( !isID(name_id)){
	  	   cout << " error: line " << next_line_no-1 << ": not valid ID, or issue with ','    " <<endl;
                   delete ptr_des1; 
                   return NULL;
                 }
               }
               //if not enough elements display error
 	       if(count_elements<2){
	  	   cout << " error: line " << next_line_no-1 << ": needs at least one input and one output ','   " <<endl; 
                   delete ptr_des1;
                   return NULL;
               }
            //end check inside parentesis
            break;
          }
  }
  //if didn't find module, error
  if(!hasModule){
     cout << " error: missing module declaration" <<endl;
     return NULL;
  }

     // cout << " error: line " << next_line_no-1 << ": not a valid name   " <<endl;


  //run while until there is no more text
  while ( !ifile.eof() ){
    string line_of_text;
    //get a line of text
    getline(ifile, line_of_text);
    //increase to the next line
    next_line_no++;
    //clean up, erase comments and repeated spaces
    line_of_text= errase_comments_and_spaces(line_of_text);

    stringstream ss(line_of_text);
    string token;
    ss >>token;
    if(ss.fail() || (token.length()==1 && token[0]==' ')){ //if no text in this line
      continue;
    }
    else{
       //if it has semicolon
       if(!has_proper_Semicolon(remove_spaces(line_of_text)) && token!="endmodule"){//has one ';' and it is last item 
          cout << " error: line " << next_line_no-1 << ":  improper ';'  " <<endl;
          delete ptr_des1;
          return NULL;
       }
       else{
          if( token=="endmodule" ){
             hasEndmodule=true;
             //check if there is anything after endmodule
             while ( !ifile.eof() ){
      	        getline(ifile, line_of_text);
  	        //increase to the next line
  	        next_line_no++;
  	        //clean up, erase comments and repeated spaces
  	        line_of_text= errase_comments_and_spaces(line_of_text);
   	        for(unsigned int i=0 ; i!=line_of_text.length();i++){
    	           if(line_of_text!=" "){
    	              cout << " error: line " << next_line_no-1 << ": nothing allowed after endmodule   " <<endl;
                      delete ptr_des1;
     	              return NULL;
     	           }
   	        }

             }
          }     
          //add input if it is possible ID
          else if( token=="input" ){
            string input_name;
 	    getline(ss , input_name, ';' );
            input_name= remove_side_spaces( input_name);//might contain spaces on sides, so remove them
            if(! (isID(input_name)) ){
		 cout << " error: line " << next_line_no-1 << ": not a valid name   " <<endl; 
                 delete ptr_des1;
                 return NULL;
            }
   	    ptr_des1->addPI(input_name); //add new input
          }     
          //add output if it is possible ID
          else if( token=="output" ){
            string output_name;
 	    getline(ss , output_name, ';' );
            output_name= remove_side_spaces( output_name);//might contain spaces on sides, so remove them
            if(! (isID(output_name)) ){
		 cout << " error: line " << next_line_no-1 << ": not a valid name   " <<endl; 
                 delete ptr_des1;
                 return NULL;
            }
   	    ptr_des1->addPO(output_name); //add new input
          }     

          //add wire if it is possible ID
          else if( token=="wire" ){
            string wire_name;
 	    getline(ss , wire_name, ';' );
            wire_name= remove_side_spaces( wire_name); //might contain spaces on sides, so remove them
            if(! (isID(wire_name)) ){
		 cout << " error: line " << next_line_no-1 << ": not a valid name   " <<endl; 
                 delete ptr_des1;
                 return NULL;
            }
   	    ptr_des1->addFindNet(wire_name); //add new input
          }     
          else if(token == "and" || token == "or" || token == "nand"|| token == "nor"|| token == "xor"|| token == "not"){
             int gate_type =  find_gate_type(token);
	     string pre_parentesis; //rest of the line after "and" declaration
             getline(ss , pre_parentesis, '(' );
             vector<string>* ptr_vec =return_words(pre_parentesis);
 	     int num_elements=ptr_vec->size();
             if(num_elements >2){
                 cout << " error: line " << next_line_no-1 << ": too many entries before '('   " <<endl; 
                 delete ptr_vec;
                 delete ptr_des1;
                 return NULL;
             }
             else if(num_elements ==1 || num_elements ==2){
               string gate_name;//gate name
               if(num_elements ==1 ){
                 gate_name =(*ptr_vec)[0];
                 if(! (isID(gate_name)) ){
  	  	    cout << " error: line " << next_line_no-1 << ": not a valid gate name   " <<endl; 
                    delete ptr_vec;
                    delete ptr_des1;
                    return NULL;
                 }
                 ptr_des1->addFindGate(gate_type, gate_name);
               }
               else{ //if(num_elements ==2)
                 //check proper name
                 gate_name =(*ptr_vec)[1];
                 if(! (isID(gate_name)) ){
	    	    cout << " error: line " << next_line_no-1 << ": not a valid gate name   " <<endl; 
                    delete ptr_vec;
                    delete ptr_des1;
                    return NULL;
                 }
                  
                 //check proper delay
                 string delay_str =(*ptr_vec)[0];// delay with
                 if(! (isDelay(delay_str)) ){
	  	    cout << " error: line " << next_line_no-1 << ": not a valid delay   " <<endl; 
                    delete ptr_vec;
                    delete ptr_des1;
                    return NULL;
                 }
                 delay_str.erase(delay_str.begin());
                 int delay = atoi( delay_str.c_str() );
                 ptr_des1->addFindGate(gate_type, gate_name)->setDelay(delay);
               }



               //check proper close parenthesis ')'

               string pos_parentesis;
               getline(ss , pos_parentesis );
               if(!has_proper_parentesis(pos_parentesis) ){
	  	  cout << " error: line " << next_line_no-1 << ": not proper parenthesis   " <<endl; 
                  delete ptr_vec;
                  delete ptr_des1;
                  return NULL;
               }

               //check for validity inside parentesis
               stringstream temp(pos_parentesis);
               string inside_parentesis; 
               getline(temp , inside_parentesis ,')'); 
               inside_parentesis=remove_side_spaces(inside_parentesis);
 
               if (inside_parentesis[inside_parentesis.length()-1] == ','){//error if last item is ',' 
                  cout << " error: line " << next_line_no-1 << ": not additional ','  " <<endl; 
                  delete ptr_vec;
                  delete ptr_des1;
                  return NULL;
               }
               
               stringstream temp2(inside_parentesis);
               string name_id;
               bool isOutput = true;
               int count_elements=0;
           
               while( temp2.good() ){ //while there are inputs, get the names and make new nets if valid name
                 count_elements++;
                 getline(temp2,name_id, ',');
                 name_id=remove_side_spaces(name_id);
                 //check valid id
                 if( !isID(name_id)){
	  	   cout << " error: line " << next_line_no-1 << ": not valid ID or missing ','   " <<endl;
                   delete ptr_vec;
                   delete ptr_des1; 
                   return NULL;
                 }
                 if(isOutput){ //first item is output
                   //add output
                   ptr_des1->addFindGate(gate_type, gate_name)->addOutput(ptr_des1->addFindNet(name_id));
		   isOutput=false;//to not enter again
                 }
                 else{
                   //add inputs
                   ptr_des1->addFindGate(gate_type, gate_name)->addInput(ptr_des1->addFindNet(name_id));
                 }
               }
               //error if elements is not enough
 	       if(count_elements<2){
	  	   cout << " error: line " << next_line_no-1 << ": needs at least one input and one output    " <<endl;
                   delete ptr_vec; 
                   delete ptr_des1;
                   return NULL;
               }

             }
             else{  
                  cout << " error: line " << next_line_no-1 << ": expected gate name   " <<endl; 
                  delete ptr_vec;
                  delete ptr_des1;
                  return NULL;
             }
           
             delete ptr_vec;
          }

          else{ //if it is not one of the expected declarations
    	     cout << " error: line " << next_line_no-1 << ": not a valid declaration   " <<endl;
             delete ptr_des1;
     	     return NULL;
          }
         
      }
    }

  }


  //if didn't find module, error
  if(!hasEndmodule){
     cout << " error: missing endmodule " <<endl;
     delete ptr_des1;
     return NULL;
  }


 
  ifile.close();
  return ptr_des1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1990, %rsp           # imm = 0x1990
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x220(%rbp), %rdi
movl $0x8, %edx
callq 0x3440
movl $0x1, -0x22c(%rbp)
movb $0x0, -0x22d(%rbp)
movb $0x0, -0x22e(%rbp)
movq -0x220(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x220(%rbp,%rax), %rdi
callq 0x3450
movb %al, -0x13d1(%rbp)
jmp 0xb430
movb -0x13d1(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xb441
jmp 0xc0c3
leaq -0x260(%rbp), %rdi
movq %rdi, -0x13e0(%rbp)
callq 0x3330
movq -0x13e0(%rbp), %rsi
leaq -0x220(%rbp), %rdi
callq 0x3080
jmp 0xb469
movl -0x22c(%rbp), %eax
incl %eax
movl %eax, -0x22c(%rbp)
leaq -0x2a0(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x3100
jmp 0xb48c
leaq -0x280(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0xe5f0
jmp 0xb4a1
leaq -0x260(%rbp), %rdi
leaq -0x280(%rbp), %rsi
movq %rsi, -0x13f0(%rbp)
callq 0x32e0
movq -0x13f0(%rbp), %rdi
callq 0x3150
leaq -0x2a0(%rbp), %rdi
callq 0x3150
movl $0x10, %edi
movl $0x8, %esi
callq 0xf280
movl %eax, -0x13e4(%rbp)
jmp 0xb4ea
movl -0x13e4(%rbp), %edx
leaq -0x428(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x33a0
jmp 0xb505
leaq -0x448(%rbp), %rdi
movq %rdi, -0x13f8(%rbp)
callq 0x3330
movq -0x13f8(%rbp), %rsi
leaq -0x428(%rbp), %rdi
callq 0x3320
jmp 0xb52d
leaq 0x4bd8(%rip), %rsi      # 0x1010c
leaq -0x448(%rbp), %rdi
callq 0xf2a0
movb %al, -0x13f9(%rbp)
jmp 0xb548
movb -0x13f9(%rbp), %al
testb $0x1, %al
jne 0xb557
jmp 0xb67e
leaq 0x4c54(%rip), %rsi      # 0x101b2
leaq -0x448(%rbp), %rdi
callq 0xf2a0
movb %al, -0x13fa(%rbp)
jmp 0xb572
movb -0x13fa(%rbp), %al
testb $0x1, %al
jne 0xb581
jmp 0xb67e
leaq -0x448(%rbp), %rdi
callq 0x33e0
testb $0x1, %al
jne 0xb67e
movq 0xba34(%rip), %rdi      # 0x16fd0
leaq 0x4b86(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1408(%rbp)
jmp 0xb5b1
movq -0x1408(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1410(%rbp)
jmp 0xb5ce
movq -0x1410(%rbp), %rdi
leaq 0x4b5b(%rip), %rsi      # 0x10137
callq 0x3220
movq %rax, -0x1418(%rbp)
jmp 0xb5ea
movq -0x1418(%rbp), %rdi
movq 0xb9c8(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xb5ff
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xc04f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xe5d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xc0b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x3150
jmp 0xc0b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xc09a
leaq 0x4a87(%rip), %rsi      # 0x1010c
leaq -0x448(%rbp), %rdi
callq 0xf2d0
movb %al, -0x1419(%rbp)
jmp 0xb699
movb -0x1419(%rbp), %al
testb $0x1, %al
jne 0xb6a8
jmp 0xc043
movb $0x1, -0x22d(%rbp)
leaq -0x470(%rbp), %rdi
movq %rdi, -0x1428(%rbp)
callq 0x3330
movq -0x1428(%rbp), %rsi
leaq -0x428(%rbp), %rdi
movl $0x28, %edx
callq 0x3460
jmp 0xb6dc
leaq -0x4b0(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0x3100
jmp 0xb6f1
leaq -0x490(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0xe7e0
jmp 0xb706
leaq -0x470(%rbp), %rdi
movq %rdi, -0x1430(%rbp)
leaq -0x490(%rbp), %rsi
movq %rsi, -0x1438(%rbp)
callq 0x32e0
movq -0x1438(%rbp), %rdi
callq 0x3150
leaq -0x4b0(%rbp), %rdi
callq 0x3150
movq -0x1430(%rbp), %rsi
leaq -0x4d0(%rbp), %rdi
callq 0x3100
jmp 0xb754
leaq -0x4d0(%rbp), %rdi
callq 0xe8c0
movb %al, -0x1439(%rbp)
jmp 0xb768
movb -0x1439(%rbp), %al
xorb $-0x1, %al
movb %al, -0x143a(%rbp)
leaq -0x4d0(%rbp), %rdi
callq 0x3150
movb -0x143a(%rbp), %al
testb $0x1, %al
jne 0xb791
jmp 0xb86f
movq 0xb838(%rip), %rdi      # 0x16fd0
leaq 0x498a(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1448(%rbp)
jmp 0xb7ad
movq -0x1448(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1450(%rbp)
jmp 0xb7ca
movq -0x1450(%rbp), %rdi
leaq 0x4970(%rip), %rsi      # 0x10148
callq 0x3220
movq %rax, -0x1458(%rbp)
jmp 0xb7e6
movq -0x1458(%rbp), %rdi
movq 0xb7cc(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xb7fb
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xc027
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xc035
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x4b0(%rbp), %rdi
callq 0x3150
jmp 0xc035
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x4d0(%rbp), %rdi
callq 0x3150
jmp 0xc035
movl $0xd8, %edi
callq 0x3230
movq %rax, -0x1460(%rbp)
jmp 0xb882
movb $0x1, -0x4f1(%rbp)
leaq -0x4f0(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0x3100
jmp 0xb89e
movq -0x1460(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0x6580
jmp 0xb8b3
movq -0x1460(%rbp), %rax
movb $0x0, -0x4f1(%rbp)
movq %rax, -0x228(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x3150
leaq -0x518(%rbp), %rdi
movq %rdi, -0x1468(%rbp)
callq 0x3330
movq -0x1468(%rbp), %rsi
leaq -0x428(%rbp), %rdi
callq 0x3080
jmp 0xb8fc
leaq -0x538(%rbp), %rdi
leaq -0x518(%rbp), %rsi
callq 0x3100
jmp 0xb911
leaq -0x538(%rbp), %rdi
callq 0xe980
movb %al, -0x1469(%rbp)
jmp 0xb925
movb -0x1469(%rbp), %al
xorb $-0x1, %al
movb %al, -0x146a(%rbp)
leaq -0x538(%rbp), %rdi
callq 0x3150
movb -0x146a(%rbp), %al
testb $0x1, %al
jne 0xb94e
jmp 0xba8d
movq 0xb67b(%rip), %rdi      # 0x16fd0
leaq 0x47cd(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1478(%rbp)
jmp 0xb96a
movq -0x1478(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1480(%rbp)
jmp 0xb987
movq -0x1480(%rbp), %rdi
leaq 0x47c9(%rip), %rsi      # 0x1015e
callq 0x3220
movq %rax, -0x1488(%rbp)
jmp 0xb9a3
movq -0x1488(%rbp), %rdi
movq 0xb60f(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xb9b8
movq -0x228(%rbp), %rax
movq %rax, -0x1490(%rbp)
cmpq $0x0, %rax
je 0xb9e9
movq -0x1490(%rbp), %rdi
callq 0x6760
movq -0x1490(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xc00b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xba32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x3150
testb $0x1, -0x4f1(%rbp)
jne 0xba3d
jmp 0xba4e
movq -0x1460(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
jmp 0xc035
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xc019
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x538(%rbp), %rdi
callq 0x3150
jmp 0xc019
movl $0x10, %edi
movl $0x8, %esi
callq 0xf280
movl %eax, -0x1494(%rbp)
jmp 0xbaa4
movl -0x1494(%rbp), %edx
leaq -0x6c0(%rbp), %rdi
leaq -0x518(%rbp), %rsi
callq 0x33a0
jmp 0xbabf
leaq -0x6e0(%rbp), %rdi
movq %rdi, -0x14a0(%rbp)
callq 0x3330
movq -0x14a0(%rbp), %rsi
leaq -0x6c0(%rbp), %rdi
movl $0x29, %edx
callq 0x3460
jmp 0xbaec
leaq -0x720(%rbp), %rdi
leaq -0x6e0(%rbp), %rsi
callq 0x3100
jmp 0xbb01
leaq -0x700(%rbp), %rdi
leaq -0x720(%rbp), %rsi
callq 0xe7e0
jmp 0xbb16
leaq -0x6e0(%rbp), %rdi
movq %rdi, -0x14b0(%rbp)
leaq -0x700(%rbp), %rsi
movq %rsi, -0x14b8(%rbp)
callq 0x32e0
movq -0x14b8(%rbp), %rdi
callq 0x3150
leaq -0x720(%rbp), %rdi
callq 0x3150
movq -0x14b0(%rbp), %rdi
callq 0x3370
movq -0x14b0(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x3480
movq %rax, -0x14a8(%rbp)
jmp 0xbb76
movq -0x14a8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0xbc75
movq 0xb440(%rip), %rdi      # 0x16fd0
leaq 0x4592(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x14c0(%rbp)
jmp 0xbba5
movq -0x14c0(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x14c8(%rbp)
jmp 0xbbc2
movq -0x14c8(%rbp), %rdi
leaq 0x45aa(%rip), %rsi      # 0x1017a
callq 0x3220
movq %rax, -0x14d0(%rbp)
jmp 0xbbde
movq -0x14d0(%rbp), %rdi
movq 0xb3d4(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xbbf3
movq -0x228(%rbp), %rax
movq %rax, -0x14d8(%rbp)
cmpq $0x0, %rax
je 0xbc24
movq -0x14d8(%rbp), %rdi
callq 0x6760
movq -0x14d8(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xbfd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xbff1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x720(%rbp), %rdi
callq 0x3150
jmp 0xbff1
movl $0x10, %edi
movl $0x8, %esi
callq 0xf280
movl %eax, -0x14dc(%rbp)
jmp 0xbc8c
movl -0x14dc(%rbp), %edx
leaq -0x8a8(%rbp), %rdi
leaq -0x6e0(%rbp), %rsi
callq 0x33a0
jmp 0xbca7
leaq -0x8c8(%rbp), %rdi
callq 0x3330
movl $0x0, -0x8cc(%rbp)
movq -0x8a8(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x8a8(%rbp,%rax), %rdi
callq 0x33f0
movb %al, -0x14dd(%rbp)
jmp 0xbcdd
movb -0x14dd(%rbp), %al
testb $0x1, %al
jne 0xbcec
jmp 0xbedd
movl -0x8cc(%rbp), %eax
incl %eax
movl %eax, -0x8cc(%rbp)
leaq -0x8a8(%rbp), %rdi
leaq -0x8c8(%rbp), %rsi
movl $0x2c, %edx
callq 0x3460
jmp 0xbd14
leaq -0x910(%rbp), %rdi
leaq -0x8c8(%rbp), %rsi
callq 0x3100
jmp 0xbd29
leaq -0x8f0(%rbp), %rdi
leaq -0x910(%rbp), %rsi
callq 0xe7e0
jmp 0xbd3e
leaq -0x8c8(%rbp), %rdi
movq %rdi, -0x14e8(%rbp)
leaq -0x8f0(%rbp), %rsi
movq %rsi, -0x14f0(%rbp)
callq 0x32e0
movq -0x14f0(%rbp), %rdi
callq 0x3150
leaq -0x910(%rbp), %rdi
callq 0x3150
movq -0x14e8(%rbp), %rsi
leaq -0x930(%rbp), %rdi
callq 0x3100
jmp 0xbd8c
leaq -0x930(%rbp), %rdi
callq 0xe8c0
movb %al, -0x14f1(%rbp)
jmp 0xbda0
movb -0x14f1(%rbp), %al
xorb $-0x1, %al
movb %al, -0x14f2(%rbp)
leaq -0x930(%rbp), %rdi
callq 0x3150
movb -0x14f2(%rbp), %al
testb $0x1, %al
jne 0xbdc9
jmp 0xbed8
movq 0xb200(%rip), %rdi      # 0x16fd0
leaq 0x4352(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1500(%rbp)
jmp 0xbde5
movq -0x1500(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1508(%rbp)
jmp 0xbe02
movq -0x1508(%rbp), %rdi
leaq 0x437e(%rip), %rsi      # 0x1018e
callq 0x3220
movq %rax, -0x1510(%rbp)
jmp 0xbe1e
movq -0x1510(%rbp), %rdi
movq 0xb194(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xbe33
movq -0x228(%rbp), %rax
movq %rax, -0x1518(%rbp)
cmpq $0x0, %rax
je 0xbe64
movq -0x1518(%rbp), %rdi
callq 0x6760
movq -0x1518(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xbfa3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xbfbd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x910(%rbp), %rdi
callq 0x3150
jmp 0xbfbd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x930(%rbp), %rdi
callq 0x3150
jmp 0xbfbd
jmp 0xbcbd
cmpl $0x2, -0x8cc(%rbp)
jge 0xbf99
movq 0xb0df(%rip), %rdi      # 0x16fd0
leaq 0x4231(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1520(%rbp)
jmp 0xbf06
movq -0x1520(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1528(%rbp)
jmp 0xbf23
movq -0x1528(%rbp), %rdi
leaq 0x4283(%rip), %rsi      # 0x101b4
callq 0x3220
movq %rax, -0x1530(%rbp)
jmp 0xbf3f
movq -0x1530(%rbp), %rdi
movq 0xb073(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xbf54
movq -0x228(%rbp), %rax
movq %rax, -0x1538(%rbp)
cmpq $0x0, %rax
je 0xbf85
movq -0x1538(%rbp), %rdi
callq 0x6760
movq -0x1538(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xbfa3
movl $0x3, -0x44c(%rbp)
leaq -0x8c8(%rbp), %rdi
callq 0x3150
leaq -0x8a8(%rbp), %rdi
callq 0x3190
jmp 0xbfd7
leaq -0x8c8(%rbp), %rdi
callq 0x3150
leaq -0x8a8(%rbp), %rdi
callq 0x3190
jmp 0xbff1
leaq -0x6e0(%rbp), %rdi
callq 0x3150
leaq -0x6c0(%rbp), %rdi
callq 0x3190
jmp 0xc00b
leaq -0x6e0(%rbp), %rdi
callq 0x3150
leaq -0x6c0(%rbp), %rdi
callq 0x3190
jmp 0xc019
leaq -0x518(%rbp), %rdi
callq 0x3150
jmp 0xc027
leaq -0x518(%rbp), %rdi
callq 0x3150
jmp 0xc035
leaq -0x470(%rbp), %rdi
callq 0x3150
jmp 0xc04f
leaq -0x470(%rbp), %rdi
callq 0x3150
jmp 0xc09a
jmp 0xc045
movl $0x0, -0x44c(%rbp)
leaq -0x448(%rbp), %rdi
callq 0x3150
leaq -0x428(%rbp), %rdi
callq 0x3190
leaq -0x260(%rbp), %rdi
callq 0x3150
movl -0x44c(%rbp), %eax
movl %eax, -0x153c(%rbp)
testl %eax, %eax
je 0xc095
jmp 0xc085
movl -0x153c(%rbp), %eax
subl $0x3, %eax
je 0xc0c3
jmp 0xe5bb
jmp 0xb410
leaq -0x448(%rbp), %rdi
callq 0x3150
leaq -0x428(%rbp), %rdi
callq 0x3190
leaq -0x260(%rbp), %rdi
callq 0x3150
jmp 0xe5d4
testb $0x1, -0x22d(%rbp)
jne 0xc114
movq 0xaefd(%rip), %rdi      # 0x16fd0
leaq 0x410b(%rip), %rsi      # 0x101e5
callq 0x3220
movq %rax, -0x1548(%rbp)
jmp 0xc0e8
movq -0x1548(%rbp), %rdi
movq 0xaeca(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xc0fd
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe5bb
jmp 0xc116
movq -0x220(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x220(%rbp,%rax), %rdi
callq 0x3450
movb %al, -0x1549(%rbp)
jmp 0xc136
movb -0x1549(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xc147
jmp 0xe519
leaq -0x950(%rbp), %rdi
movq %rdi, -0x1558(%rbp)
callq 0x3330
movq -0x1558(%rbp), %rsi
leaq -0x220(%rbp), %rdi
callq 0x3080
jmp 0xc16f
movl -0x22c(%rbp), %eax
incl %eax
movl %eax, -0x22c(%rbp)
leaq -0x990(%rbp), %rdi
leaq -0x950(%rbp), %rsi
callq 0x3100
jmp 0xc192
leaq -0x970(%rbp), %rdi
leaq -0x990(%rbp), %rsi
callq 0xe5f0
jmp 0xc1a7
leaq -0x950(%rbp), %rdi
leaq -0x970(%rbp), %rsi
movq %rsi, -0x1568(%rbp)
callq 0x32e0
movq -0x1568(%rbp), %rdi
callq 0x3150
leaq -0x990(%rbp), %rdi
callq 0x3150
movl $0x10, %edi
movl $0x8, %esi
callq 0xf280
movl %eax, -0x155c(%rbp)
jmp 0xc1f0
movl -0x155c(%rbp), %edx
leaq -0xb18(%rbp), %rdi
leaq -0x950(%rbp), %rsi
callq 0x33a0
jmp 0xc20b
leaq -0xb38(%rbp), %rdi
movq %rdi, -0x1570(%rbp)
callq 0x3330
movq -0x1570(%rbp), %rsi
leaq -0xb18(%rbp), %rdi
callq 0x3320
jmp 0xc233
movq -0xb18(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0xb18(%rbp,%rax), %rdi
callq 0x3030
movb %al, -0x1571(%rbp)
jmp 0xc253
movb -0x1571(%rbp), %al
testb $0x1, %al
jne 0xc29d
jmp 0xc25f
leaq -0xb38(%rbp), %rdi
callq 0x3370
cmpq $0x1, %rax
jne 0xc2fd
xorl %eax, %eax
movl %eax, %esi
leaq -0xb38(%rbp), %rdi
callq 0x3480
movq %rax, -0x1580(%rbp)
jmp 0xc28e
movq -0x1580(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0xc2fd
movl $0x6, -0x44c(%rbp)
jmp 0xe4a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xe508
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x990(%rbp), %rdi
callq 0x3150
jmp 0xe508
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xe4f0
leaq -0xb78(%rbp), %rdi
leaq -0x950(%rbp), %rsi
callq 0x3100
jmp 0xc312
leaq -0xb58(%rbp), %rdi
leaq -0xb78(%rbp), %rsi
callq 0xed80
jmp 0xc327
leaq -0xb58(%rbp), %rdi
callq 0xec20
movb %al, -0x1581(%rbp)
jmp 0xc33b
movb -0x1581(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x1582(%rbp)
jne 0xc379
jmp 0xc350
leaq 0x3db2(%rip), %rsi      # 0x10109
leaq -0xb38(%rbp), %rdi
callq 0xf2a0
movb %al, -0x1583(%rbp)
jmp 0xc36b
movb -0x1583(%rbp), %al
movb %al, -0x1582(%rbp)
jmp 0xc379
movb -0x1582(%rbp), %al
movb %al, -0x1584(%rbp)
leaq -0xb58(%rbp), %rdi
callq 0x3150
leaq -0xb78(%rbp), %rdi
callq 0x3150
movb -0x1584(%rbp), %al
testb $0x1, %al
jne 0xc3ac
jmp 0xc4a1
movq 0xac1d(%rip), %rdi      # 0x16fd0
leaq 0x3d6f(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1590(%rbp)
jmp 0xc3c8
movq -0x1590(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1598(%rbp)
jmp 0xc3e5
movq -0x1598(%rbp), %rdi
leaq 0x3e15(%rip), %rsi      # 0x10208
callq 0x3220
movq %rax, -0x15a0(%rbp)
jmp 0xc401
movq -0x15a0(%rbp), %rdi
movq 0xabb1(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xc416
movq -0x228(%rbp), %rax
movq %rax, -0x15a8(%rbp)
cmpq $0x0, %rax
je 0xc447
movq -0x15a8(%rbp), %rdi
callq 0x6760
movq -0x15a8(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe4a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xc490
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xb58(%rbp), %rdi
callq 0x3150
leaq -0xb78(%rbp), %rdi
callq 0x3150
jmp 0xe4f0
leaq 0x3c61(%rip), %rsi      # 0x10109
leaq -0xb38(%rbp), %rdi
callq 0xf2d0
movb %al, -0x15a9(%rbp)
jmp 0xc4bc
movb -0x15a9(%rbp), %al
testb $0x1, %al
jne 0xc4cb
jmp 0xc6d0
movb $0x1, -0x22e(%rbp)
movq -0x220(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x220(%rbp,%rax), %rdi
callq 0x3450
movb %al, -0x15aa(%rbp)
jmp 0xc4f2
movb -0x15aa(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xc503
jmp 0xc6cb
leaq -0x220(%rbp), %rdi
leaq -0x950(%rbp), %rsi
callq 0x3080
jmp 0xc518
movl -0x22c(%rbp), %eax
incl %eax
movl %eax, -0x22c(%rbp)
leaq -0xbb8(%rbp), %rdi
leaq -0x950(%rbp), %rsi
callq 0x3100
jmp 0xc53b
leaq -0xb98(%rbp), %rdi
leaq -0xbb8(%rbp), %rsi
callq 0xe5f0
jmp 0xc550
leaq -0x950(%rbp), %rdi
leaq -0xb98(%rbp), %rsi
callq 0x32e0
leaq -0xb98(%rbp), %rdi
callq 0x3150
leaq -0xbb8(%rbp), %rdi
callq 0x3150
movl $0x0, -0xbbc(%rbp)
movl -0xbbc(%rbp), %eax
movq %rax, -0x15b8(%rbp)
leaq -0x950(%rbp), %rdi
callq 0x3370
movq %rax, %rcx
movq -0x15b8(%rbp), %rax
cmpq %rcx, %rax
je 0xc6c6
leaq 0x3bfa(%rip), %rsi      # 0x101b2
leaq -0x950(%rbp), %rdi
callq 0xf2a0
movb %al, -0x15b9(%rbp)
jmp 0xc5cc
movb -0x15b9(%rbp), %al
testb $0x1, %al
jne 0xc5db
jmp 0xc6b0
movq 0xa9ee(%rip), %rdi      # 0x16fd0
leaq 0x3b40(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x15c8(%rbp)
jmp 0xc5f7
movq -0x15c8(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x15d0(%rbp)
jmp 0xc614
movq -0x15d0(%rbp), %rdi
leaq 0x3bf8(%rip), %rsi      # 0x1021a
callq 0x3220
movq %rax, -0x15d8(%rbp)
jmp 0xc630
movq -0x15d8(%rbp), %rdi
movq 0xa982(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xc645
movq -0x228(%rbp), %rax
movq %rax, -0x15e0(%rbp)
cmpq $0x0, %rax
je 0xc676
movq -0x15e0(%rbp), %rdi
callq 0x6760
movq -0x15e0(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe4a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xbb8(%rbp), %rdi
callq 0x3150
jmp 0xe4f0
jmp 0xc6b2
movl -0xbbc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xbbc(%rbp)
jmp 0xc585
jmp 0xc4d2
jmp 0xe493
leaq 0x3b68(%rip), %rsi      # 0x1023f
leaq -0xb38(%rbp), %rdi
callq 0xf2d0
movb %al, -0x15e1(%rbp)
jmp 0xc6eb
movb -0x15e1(%rbp), %al
testb $0x1, %al
jne 0xc6fa
jmp 0xc989
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x15f0(%rbp)
callq 0x3330
movq -0x15f0(%rbp), %rsi
leaq -0xb18(%rbp), %rdi
movl $0x3b, %edx
callq 0x3460
jmp 0xc727
leaq -0xc20(%rbp), %rdi
leaq -0xbe0(%rbp), %rsi
callq 0x3100
jmp 0xc73c
leaq -0xc00(%rbp), %rdi
leaq -0xc20(%rbp), %rsi
callq 0xe7e0
jmp 0xc751
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x15f8(%rbp)
leaq -0xc00(%rbp), %rsi
movq %rsi, -0x1600(%rbp)
callq 0x32e0
movq -0x1600(%rbp), %rdi
callq 0x3150
leaq -0xc20(%rbp), %rdi
callq 0x3150
movq -0x15f8(%rbp), %rsi
leaq -0xc40(%rbp), %rdi
callq 0x3100
jmp 0xc79f
leaq -0xc40(%rbp), %rdi
callq 0xe8c0
movb %al, -0x1601(%rbp)
jmp 0xc7b3
movb -0x1601(%rbp), %al
xorb $-0x1, %al
movb %al, -0x1602(%rbp)
leaq -0xc40(%rbp), %rdi
callq 0x3150
movb -0x1602(%rbp), %al
testb $0x1, %al
jne 0xc7dc
jmp 0xc8eb
movq 0xa7ed(%rip), %rdi      # 0x16fd0
leaq 0x393f(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1610(%rbp)
jmp 0xc7f8
movq -0x1610(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1618(%rbp)
jmp 0xc815
movq -0x1618(%rbp), %rdi
leaq 0x3925(%rip), %rsi      # 0x10148
callq 0x3220
movq %rax, -0x1620(%rbp)
jmp 0xc831
movq -0x1620(%rbp), %rdi
movq 0xa781(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xc846
movq -0x228(%rbp), %rax
movq %rax, -0x1628(%rbp)
cmpq $0x0, %rax
je 0xc877
movq -0x1628(%rbp), %rdi
callq 0x6760
movq -0x1628(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xc939
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xc978
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xc20(%rbp), %rdi
callq 0x3150
jmp 0xc978
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xc40(%rbp), %rdi
callq 0x3150
jmp 0xc978
movq -0x228(%rbp), %rax
movq %rax, -0x1630(%rbp)
leaq -0xc60(%rbp), %rdi
leaq -0xbe0(%rbp), %rsi
callq 0x3100
jmp 0xc90e
movq -0x1630(%rbp), %rdi
leaq -0xc60(%rbp), %rsi
callq 0x69e0
jmp 0xc923
leaq -0xc60(%rbp), %rdi
callq 0x3150
movl $0x0, -0x44c(%rbp)
leaq -0xbe0(%rbp), %rdi
callq 0x3150
movl -0x44c(%rbp), %eax
testl %eax, %eax
jne 0xe4a1
jmp 0xc955
jmp 0xe491
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xc60(%rbp), %rdi
callq 0x3150
leaq -0xbe0(%rbp), %rdi
callq 0x3150
jmp 0xe4f0
leaq 0x38b5(%rip), %rsi      # 0x10245
leaq -0xb38(%rbp), %rdi
callq 0xf2d0
movb %al, -0x1631(%rbp)
jmp 0xc9a4
movb -0x1631(%rbp), %al
testb $0x1, %al
jne 0xc9b3
jmp 0xcc42
leaq -0xc80(%rbp), %rdi
movq %rdi, -0x1640(%rbp)
callq 0x3330
movq -0x1640(%rbp), %rsi
leaq -0xb18(%rbp), %rdi
movl $0x3b, %edx
callq 0x3460
jmp 0xc9e0
leaq -0xcc0(%rbp), %rdi
leaq -0xc80(%rbp), %rsi
callq 0x3100
jmp 0xc9f5
leaq -0xca0(%rbp), %rdi
leaq -0xcc0(%rbp), %rsi
callq 0xe7e0
jmp 0xca0a
leaq -0xc80(%rbp), %rdi
movq %rdi, -0x1648(%rbp)
leaq -0xca0(%rbp), %rsi
movq %rsi, -0x1650(%rbp)
callq 0x32e0
movq -0x1650(%rbp), %rdi
callq 0x3150
leaq -0xcc0(%rbp), %rdi
callq 0x3150
movq -0x1648(%rbp), %rsi
leaq -0xce0(%rbp), %rdi
callq 0x3100
jmp 0xca58
leaq -0xce0(%rbp), %rdi
callq 0xe8c0
movb %al, -0x1651(%rbp)
jmp 0xca6c
movb -0x1651(%rbp), %al
xorb $-0x1, %al
movb %al, -0x1652(%rbp)
leaq -0xce0(%rbp), %rdi
callq 0x3150
movb -0x1652(%rbp), %al
testb $0x1, %al
jne 0xca95
jmp 0xcba4
movq 0xa534(%rip), %rdi      # 0x16fd0
leaq 0x3686(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1660(%rbp)
jmp 0xcab1
movq -0x1660(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1668(%rbp)
jmp 0xcace
movq -0x1668(%rbp), %rdi
leaq 0x366c(%rip), %rsi      # 0x10148
callq 0x3220
movq %rax, -0x1670(%rbp)
jmp 0xcaea
movq -0x1670(%rbp), %rdi
movq 0xa4c8(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xcaff
movq -0x228(%rbp), %rax
movq %rax, -0x1678(%rbp)
cmpq $0x0, %rax
je 0xcb30
movq -0x1678(%rbp), %rdi
callq 0x6760
movq -0x1678(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xcbf2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xcc31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xcc0(%rbp), %rdi
callq 0x3150
jmp 0xcc31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xce0(%rbp), %rdi
callq 0x3150
jmp 0xcc31
movq -0x228(%rbp), %rax
movq %rax, -0x1680(%rbp)
leaq -0xd00(%rbp), %rdi
leaq -0xc80(%rbp), %rsi
callq 0x3100
jmp 0xcbc7
movq -0x1680(%rbp), %rdi
leaq -0xd00(%rbp), %rsi
callq 0x6ad0
jmp 0xcbdc
leaq -0xd00(%rbp), %rdi
callq 0x3150
movl $0x0, -0x44c(%rbp)
leaq -0xc80(%rbp), %rdi
callq 0x3150
movl -0x44c(%rbp), %eax
testl %eax, %eax
jne 0xe4a1
jmp 0xcc0e
jmp 0xe48f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xd00(%rbp), %rdi
callq 0x3150
leaq -0xc80(%rbp), %rdi
callq 0x3150
jmp 0xe4f0
leaq 0x3603(%rip), %rsi      # 0x1024c
leaq -0xb38(%rbp), %rdi
callq 0xf2d0
movb %al, -0x1681(%rbp)
jmp 0xcc5d
movb -0x1681(%rbp), %al
testb $0x1, %al
jne 0xcc6c
jmp 0xcefb
leaq -0xd20(%rbp), %rdi
movq %rdi, -0x1690(%rbp)
callq 0x3330
movq -0x1690(%rbp), %rsi
leaq -0xb18(%rbp), %rdi
movl $0x3b, %edx
callq 0x3460
jmp 0xcc99
leaq -0xd60(%rbp), %rdi
leaq -0xd20(%rbp), %rsi
callq 0x3100
jmp 0xccae
leaq -0xd40(%rbp), %rdi
leaq -0xd60(%rbp), %rsi
callq 0xe7e0
jmp 0xccc3
leaq -0xd20(%rbp), %rdi
movq %rdi, -0x1698(%rbp)
leaq -0xd40(%rbp), %rsi
movq %rsi, -0x16a0(%rbp)
callq 0x32e0
movq -0x16a0(%rbp), %rdi
callq 0x3150
leaq -0xd60(%rbp), %rdi
callq 0x3150
movq -0x1698(%rbp), %rsi
leaq -0xd80(%rbp), %rdi
callq 0x3100
jmp 0xcd11
leaq -0xd80(%rbp), %rdi
callq 0xe8c0
movb %al, -0x16a1(%rbp)
jmp 0xcd25
movb -0x16a1(%rbp), %al
xorb $-0x1, %al
movb %al, -0x16a2(%rbp)
leaq -0xd80(%rbp), %rdi
callq 0x3150
movb -0x16a2(%rbp), %al
testb $0x1, %al
jne 0xcd4e
jmp 0xce5d
movq 0xa27b(%rip), %rdi      # 0x16fd0
leaq 0x33cd(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x16b0(%rbp)
jmp 0xcd6a
movq -0x16b0(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x16b8(%rbp)
jmp 0xcd87
movq -0x16b8(%rbp), %rdi
leaq 0x33b3(%rip), %rsi      # 0x10148
callq 0x3220
movq %rax, -0x16c0(%rbp)
jmp 0xcda3
movq -0x16c0(%rbp), %rdi
movq 0xa20f(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xcdb8
movq -0x228(%rbp), %rax
movq %rax, -0x16c8(%rbp)
cmpq $0x0, %rax
je 0xcde9
movq -0x16c8(%rbp), %rdi
callq 0x6760
movq -0x16c8(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xceab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xceea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xd60(%rbp), %rdi
callq 0x3150
jmp 0xceea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xd80(%rbp), %rdi
callq 0x3150
jmp 0xceea
movq -0x228(%rbp), %rax
movq %rax, -0x16d0(%rbp)
leaq -0xda0(%rbp), %rdi
leaq -0xd20(%rbp), %rsi
callq 0x3100
jmp 0xce80
movq -0x16d0(%rbp), %rdi
leaq -0xda0(%rbp), %rsi
callq 0x6c50
jmp 0xce95
leaq -0xda0(%rbp), %rdi
callq 0x3150
movl $0x0, -0x44c(%rbp)
leaq -0xd20(%rbp), %rdi
callq 0x3150
movl -0x44c(%rbp), %eax
testl %eax, %eax
jne 0xe4a1
jmp 0xcec7
jmp 0xe48d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xda0(%rbp), %rdi
callq 0x3150
leaq -0xd20(%rbp), %rdi
callq 0x3150
jmp 0xe4f0
leaq 0x3350(%rip), %rsi      # 0x10252
leaq -0xb38(%rbp), %rdi
callq 0xf2d0
movb %al, -0x16d1(%rbp)
jmp 0xcf16
movb -0x16d1(%rbp), %al
testb $0x1, %al
jne 0xcff0
jmp 0xcf26
leaq 0x332a(%rip), %rsi      # 0x10257
leaq -0xb38(%rbp), %rdi
callq 0xf2d0
movb %al, -0x16d2(%rbp)
jmp 0xcf41
movb -0x16d2(%rbp), %al
testb $0x1, %al
jne 0xcff0
jmp 0xcf51
leaq 0x32f9(%rip), %rsi      # 0x10251
leaq -0xb38(%rbp), %rdi
callq 0xf2d0
movb %al, -0x16d3(%rbp)
jmp 0xcf6c
movb -0x16d3(%rbp), %al
testb $0x1, %al
jne 0xcff0
jmp 0xcf78
leaq 0x32d7(%rip), %rsi      # 0x10256
leaq -0xb38(%rbp), %rdi
callq 0xf2d0
movb %al, -0x16d4(%rbp)
jmp 0xcf93
movb -0x16d4(%rbp), %al
testb $0x1, %al
jne 0xcff0
jmp 0xcf9f
leaq 0x32b4(%rip), %rsi      # 0x1025a
leaq -0xb38(%rbp), %rdi
callq 0xf2d0
movb %al, -0x16d5(%rbp)
jmp 0xcfba
movb -0x16d5(%rbp), %al
testb $0x1, %al
jne 0xcff0
jmp 0xcfc6
leaq 0x3291(%rip), %rsi      # 0x1025e
leaq -0xb38(%rbp), %rdi
callq 0xf2d0
movb %al, -0x16d6(%rbp)
jmp 0xcfe1
movb -0x16d6(%rbp), %al
testb $0x1, %al
jne 0xcff0
jmp 0xe3dc
leaq -0xdc8(%rbp), %rdi
leaq -0xb38(%rbp), %rsi
callq 0x3100
jmp 0xd005
leaq -0xdc8(%rbp), %rdi
callq 0xee40
movl %eax, -0x16dc(%rbp)
jmp 0xd019
leaq -0xdc8(%rbp), %rdi
callq 0x3150
movl -0x16dc(%rbp), %eax
movl %eax, -0xda4(%rbp)
leaq -0xde8(%rbp), %rdi
movq %rdi, -0x16e8(%rbp)
callq 0x3330
movq -0x16e8(%rbp), %rsi
leaq -0xb18(%rbp), %rdi
movl $0x28, %edx
callq 0x3460
jmp 0xd05e
leaq -0xe10(%rbp), %rdi
leaq -0xde8(%rbp), %rsi
callq 0x3100
jmp 0xd073
leaq -0xe10(%rbp), %rdi
callq 0xef20
movq %rax, -0x16f0(%rbp)
jmp 0xd088
leaq -0xe10(%rbp), %rdi
callq 0x3150
movq -0x16f0(%rbp), %rax
movq %rax, -0xdf0(%rbp)
movq -0xdf0(%rbp), %rdi
callq 0x80e0
movl %eax, -0xe14(%rbp)
cmpl $0x2, -0xe14(%rbp)
jle 0xd201
movq 0x9f08(%rip), %rdi      # 0x16fd0
leaq 0x305a(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x16f8(%rbp)
jmp 0xd0dd
movq -0x16f8(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1700(%rbp)
jmp 0xd0fa
movq -0x1700(%rbp), %rdi
leaq 0x315a(%rip), %rsi      # 0x10262
callq 0x3220
movq %rax, -0x1708(%rbp)
jmp 0xd116
movq -0x1708(%rbp), %rdi
movq 0x9e9c(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xd12b
movq -0xdf0(%rbp), %rax
movq %rax, -0x1710(%rbp)
cmpq $0x0, %rax
je 0xd15c
movq -0x1710(%rbp), %rdi
callq 0x7c70
movq -0x1710(%rbp), %rdi
movl $0x18, %esi
callq 0x3240
movq -0x228(%rbp), %rax
movq %rax, -0x1718(%rbp)
cmpq $0x0, %rax
je 0xd18d
movq -0x1718(%rbp), %rdi
callq 0x6760
movq -0x1718(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe3aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xdc8(%rbp), %rdi
callq 0x3150
jmp 0xe4f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xe3cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xe10(%rbp), %rdi
callq 0x3150
jmp 0xe3cb
cmpl $0x1, -0xe14(%rbp)
je 0xd217
cmpl $0x2, -0xe14(%rbp)
jne 0xe28d
leaq -0xe38(%rbp), %rdi
callq 0x3330
cmpl $0x1, -0xe14(%rbp)
jne 0xd43e
movq -0xdf0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x8100
movq %rax, %rsi
leaq -0xe38(%rbp), %rdi
callq 0x3050
jmp 0xd251
leaq -0xe58(%rbp), %rdi
leaq -0xe38(%rbp), %rsi
callq 0x3100
jmp 0xd266
leaq -0xe58(%rbp), %rdi
callq 0xe8c0
movb %al, -0x1719(%rbp)
jmp 0xd27a
movb -0x1719(%rbp), %al
xorb $-0x1, %al
movb %al, -0x171a(%rbp)
leaq -0xe58(%rbp), %rdi
callq 0x3150
movb -0x171a(%rbp), %al
testb $0x1, %al
jne 0xd2a3
jmp 0xd3c0
movq 0x9d26(%rip), %rdi      # 0x16fd0
leaq 0x2e78(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1728(%rbp)
jmp 0xd2bf
movq -0x1728(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1730(%rbp)
jmp 0xd2dc
movq -0x1730(%rbp), %rdi
leaq 0x2f99(%rip), %rsi      # 0x10283
callq 0x3220
movq %rax, -0x1738(%rbp)
jmp 0xd2f8
movq -0x1738(%rbp), %rdi
movq 0x9cba(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xd30d
movq -0xdf0(%rbp), %rax
movq %rax, -0x1740(%rbp)
cmpq $0x0, %rax
je 0xd33e
movq -0x1740(%rbp), %rdi
callq 0x7c70
movq -0x1740(%rbp), %rdi
movl $0x18, %esi
callq 0x3240
movq -0x228(%rbp), %rax
movq %rax, -0x1748(%rbp)
cmpq $0x0, %rax
je 0xd36f
movq -0x1748(%rbp), %rdi
callq 0x6760
movq -0x1748(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe21f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xe27c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xe58(%rbp), %rdi
callq 0x3150
jmp 0xe27c
movq -0x228(%rbp), %rax
movq %rax, -0x1758(%rbp)
movl -0xda4(%rbp), %eax
movl %eax, -0x174c(%rbp)
leaq -0xe78(%rbp), %rdi
leaq -0xe38(%rbp), %rsi
callq 0x3100
jmp 0xd3ef
movl -0x174c(%rbp), %esi
movq -0x1758(%rbp), %rdi
leaq -0xe78(%rbp), %rdx
callq 0x7330
jmp 0xd40a
leaq -0xe78(%rbp), %rdi
callq 0x3150
jmp 0xd881
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xe78(%rbp), %rdi
callq 0x3150
jmp 0xe27c
movq -0xdf0(%rbp), %rdi
movl $0x1, %esi
callq 0x8100
movq %rax, %rsi
leaq -0xe38(%rbp), %rdi
callq 0x3050
jmp 0xd460
leaq -0xe98(%rbp), %rdi
leaq -0xe38(%rbp), %rsi
callq 0x3100
jmp 0xd475
leaq -0xe98(%rbp), %rdi
callq 0xe8c0
movb %al, -0x1759(%rbp)
jmp 0xd489
movb -0x1759(%rbp), %al
xorb $-0x1, %al
movb %al, -0x175a(%rbp)
leaq -0xe98(%rbp), %rdi
callq 0x3150
movb -0x175a(%rbp), %al
testb $0x1, %al
jne 0xd4b2
jmp 0xd5b8
movq 0x9b17(%rip), %rdi      # 0x16fd0
leaq 0x2c69(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1768(%rbp)
jmp 0xd4ce
movq -0x1768(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1770(%rbp)
jmp 0xd4eb
movq -0x1770(%rbp), %rdi
leaq 0x2d8a(%rip), %rsi      # 0x10283
callq 0x3220
movq %rax, -0x1778(%rbp)
jmp 0xd507
movq -0x1778(%rbp), %rdi
movq 0x9aab(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xd51c
movq -0xdf0(%rbp), %rax
movq %rax, -0x1780(%rbp)
cmpq $0x0, %rax
je 0xd54d
movq -0x1780(%rbp), %rdi
callq 0x7c70
movq -0x1780(%rbp), %rdi
movl $0x18, %esi
callq 0x3240
movq -0x228(%rbp), %rax
movq %rax, -0x1788(%rbp)
cmpq $0x0, %rax
je 0xd57e
movq -0x1788(%rbp), %rdi
callq 0x6760
movq -0x1788(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe21f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xe98(%rbp), %rdi
callq 0x3150
jmp 0xe27c
movq -0xdf0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x8100
movq %rax, %rsi
leaq -0xeb8(%rbp), %rdi
callq 0x3100
jmp 0xd5d9
leaq -0xed8(%rbp), %rdi
leaq -0xeb8(%rbp), %rsi
callq 0x3100
jmp 0xd5ee
leaq -0xed8(%rbp), %rdi
callq 0xf070
movb %al, -0x1789(%rbp)
jmp 0xd602
movb -0x1789(%rbp), %al
xorb $-0x1, %al
movb %al, -0x178a(%rbp)
leaq -0xed8(%rbp), %rdi
callq 0x3150
movb -0x178a(%rbp), %al
testb $0x1, %al
jne 0xd62b
jmp 0xd748
movq 0x999e(%rip), %rdi      # 0x16fd0
leaq 0x2af0(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1798(%rbp)
jmp 0xd647
movq -0x1798(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x17a0(%rbp)
jmp 0xd664
movq -0x17a0(%rbp), %rdi
leaq 0x2c2c(%rip), %rsi      # 0x1029e
callq 0x3220
movq %rax, -0x17a8(%rbp)
jmp 0xd680
movq -0x17a8(%rbp), %rdi
movq 0x9932(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xd695
movq -0xdf0(%rbp), %rax
movq %rax, -0x17b0(%rbp)
cmpq $0x0, %rax
je 0xd6c6
movq -0x17b0(%rbp), %rdi
callq 0x7c70
movq -0x17b0(%rbp), %rdi
movl $0x18, %esi
callq 0x3240
movq -0x228(%rbp), %rax
movq %rax, -0x17b8(%rbp)
cmpq $0x0, %rax
je 0xd6f7
movq -0x17b8(%rbp), %rdi
callq 0x6760
movq -0x17b8(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xd834
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xd870
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xed8(%rbp), %rdi
callq 0x3150
jmp 0xd870
leaq -0xeb8(%rbp), %rdi
movq %rdi, -0x17c8(%rbp)
callq 0x31e0
movq %rax, -0xee8(%rbp)
leaq -0xee0(%rbp), %rdi
leaq -0xee8(%rbp), %rsi
callq 0xf300
movq -0x17c8(%rbp), %rdi
movq -0xee0(%rbp), %rsi
callq 0x32f0
movq %rax, -0x17c0(%rbp)
jmp 0xd791
movq -0x17c0(%rbp), %rax
movq %rax, -0xef0(%rbp)
leaq -0xeb8(%rbp), %rdi
callq 0x30f0
movq %rax, %rdi
callq 0x3390
movl %eax, -0xef4(%rbp)
movq -0x228(%rbp), %rax
movq %rax, -0x17d8(%rbp)
movl -0xda4(%rbp), %eax
movl %eax, -0x17cc(%rbp)
leaq -0xf18(%rbp), %rdi
leaq -0xe38(%rbp), %rsi
callq 0x3100
jmp 0xd7e8
movl -0x17cc(%rbp), %esi
movq -0x17d8(%rbp), %rdi
leaq -0xf18(%rbp), %rdx
callq 0x7330
movq %rax, -0x17e0(%rbp)
jmp 0xd80a
movq -0x17e0(%rbp), %rdi
movl -0xef4(%rbp), %esi
callq 0x4940
jmp 0xd81e
leaq -0xf18(%rbp), %rdi
callq 0x3150
movl $0x0, -0x44c(%rbp)
leaq -0xeb8(%rbp), %rdi
callq 0x3150
movl -0x44c(%rbp), %eax
testl %eax, %eax
jne 0xe21f
jmp 0xd850
jmp 0xd881
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xf18(%rbp), %rdi
callq 0x3150
leaq -0xeb8(%rbp), %rdi
callq 0x3150
jmp 0xe27c
leaq -0xf38(%rbp), %rdi
movq %rdi, -0x17e8(%rbp)
callq 0x3330
movq -0x17e8(%rbp), %rsi
leaq -0xb18(%rbp), %rdi
callq 0x3080
jmp 0xd8a9
leaq -0xf58(%rbp), %rdi
leaq -0xf38(%rbp), %rsi
callq 0x3100
jmp 0xd8be
leaq -0xf58(%rbp), %rdi
callq 0xe980
movb %al, -0x17e9(%rbp)
jmp 0xd8d2
movb -0x17e9(%rbp), %al
xorb $-0x1, %al
movb %al, -0x17ea(%rbp)
leaq -0xf58(%rbp), %rdi
callq 0x3150
movb -0x17ea(%rbp), %al
testb $0x1, %al
jne 0xd8fb
jmp 0xda18
movq 0x96ce(%rip), %rdi      # 0x16fd0
leaq 0x2820(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x17f8(%rbp)
jmp 0xd917
movq -0x17f8(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1800(%rbp)
jmp 0xd934
movq -0x1800(%rbp), %rdi
leaq 0x281c(%rip), %rsi      # 0x1015e
callq 0x3220
movq %rax, -0x1808(%rbp)
jmp 0xd950
movq -0x1808(%rbp), %rdi
movq 0x9662(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xd965
movq -0xdf0(%rbp), %rax
movq %rax, -0x1810(%rbp)
cmpq $0x0, %rax
je 0xd996
movq -0x1810(%rbp), %rdi
callq 0x7c70
movq -0x1810(%rbp), %rdi
movl $0x18, %esi
callq 0x3240
movq -0x228(%rbp), %rax
movq %rax, -0x1818(%rbp)
cmpq $0x0, %rax
je 0xd9c7
movq -0x1818(%rbp), %rdi
callq 0x6760
movq -0x1818(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe213
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xe270
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0xf58(%rbp), %rdi
callq 0x3150
jmp 0xe270
movl $0x10, %edi
movl $0x8, %esi
callq 0xf280
movl %eax, -0x181c(%rbp)
jmp 0xda2f
movl -0x181c(%rbp), %edx
leaq -0x10e0(%rbp), %rdi
leaq -0xf38(%rbp), %rsi
callq 0x33a0
jmp 0xda4a
leaq -0x1100(%rbp), %rdi
movq %rdi, -0x1828(%rbp)
callq 0x3330
movq -0x1828(%rbp), %rsi
leaq -0x10e0(%rbp), %rdi
movl $0x29, %edx
callq 0x3460
jmp 0xda77
leaq -0x1140(%rbp), %rdi
leaq -0x1100(%rbp), %rsi
callq 0x3100
jmp 0xda8c
leaq -0x1120(%rbp), %rdi
leaq -0x1140(%rbp), %rsi
callq 0xe7e0
jmp 0xdaa1
leaq -0x1100(%rbp), %rdi
movq %rdi, -0x1838(%rbp)
leaq -0x1120(%rbp), %rsi
movq %rsi, -0x1840(%rbp)
callq 0x32e0
movq -0x1840(%rbp), %rdi
callq 0x3150
leaq -0x1140(%rbp), %rdi
callq 0x3150
movq -0x1838(%rbp), %rdi
callq 0x3370
movq -0x1838(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x3480
movq %rax, -0x1830(%rbp)
jmp 0xdb01
movq -0x1830(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0xdc31
movq 0x94b5(%rip), %rdi      # 0x16fd0
leaq 0x2607(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1848(%rbp)
jmp 0xdb30
movq -0x1848(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1850(%rbp)
jmp 0xdb4d
movq -0x1850(%rbp), %rdi
leaq 0x275a(%rip), %rsi      # 0x102b5
callq 0x3220
movq %rax, -0x1858(%rbp)
jmp 0xdb69
movq -0x1858(%rbp), %rdi
movq 0x9449(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xdb7e
movq -0xdf0(%rbp), %rax
movq %rax, -0x1860(%rbp)
cmpq $0x0, %rax
je 0xdbaf
movq -0x1860(%rbp), %rdi
callq 0x7c70
movq -0x1860(%rbp), %rdi
movl $0x18, %esi
callq 0x3240
movq -0x228(%rbp), %rax
movq %rax, -0x1868(%rbp)
cmpq $0x0, %rax
je 0xdbe0
movq -0x1868(%rbp), %rdi
callq 0x6760
movq -0x1868(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe1fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xe258
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x1140(%rbp), %rdi
callq 0x3150
jmp 0xe258
movl $0x10, %edi
movl $0x8, %esi
callq 0xf280
movl %eax, -0x186c(%rbp)
jmp 0xdc48
movl -0x186c(%rbp), %edx
leaq -0x12c8(%rbp), %rdi
leaq -0x1100(%rbp), %rsi
callq 0x33a0
jmp 0xdc63
leaq -0x12e8(%rbp), %rdi
callq 0x3330
movb $0x1, -0x12e9(%rbp)
movl $0x0, -0x12f0(%rbp)
movq -0x12c8(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x12c8(%rbp,%rax), %rdi
callq 0x33f0
movb %al, -0x186d(%rbp)
jmp 0xdca0
movb -0x186d(%rbp), %al
testb $0x1, %al
jne 0xdcaf
jmp 0xe0ec
movl -0x12f0(%rbp), %eax
incl %eax
movl %eax, -0x12f0(%rbp)
leaq -0x12c8(%rbp), %rdi
leaq -0x12e8(%rbp), %rsi
movl $0x2c, %edx
callq 0x3460
jmp 0xdcd7
leaq -0x1330(%rbp), %rdi
leaq -0x12e8(%rbp), %rsi
callq 0x3100
jmp 0xdcec
leaq -0x1310(%rbp), %rdi
leaq -0x1330(%rbp), %rsi
callq 0xe7e0
jmp 0xdd01
leaq -0x12e8(%rbp), %rdi
movq %rdi, -0x1878(%rbp)
leaq -0x1310(%rbp), %rsi
movq %rsi, -0x1880(%rbp)
callq 0x32e0
movq -0x1880(%rbp), %rdi
callq 0x3150
leaq -0x1330(%rbp), %rdi
callq 0x3150
movq -0x1878(%rbp), %rsi
leaq -0x1350(%rbp), %rdi
callq 0x3100
jmp 0xdd4f
leaq -0x1350(%rbp), %rdi
callq 0xe8c0
movb %al, -0x1881(%rbp)
jmp 0xdd63
movb -0x1881(%rbp), %al
xorb $-0x1, %al
movb %al, -0x1882(%rbp)
leaq -0x1350(%rbp), %rdi
callq 0x3150
movb -0x1882(%rbp), %al
testb $0x1, %al
jne 0xdd8c
jmp 0xdecc
movq 0x923d(%rip), %rdi      # 0x16fd0
leaq 0x238f(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1890(%rbp)
jmp 0xdda8
movq -0x1890(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1898(%rbp)
jmp 0xddc5
movq -0x1898(%rbp), %rdi
leaq 0x24f9(%rip), %rsi      # 0x102cc
callq 0x3220
movq %rax, -0x18a0(%rbp)
jmp 0xdde1
movq -0x18a0(%rbp), %rdi
movq 0x91d1(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xddf6
movq -0xdf0(%rbp), %rax
movq %rax, -0x18a8(%rbp)
cmpq $0x0, %rax
je 0xde27
movq -0x18a8(%rbp), %rdi
callq 0x7c70
movq -0x18a8(%rbp), %rdi
movl $0x18, %esi
callq 0x3240
movq -0x228(%rbp), %rax
movq %rax, -0x18b0(%rbp)
cmpq $0x0, %rax
je 0xde58
movq -0x18b0(%rbp), %rdi
callq 0x6760
movq -0x18b0(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe1e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xe240
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x1330(%rbp), %rdi
callq 0x3150
jmp 0xe240
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x1350(%rbp), %rdi
callq 0x3150
jmp 0xe240
testb $0x1, -0x12e9(%rbp)
je 0xdfe5
movq -0x228(%rbp), %rax
movq %rax, -0x18c0(%rbp)
movl -0xda4(%rbp), %eax
movl %eax, -0x18b4(%rbp)
leaq -0x1370(%rbp), %rdi
leaq -0xe38(%rbp), %rsi
callq 0x3100
jmp 0xdf08
movl -0x18b4(%rbp), %esi
movq -0x18c0(%rbp), %rdi
leaq -0x1370(%rbp), %rdx
callq 0x7330
movq %rax, -0x18c8(%rbp)
jmp 0xdf2a
movq -0x228(%rbp), %rax
movq %rax, -0x18d0(%rbp)
leaq -0x1390(%rbp), %rdi
leaq -0x12e8(%rbp), %rsi
callq 0x3100
jmp 0xdf4d
movq -0x18d0(%rbp), %rdi
leaq -0x1390(%rbp), %rsi
callq 0x6c50
movq %rax, -0x18d8(%rbp)
jmp 0xdf69
movq -0x18d8(%rbp), %rsi
movq -0x18c8(%rbp), %rdi
callq 0x49b0
jmp 0xdf7e
leaq -0x1390(%rbp), %rdi
callq 0x3150
leaq -0x1370(%rbp), %rdi
callq 0x3150
movb $0x0, -0x12e9(%rbp)
jmp 0xe0e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xdfd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x1390(%rbp), %rdi
callq 0x3150
leaq -0x1370(%rbp), %rdi
callq 0x3150
jmp 0xe240
movq -0x228(%rbp), %rax
movq %rax, -0x18e8(%rbp)
movl -0xda4(%rbp), %eax
movl %eax, -0x18dc(%rbp)
leaq -0x13b0(%rbp), %rdi
leaq -0xe38(%rbp), %rsi
callq 0x3100
jmp 0xe014
movl -0x18dc(%rbp), %esi
movq -0x18e8(%rbp), %rdi
leaq -0x13b0(%rbp), %rdx
callq 0x7330
movq %rax, -0x18f0(%rbp)
jmp 0xe036
movq -0x228(%rbp), %rax
movq %rax, -0x18f8(%rbp)
leaq -0x13d0(%rbp), %rdi
leaq -0x12e8(%rbp), %rsi
callq 0x3100
jmp 0xe059
movq -0x18f8(%rbp), %rdi
leaq -0x13d0(%rbp), %rsi
callq 0x6c50
movq %rax, -0x1900(%rbp)
jmp 0xe075
movq -0x1900(%rbp), %rsi
movq -0x18f0(%rbp), %rdi
callq 0x4980
jmp 0xe08a
leaq -0x13d0(%rbp), %rdi
callq 0x3150
leaq -0x13b0(%rbp), %rdi
callq 0x3150
jmp 0xe0e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0xe0d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x13d0(%rbp), %rdi
callq 0x3150
leaq -0x13b0(%rbp), %rdi
callq 0x3150
jmp 0xe240
jmp 0xdc80
cmpl $0x2, -0x12f0(%rbp)
jge 0xe1d9
movq 0x8ed0(%rip), %rdi      # 0x16fd0
leaq 0x2022(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1908(%rbp)
jmp 0xe115
movq -0x1908(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1910(%rbp)
jmp 0xe132
movq -0x1910(%rbp), %rdi
leaq 0x21ad(%rip), %rsi      # 0x102ed
callq 0x3220
movq %rax, -0x1918(%rbp)
jmp 0xe14e
movq -0x1918(%rbp), %rdi
movq 0x8e64(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xe163
movq -0xdf0(%rbp), %rax
movq %rax, -0x1920(%rbp)
cmpq $0x0, %rax
je 0xe194
movq -0x1920(%rbp), %rdi
callq 0x7c70
movq -0x1920(%rbp), %rdi
movl $0x18, %esi
callq 0x3240
movq -0x228(%rbp), %rax
movq %rax, -0x1928(%rbp)
cmpq $0x0, %rax
je 0xe1c5
movq -0x1928(%rbp), %rdi
callq 0x6760
movq -0x1928(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe1e3
movl $0x0, -0x44c(%rbp)
leaq -0x12e8(%rbp), %rdi
callq 0x3150
leaq -0x12c8(%rbp), %rdi
callq 0x3190
leaq -0x1100(%rbp), %rdi
callq 0x3150
leaq -0x10e0(%rbp), %rdi
callq 0x3190
leaq -0xf38(%rbp), %rdi
callq 0x3150
leaq -0xe38(%rbp), %rdi
callq 0x3150
movl -0x44c(%rbp), %eax
testl %eax, %eax
jne 0xe3aa
jmp 0xe23b
jmp 0xe36d
leaq -0x12e8(%rbp), %rdi
callq 0x3150
leaq -0x12c8(%rbp), %rdi
callq 0x3190
leaq -0x1100(%rbp), %rdi
callq 0x3150
leaq -0x10e0(%rbp), %rdi
callq 0x3190
leaq -0xf38(%rbp), %rdi
callq 0x3150
leaq -0xe38(%rbp), %rdi
callq 0x3150
jmp 0xe3cb
movq 0x8d3c(%rip), %rdi      # 0x16fd0
leaq 0x1e8e(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1930(%rbp)
jmp 0xe2a9
movq -0x1930(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1938(%rbp)
jmp 0xe2c6
movq -0x1938(%rbp), %rdi
leaq 0x2047(%rip), %rsi      # 0x1031b
callq 0x3220
movq %rax, -0x1940(%rbp)
jmp 0xe2e2
movq -0x1940(%rbp), %rdi
movq 0x8cd0(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xe2f7
movq -0xdf0(%rbp), %rax
movq %rax, -0x1948(%rbp)
cmpq $0x0, %rax
je 0xe328
movq -0x1948(%rbp), %rdi
callq 0x7c70
movq -0x1948(%rbp), %rdi
movl $0x18, %esi
callq 0x3240
movq -0x228(%rbp), %rax
movq %rax, -0x1950(%rbp)
cmpq $0x0, %rax
je 0xe359
movq -0x1950(%rbp), %rdi
callq 0x6760
movq -0x1950(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe3aa
jmp 0xe36f
movq -0xdf0(%rbp), %rax
movq %rax, -0x1958(%rbp)
cmpq $0x0, %rax
je 0xe3a0
movq -0x1958(%rbp), %rdi
callq 0x7c70
movq -0x1958(%rbp), %rdi
movl $0x18, %esi
callq 0x3240
movl $0x0, -0x44c(%rbp)
leaq -0xde8(%rbp), %rdi
callq 0x3150
movl -0x44c(%rbp), %eax
testl %eax, %eax
jne 0xe4a1
jmp 0xe3c6
jmp 0xe48b
leaq -0xde8(%rbp), %rdi
callq 0x3150
jmp 0xe4f0
movq 0x8bed(%rip), %rdi      # 0x16fd0
leaq 0x1d3f(%rip), %rsi      # 0x10129
callq 0x3220
movq %rax, -0x1960(%rbp)
jmp 0xe3f8
movq -0x1960(%rbp), %rdi
movl -0x22c(%rbp), %esi
decl %esi
callq 0x3400
movq %rax, -0x1968(%rbp)
jmp 0xe415
movq -0x1968(%rbp), %rdi
leaq 0x1f10(%rip), %rsi      # 0x10333
callq 0x3220
movq %rax, -0x1970(%rbp)
jmp 0xe431
movq -0x1970(%rbp), %rdi
movq 0x8b81(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xe446
movq -0x228(%rbp), %rax
movq %rax, -0x1978(%rbp)
cmpq $0x0, %rax
je 0xe477
movq -0x1978(%rbp), %rdi
callq 0x6760
movq -0x1978(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe4a1
jmp 0xe48d
jmp 0xe48f
jmp 0xe491
jmp 0xe493
jmp 0xe495
jmp 0xe497
movl $0x0, -0x44c(%rbp)
leaq -0xb38(%rbp), %rdi
callq 0x3150
leaq -0xb18(%rbp), %rdi
callq 0x3190
leaq -0x950(%rbp), %rdi
callq 0x3150
movl -0x44c(%rbp), %eax
movl %eax, -0x197c(%rbp)
testl %eax, %eax
je 0xe4eb
jmp 0xe4d7
movl -0x197c(%rbp), %eax
subl $0x6, %eax
je 0xc116
jmp 0xe5bb
jmp 0xc116
leaq -0xb38(%rbp), %rdi
callq 0x3150
leaq -0xb18(%rbp), %rdi
callq 0x3190
leaq -0x950(%rbp), %rdi
callq 0x3150
jmp 0xe5d4
testb $0x1, -0x22e(%rbp)
jne 0xe598
movq 0x8aa7(%rip), %rdi      # 0x16fd0
leaq 0x1e20(%rip), %rsi      # 0x10350
callq 0x3220
movq %rax, -0x1988(%rbp)
jmp 0xe53e
movq -0x1988(%rbp), %rdi
movq 0x8a74(%rip), %rsi      # 0x16fc0
callq 0x3270
jmp 0xe553
movq -0x228(%rbp), %rax
movq %rax, -0x1990(%rbp)
cmpq $0x0, %rax
je 0xe584
movq -0x1990(%rbp), %rdi
callq 0x6760
movq -0x1990(%rbp), %rdi
movl $0xd8, %esi
callq 0x3240
movq $0x0, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
jmp 0xe5bb
leaq -0x220(%rbp), %rdi
callq 0x3090
jmp 0xe5a6
movq -0x228(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x44c(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x30a0
movq -0x8(%rbp), %rax
addq $0x1990, %rsp           # imm = 0x1990
popq %rbp
retq
leaq -0x220(%rbp), %rdi
callq 0x30a0
movq -0x238(%rbp), %rdi
callq 0x3410
nopl (%rax)