// File: /workspace/github_cpp_makefile_star2_O2/Luthaf[P]zeopp/./zeojobs.h
// Function: zeoJob::setup(std::vector<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>>>>, std::allocator<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>>>>>>, char const*, char const*)
bool setup(std::vector< std::vector<std::string> > commands_string, const char *name_string, const char*extension_string)
   {
   commands = commands_string;
   strcpy(name, name_string);
   strcpy(extension, extension_string);

   /* Initial setup */
   bool error = false;
   int numCommands = commands.size();

   /* Display welcome message */
   cout << "Entering new Zeo++ execution route. Input parameters are:\n";
   for(unsigned int i=0;i<commands.size();i++)
     for(unsigned int j=0;j<commands[i].size();j++)
       cout << commands[i][j] << " ";
   cout << name << "   " << extension << "\n";
   /* Ends display message */


   /* Pre-process the argument list:
    * Search for commands that affect Voronoi decomposition beforehand */  
   for(int i = 0; i < numCommands; i++){
     vector<string> command = commands[i];
     if(command[0].compare("-r") == 0){
       processRadialParameters(command);
       Material.radial = true;
     }
     else if(command[0].compare("-nor") == 0){
       //Material.radial = false;
       cerr << "-nor is disabled. Set radii to zero instead.\n";
     }
     else if(command[0].compare("-mass") == 0){
       processMassParameters(command);
       Material.useMass = true;
     }
     else if(command[0].compare("-nomass") == 0){
       Material.useMass = false;
     }
     else if(commands[i][0].compare("-zvis") == 0){
       Material.outputZvis = true;
     }
     else if(commands[i][0].compare("-sa") == 0 || commands[i][0].compare("-vol") == 0){
       Material.buildBasicCells = true;
       if(commands[i][0].compare("-vol") == 0) volumeRunFlag = true;
     }
     else if(commands[i][0].compare("-noha") == 0){
       Material.highAccuracy = false;
     }
     else if(commands[i][0].compare("-ha") == 0){
       Material.AccSetting = processAccuracyParameters(command);
       Material.highAccuracy = true;
     }
     else if(commands[i][0].compare("-ext") == 0 || commands[i][0].compare("-eo") == 0 || commands[i][0].compare("-extendedOutput") == 0){
       extendedOutputFlag = true;
     }
     else if(commands[i][0].compare("-vo") == 0 || commands[i][0].compare("-visual") == 0 || commands[i][0].compare("-visout") == 0){
       Material.VisSetting = processVisualizationParameters(command);
       Material.VisFlag = true;
     }
     else if(commands[i][0].compare("-block") == 0){
       Material.AVrequestBlockingPockets = true; 
     }
     else if(commands[i][0].compare("-psd") == 0){
       Material.AVrequestPSD = true;
     }
     else if(commands[i][0].compare("-allowAdjustCoordsAndCell") == 0){
       Material.allowAdjustCoordsAndCell = true;
       Material.atmnet.allowAdjustCoordsAndCellFlag = Material.allowAdjustCoordsAndCell;
       Material.orgAtomnet.allowAdjustCoordsAndCellFlag = Material.allowAdjustCoordsAndCell;
     }
     else if(commands[i][0].compare("-probe") == 0){
       probeRadius = strtod(commands[i][1].data(), NULL);
       probeRadiusFlag = true;
     }
     else if(commands[i][0].compare("-sqf") == 0){
       nMCsamplesScaleFactor = strtod(commands[i][1].data(), NULL);
       nMCsamplesScaleFactorFlag = true;
       nMCAVsampleDensity = (int)(nMCAVsampleDensity * nMCsamplesScaleFactor); 
       nMCASAsampleDensity = (int)(nMCASAsampleDensity * nMCsamplesScaleFactor);
       if(nMCAVsampleDensity < 1 || nMCASAsampleDensity < 1)
         {
         error = true;
         cerr << "Density of MC samples below 1. Please use larger value with -sqf argument. Current density for AV = " 
              << nMCAVsampleDensity << " and ASA = " << nMCASAsampleDensity <<".\n";
         };
     }
   }; // ends loop over all commands 

   /* Pre-process the argument list to make sure all arguemtns are specified */
   if(probeRadiusFlag == false){
     for(int i = 0; i < numCommands; i++){
       vector<string> command = commands[i];
       if(command[0].compare("-zvor") == 0 ||
          command[0].compare("-axs") == 0 ||
          command[0].compare("-holo") == 0 ||
          command[0].compare("-chan") == 0 ||
          command[0].compare("-zchan") == 0 ||
          command[0].compare("-poreinfo") == 0 ||
          command[0].compare("-test") == 0 ||
          command[0].compare("-vol") == 0 ||
          command[0].compare("-sa") == 0 ||
          command[0].compare("-visVoro") == 0 || 
          command[0].compare("-pld") == 0 ||
          command[0].compare("-pldf") == 0||
          command[0].compare("-pldmol") == 0)
       {
       error = true;
       cerr << command[0] << " option requires probe radius. Please use \"-probe R\" (where R is radius)\n";
       }
     }
   }

   /* Pre-process the arugment list to make sure all run dependiences are fulfilled */
   if(volumeRunFlag == false){
     for(int i = 0; i < numCommands; i++){
       vector<string> command = commands[i];
       if(command[0].compare("-block") == 0 || command[0].compare("-psd") == 0)
         {
         error = true;
         cerr << command[0] << " option depends on accessible volume calculation. Please add \"-vol nS\" (where nS is the number of MC samples per cubic Ang).\n";
         };
     };
   }   

   /* Load structure */
   //Read input file information into the ATOM_NETWORK
   if(error == false){
   char filename[256];
   strcpy(filename,name); strcat(filename,"."); strcat(filename,extension);
   cout << filename << endl;
   if(strcmp(extension, "cuc") == 0){
     if(!readCUCFile(filename, &(Material.atmnet), Material.radial)) error=true;
   }
   else if(strcmp(extension, "arc") == 0){
     if(!readARCFile(filename, &(Material.atmnet), Material.radial)) error=true;
   }
   else if(strcmp(extension, "cssr") == 0){
     if(!readCSSRFile(filename, &(Material.atmnet), Material.radial)) error=true;
   }
   else if(strcmp(extension, "cif") == 0){
     if(!readCIFFile(filename, &(Material.atmnet), Material.radial)) error=true;
   }
   else if(strcmp(extension, "car") == 0){
     if(!readCARFile(filename, &(Material.atmnet), Material.radial)) error=true;
   }
   else if (strcmp(extension, "v1") == 0){
     if(!readV1File(filename, &(Material.atmnet), Material.radial)) error=true;
   }
   else if(strcmp(extension, "pdb") == 0){
     if(!readPDBFile(filename, &(Material.atmnet), Material.radial)) error=true;
   }
   else if (strcmp(extension, "dlp") == 0){
     if(!readDLPFile(filename, &(Material.atmnet), Material.radial)) error=true;
   }
   //Should never be reached because of checkInputFile()
   else{
     cerr << "Invalid input file extension " << extension << "\n"
          << "Exiting ..." << "\n";
     error = true;
   };
   };

   /* Initialize radii, mass and accuracy setting */
   if(!error) {

     // Read radii after reading atoms if -r  requested
     if(Material.radial)
       loadRadii(&(Material.atmnet));

     loadMass(Material.useMass, &(Material.atmnet)); // assigns masses to atoms (assigns 0s in useMass flag = false)

     // High accuracy options - if the system contains particles of different radii, the employed radical
     // Voronoi decomposition may not be accurate. it can be, however, improved if large particles are 
     // replaced by clusters of smaller one (idea taken from Carolyn Philiphs/Chris Rycroft). 
     Material.atmnet.copy(&(Material.orgAtomnet)); // keep a copy of original atomnet 
                                                   //(if high accuracy is not set, this is the same as analyzed network)
     if(Material.radial && Material.highAccuracy)
       {
       // atmnet.copy(&orgAtomnet); // keep a copy of original atomnet
       // calling the following function will modify atmnet - replace large atoms with clusters of small ones
       setupHighAccuracyAtomNetwork(&(Material.atmnet), Material.AccSetting);
       };
     // please note that orgAtomnet is empty unless highAccuracy flag is set !! 

   }; // ends if(!error)

   setupErrorFlag = error;
   return error;

   }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1e8, %rsp            # imm = 0x1E8
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %rbx
leaq 0x8(%rdi), %r12
movq %r12, %rdi
callq 0xd583e
leaq 0x20(%rbx), %rdi
movq %rdi, 0x48(%rsp)
movq %r15, %rsi
callq 0x4430
leaq 0x120(%rbx), %rdi
movq %rdi, 0x10(%rsp)
movq %r14, %rsi
callq 0x4430
movq 0x10(%rbx), %rax
subq 0x8(%rbx), %rax
pushq $0x18
popq %rcx
cqto
idivq %rcx
movq %rax, 0x18(%rsp)
movq 0x7f1c5(%rip), %r15     # 0x14ffc0
leaq 0x3d809(%rip), %rsi     # 0x10e60b
movq %r15, %rdi
callq 0x4480
movq %rbx, 0x8(%rsp)
movq 0x8(%rbx), %rcx
xorl %ebx, %ebx
leaq 0x336f6(%rip), %r13     # 0x104512
movl %ebx, %ebx
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
subq %rcx, %rax
cqto
pushq $0x18
popq %rsi
idivq %rsi
cmpq %rbx, %rax
jbe 0xd0e7e
xorl %eax, %eax
imulq $0x18, %rbx, %r14
movl %eax, %ebp
movq (%rcx,%r14), %rsi
movq 0x8(%rcx,%r14), %rax
subq %rsi, %rax
sarq $0x5, %rax
cmpq %rbp, %rax
jbe 0xd0e7a
movq %rbp, %rax
shlq $0x5, %rax
addq %rax, %rsi
movq %r15, %rdi
callq 0x43f0
movq %rax, %rdi
movq %r13, %rsi
callq 0x4480
leal 0x1(%rbp), %eax
movq (%r12), %rcx
jmp 0xd0e3d
incl %ebx
jmp 0xd0e1c
movq 0x7f13b(%rip), %rdi     # 0x14ffc0
movq 0x48(%rsp), %rsi
callq 0x4480
leaq 0x2b638(%rip), %rsi     # 0xfc4ce
movq %rax, %rdi
callq 0x4480
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x4480
leaq 0x316cc(%rip), %rsi     # 0x10257e
movq %rax, %rdi
callq 0x4480
movq 0x8(%rsp), %rcx
leaq 0x248(%rcx), %rax
movq %rax, 0x60(%rsp)
leaq 0x6a8(%rcx), %rax
movq %rax, 0x58(%rsp)
leaq 0xe38(%rcx), %rax
movq %rax, 0x50(%rsp)
xorl %r15d, %r15d
movq 0x18(%rsp), %rdx
testl %edx, %edx
cmovlel %r15d, %edx
leaq 0xbb8(%rcx), %rax
movq %rax, 0x40(%rsp)
imulq $0x18, %rdx, %rax
movq %rax, 0x18(%rsp)
leaq 0x1d0(%rsp), %rbp
leaq 0x1b8(%rsp), %r13
leaq 0x1a0(%rsp), %r14
movq $0x0, 0x20(%rsp)
cmpq %r15, 0x18(%rsp)
je 0xd1422
movq (%r12), %rsi
addq %r15, %rsi
leaq 0x28(%rsp), %rbx
movq %rbx, %rdi
callq 0x2454a
movq 0x28(%rsp), %rdi
leaq 0x3ca9d(%rip), %rsi     # 0x10d9ef
callq 0x4190
testl %eax, %eax
je 0xd122a
movq 0x28(%rsp), %rdi
leaq 0x3ca87(%rip), %rsi     # 0x10d9f2
callq 0x4190
testl %eax, %eax
je 0xd1259
movq 0x28(%rsp), %rdi
leaq 0x3ca73(%rip), %rsi     # 0x10d9f7
callq 0x4190
testl %eax, %eax
je 0xd126e
movq 0x28(%rsp), %rdi
leaq 0x3ca60(%rip), %rsi     # 0x10d9fd
callq 0x4190
testl %eax, %eax
je 0xd129c
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3ca4c(%rip), %rsi     # 0x10da05
callq 0x4190
testl %eax, %eax
je 0xd12d7
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3ca36(%rip), %rsi     # 0x10da0b
callq 0x4190
testl %eax, %eax
je 0xd12aa
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3ca1e(%rip), %rsi     # 0x10da0f
callq 0x4190
testl %eax, %eax
je 0xd12aa
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3d667(%rip), %rsi     # 0x10e674
callq 0x4190
testl %eax, %eax
je 0xd12f6
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3c9eb(%rip), %rsi     # 0x10da14
callq 0x4190
testl %eax, %eax
je 0xd1312
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3d635(%rip), %rsi     # 0x10e67a
callq 0x4190
testl %eax, %eax
je 0xd1304
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3d61e(%rip), %rsi     # 0x10e67f
callq 0x4190
testl %eax, %eax
je 0xd1304
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3d606(%rip), %rsi     # 0x10e683
callq 0x4190
testl %eax, %eax
je 0xd1304
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3d5fa(%rip), %rsi     # 0x10e693
callq 0x4190
testl %eax, %eax
je 0xd136a
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3d5e2(%rip), %rsi     # 0x10e697
callq 0x4190
testl %eax, %eax
je 0xd136a
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3d5ce(%rip), %rsi     # 0x10e69f
callq 0x4190
testl %eax, %eax
je 0xd136a
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3ce03(%rip), %rsi     # 0x10def0
callq 0x4190
testl %eax, %eax
je 0xd13be
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3cf03(%rip), %rsi     # 0x10e00c
callq 0x4190
testl %eax, %eax
je 0xd13cf
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3c93b(%rip), %rsi     # 0x10da60
callq 0x4190
testl %eax, %eax
je 0xd13e0
movq (%r12), %rax
movq (%rax,%r15), %rdi
leaq 0x3d566(%rip), %rsi     # 0x10e6a7
callq 0x4190
movq (%r12), %rcx
movq (%rcx,%r15), %rdi
testl %eax, %eax
je 0xd13fe
leaq 0x3d551(%rip), %rsi     # 0x10e6ae
callq 0x4190
testl %eax, %eax
jne 0xd12e3
movq 0x8(%rsp), %rbx
movq 0x8(%rbx), %rax
movq (%rax,%r15), %rax
movq 0x20(%rax), %rdi
xorl %esi, %esi
callq 0x4370
movsd %xmm0, 0x230(%rbx)
movb $0x1, 0x238(%rbx)
cvtdq2pd 0x23c(%rbx), %xmm1
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
mulpd %xmm1, %xmm0
cvttpd2dq %xmm0, %xmm0
movlpd %xmm0, 0x23c(%rbx)
pshufd $0x50, %xmm0, %xmm0     # xmm0 = xmm0[0,0,1,1]
pcmpgtd 0x2aef6(%rip), %xmm0    # 0xfc0b0
movmskpd %xmm0, %eax
xorl $0x3, %eax
je 0xd12e3
movq 0x7ee22(%rip), %rdi     # 0x14fff0
leaq 0x3d4de(%rip), %rsi     # 0x10e6b3
callq 0x4480
movq 0x8(%rsp), %rcx
movl 0x23c(%rcx), %esi
movq %rax, %rdi
callq 0x4760
movq %rax, %rdi
leaq 0x3d521(%rip), %rsi     # 0x10e718
callq 0x4480
movq 0x8(%rsp), %rcx
movl 0x240(%rcx), %esi
movq %rax, %rdi
callq 0x4760
movb $0x1, %cl
movq %rcx, 0x20(%rsp)
movq %rax, %rdi
leaq 0x3d5e2(%rip), %rsi     # 0x10e802
callq 0x4480
jmp 0xd12e3
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x2454a
movq %rbp, %rbx
movq %rbp, %rdi
callq 0xc2635
movq %rbx, %rdi
callq 0x244fc
movq 0x8(%rsp), %rax
movb $0x1, 0xbb0(%rax)
jmp 0xd12e3
movq 0x7ed90(%rip), %rdi     # 0x14fff0
leaq 0x3d3df(%rip), %rsi     # 0x10e646
callq 0x4480
jmp 0xd12e3
movq %r13, %rdi
leaq 0x28(%rsp), %rsi
callq 0x2454a
movq %r13, %rbx
movq %r13, %rdi
callq 0xc2718
movq %rbx, %rdi
callq 0x244fc
movq 0x8(%rsp), %rax
movb $0x1, 0xbb3(%rax)
jmp 0xd12e3
movq 0x8(%rsp), %rax
movb $0x0, 0xbb3(%rax)
jmp 0xd12e3
movq 0x8(%rsp), %rbx
movb $0x1, 0xbb2(%rbx)
movq 0x8(%rbx), %rax
movq (%rax,%r15), %rdi
leaq 0x3c74a(%rip), %rsi     # 0x10da0f
callq 0x4190
testl %eax, %eax
jne 0xd12e3
movb $0x1, 0x229(%rbx)
jmp 0xd12e3
movq 0x8(%rsp), %rax
movb $0x1, 0xbb1(%rax)
leaq 0x28(%rsp), %rdi
callq 0x244fc
addq $0x18, %r15
jmp 0xd0f27
movq 0x8(%rsp), %rax
movb $0x0, 0xbb5(%rax)
jmp 0xd12e3
movq 0x8(%rsp), %rax
movb $0x1, 0x244(%rax)
jmp 0xd12e3
movq %r14, %rbx
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
callq 0x2454a
leaq 0x80(%rsp), %rdi
movq %rbx, %rsi
callq 0xc27d9
movq 0x40(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x4560
leaq 0x80(%rsp), %rdi
callq 0x4210
movq %rbx, %rdi
callq 0x244fc
movq 0x8(%rsp), %rax
movb $0x1, 0xbb5(%rax)
jmp 0xd12e3
leaq 0x68(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x2454a
leaq 0x80(%rsp), %rbx
movq %rbx, %rdi
leaq 0x68(%rsp), %rsi
callq 0xc2bc3
movq 0x50(%rsp), %rdi
movq %rbx, %rsi
callq 0x4560
movq %rbx, %rdi
callq 0x4210
leaq 0x68(%rsp), %rdi
callq 0x244fc
movq 0x8(%rsp), %rax
movb $0x1, 0xe30(%rax)
jmp 0xd12e3
movq 0x8(%rsp), %rax
movb $0x1, 0xf80(%rax)
jmp 0xd12e3
movq 0x8(%rsp), %rax
movb $0x1, 0xf81(%rax)
jmp 0xd12e3
movq 0x8(%rsp), %rax
movb $0x1, %cl
movb %cl, 0xbb4(%rax)
movb %cl, 0x248(%rax)
movb %cl, 0x6a8(%rax)
jmp 0xd12e3
movq 0x20(%rdi), %rdi
xorl %esi, %esi
callq 0x4370
movq 0x8(%rsp), %rax
movsd %xmm0, 0x220(%rax)
movb $0x1, 0x228(%rax)
jmp 0xd12e3
movq 0x8(%rsp), %rax
cmpb $0x0, 0x228(%rax)
je 0xd143a
movq 0x20(%rsp), %rbp
jmp 0xd15fa
xorl %r15d, %r15d
leaq 0x80(%rsp), %r14
leaq 0x3c77c(%rip), %rbx     # 0x10dbc8
movq 0x7eb9d(%rip), %r13     # 0x14fff0
movq 0x20(%rsp), %rbp
cmpq %r15, 0x18(%rsp)
je 0xd15f5
movq (%r12), %rsi
addq %r15, %rsi
movq %r14, %rdi
callq 0x2454a
movq 0x80(%rsp), %rdi
movq %rbx, %rsi
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3c73b(%rip), %rsi     # 0x10dbd4
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3c72f(%rip), %rsi     # 0x10dbe4
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3c79c(%rip), %rsi     # 0x10dc6d
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3c7fd(%rip), %rsi     # 0x10dcea
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3c7ef(%rip), %rsi     # 0x10dcf8
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3d1ff(%rip), %rsi     # 0x10e724
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3c4ce(%rip), %rsi     # 0x10da0f
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3c4b2(%rip), %rsi     # 0x10da0b
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3cd20(%rip), %rsi     # 0x10e291
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3d1a1(%rip), %rsi     # 0x10e72a
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3d18e(%rip), %rsi     # 0x10e72f
callq 0x4190
testl %eax, %eax
je 0xd15c2
movq 0x80(%rsp), %rdi
leaq 0x3d17c(%rip), %rsi     # 0x10e735
callq 0x4190
testl %eax, %eax
jne 0xd15e4
movq 0x80(%rsp), %rsi
movq %r13, %rdi
callq 0x43f0
movb $0x1, %bpl
movq %rax, %rdi
leaq 0x3d15e(%rip), %rsi     # 0x10e73d
callq 0x4480
movq %r14, %rdi
callq 0x244fc
addq $0x18, %r15
jmp 0xd1458
movq 0x8(%rsp), %rax
cmpb $0x0, 0x229(%rax)
je 0xd169f
testb $0x1, %bpl
movq 0x60(%rsp), %r15
jne 0xd18b6
leaq 0x80(%rsp), %r14
movq %r14, %rdi
movq 0x48(%rsp), %rsi
callq 0x4430
movq %r14, %rdi
callq 0x41f0
movw $0x2e, 0x80(%rsp,%rax)
movq %r14, %rdi
movq 0x10(%rsp), %rbx
movq %rbx, %rsi
callq 0x4790
movq 0x7e96c(%rip), %rdi     # 0x14ffc0
movq %r14, %rsi
callq 0x4480
movq %rax, %rdi
callq 0x4230
movl (%rbx), %ebx
cmpl $0x637261, %ebx         # imm = 0x637261
je 0xd172d
cmpl $0x637563, %ebx         # imm = 0x637563
jne 0xd174e
movq 0x8(%rsp), %rbx
movzbl 0xbb0(%rbx), %edx
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x1eaa3
jmp 0xd1859
xorl %ebx, %ebx
leaq 0x80(%rsp), %r14
leaq 0x3c840(%rip), %r15     # 0x10def0
movq 0x7e939(%rip), %r13     # 0x14fff0
cmpq %rbx, 0x18(%rsp)
je 0xd1607
movq (%r12), %rsi
addq %rbx, %rsi
movq %r14, %rdi
callq 0x2454a
movq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x4190
testl %eax, %eax
je 0xd16fd
movq 0x80(%rsp), %rdi
leaq 0x3c918(%rip), %rsi     # 0x10e00c
callq 0x4190
testl %eax, %eax
jne 0xd171f
movq 0x80(%rsp), %rsi
movq %r13, %rdi
callq 0x43f0
movb $0x1, %bpl
movq %rax, %rdi
leaq 0x3d06d(%rip), %rsi     # 0x10e787
callq 0x4480
movq %r14, %rdi
callq 0x244fc
addq $0x18, %rbx
jmp 0xd16b7
movq 0x8(%rsp), %rbx
movzbl 0xbb0(%rbx), %edx
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x1e1aa
jmp 0xd1859
leaq 0x3c362(%rip), %rsi     # 0x10dab7
pushq $0x5
popq %rdx
movq 0x10(%rsp), %rdi
callq 0x44c0
testl %eax, %eax
je 0xd1797
cmpl $0x726163, %ebx         # imm = 0x726163
je 0xd17b8
cmpl $0x666963, %ebx         # imm = 0x666963
jne 0xd17d9
movq 0x8(%rsp), %rbx
movzbl 0xbb0(%rbx), %edx
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x1c75a
jmp 0xd1859
movq 0x8(%rsp), %rbx
movzbl 0xbb0(%rbx), %edx
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x1eefc
jmp 0xd1859
movq 0x8(%rsp), %rbx
movzbl 0xbb0(%rbx), %edx
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x20165
jmp 0xd1859
leaq 0x3c364(%rip), %rsi     # 0x10db44
pushq $0x3
popq %rdx
movq 0x10(%rsp), %rdi
callq 0x44c0
testl %eax, %eax
je 0xd181f
cmpl $0x706c64, %ebx         # imm = 0x706C64
je 0xd183d
cmpl $0x626470, %ebx         # imm = 0x626470
jne 0xd1867
movq 0x8(%rsp), %rbx
movzbl 0xbb0(%rbx), %edx
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x20747
jmp 0xd1859
movq 0x8(%rsp), %rbx
movzbl 0xbb0(%rbx), %edx
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x20c61
jmp 0xd1859
movq 0x8(%rsp), %rbx
movzbl 0xbb0(%rbx), %edx
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x210eb
movzbl %bpl, %ecx
testb %al, %al
pushq $0x1
popq %rbp
cmovnel %ecx, %ebp
jmp 0xd18bb
movq 0x7e782(%rip), %rdi     # 0x14fff0
leaq 0x3c205(%rip), %rsi     # 0x10da7a
callq 0x4480
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x4480
leaq 0x30cf0(%rip), %r14     # 0x10257e
movq %rax, %rdi
movq %r14, %rsi
callq 0x4480
leaq 0x2b313(%rip), %rsi     # 0xfcbb3
movq %rax, %rdi
callq 0x4480
movq %rax, %rdi
movq %r14, %rsi
callq 0x4480
movb $0x1, %bpl
movq 0x8(%rsp), %rbx
testb $0x1, %bpl
jne 0xd192d
cmpb $0x1, 0xbb0(%rbx)
jne 0xd18d2
movq %r15, %rdi
callq 0x6f6a
movzbl 0xbb3(%rbx), %edi
movq %r15, %rsi
callq 0x6fdc
movq %r15, %rdi
movq 0x58(%rsp), %rsi
callq 0x3eada
cmpb $0x1, 0xbb0(%rbx)
jne 0xd192d
cmpb $0x1, 0xbb5(%rbx)
jne 0xd192d
leaq 0x180(%rsp), %r14
movq %r14, %rdi
movq 0x40(%rsp), %rsi
callq 0x45d0
movq %r15, %rdi
movq %r14, %rsi
callq 0x6da20
leaq 0x180(%rsp), %rdi
callq 0x4210
andb $0x1, %bpl
movb %bpl, (%rbx)
movl %ebp, %eax
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
jmp 0xd198d
jmp 0xd19a3
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x4210
jmp 0xd19b0
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
jmp 0xd198d
jmp 0xd19a3
movq %rax, %rbx
leaq 0x1b8(%rsp), %rdi
jmp 0xd198d
movq %rax, %rbx
leaq 0x1d0(%rsp), %rdi
callq 0x244fc
jmp 0xd19a6
jmp 0xd1996
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
jmp 0xd19ab
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x244fc
movq %rbx, %rdi
callq 0x4780