// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/amrfinder_update.cpp
// Function: (anonymous namespace)::ThisApplication::shellBody() const
void shellBody () const final
  {
    const string mainDirOrig  = getArg ("database");
          string blast_bin    = getArg ("blast_bin");
          string hmmer_bin    = getArg ("hmmer_bin");
    const bool   force_update = getFlag ("force_update");
        
    addDirSlash (blast_bin);
    addDirSlash (hmmer_bin);
    
        
    const Verbose vrb (qc_on);
    

    Curl curl;
        
    
    const bool screen = ! isRedirected (cerr);
    
    // FTP site files
    stderr << "Looking up the published databases at " << colorizeUrl (URL, screen) << '\n';    
    string load_minor = curMinor;
    string load_data_version;    
    {
      const string published_minor (getLatestMinor (curl));
      if (published_minor. empty ())
        throw runtime_error ("Cannot get the software minor version of the latest published database version");
    //if (qc_on)
      //stderr << "Latest published software minor version: " << published_minor << "\n";
      // ASSERT: published_minor >= curMinor

      const string published_data_version (getLatestDataVersion (curl, published_minor));
      if (published_data_version. empty ())
        throw runtime_error ("Cannot get the latest published database version for the software minor version " + published_minor);

      const string cur_data_version (getLatestDataVersion (curl, curMinor));
      load_data_version = cur_data_version;    
      if (cur_data_version. empty ())  // Contents of (URL + curMinor) are empty ??
      {
        stderr << "\n";
        const Warning w (stderr);
        stderr << "Cannot get the latest published database version for the current software minor version " + curMinor + ".\n"
               << "The latest published database version " + published_data_version + " for the latest published software minor version " + published_minor + " will be used instead";
        load_minor        = published_minor;
        load_data_version = published_data_version;
      }
      else if (cur_data_version != published_data_version)  
      {   
        ASSERT (cur_data_version < published_data_version);
        stderr << "\n";
        const Warning w (stderr);
        stderr << "A newer version of the database exists (" << published_data_version << "), but it requires "
                  "a newer version of the software (" << published_minor << ") to install.\n"
                  "See " + colorizeUrl ("https://github.com/ncbi/amr/wiki/Upgrading", screen) + " for more information.\n";
      }
    }
    ASSERT (! load_data_version. empty ());
   

    // Users's files  
    string mainDirS;
    {
      const Dir mainDir (mainDirOrig);
      mainDirS = mainDir. get ();
    }
    addDirSlash (mainDirS);
    
    const string versionFName ("version.txt");
    const string urlDir (URL + load_minor + "/" + load_data_version + "/");    
    const string latestDir (mainDirS + load_data_version + "/");
    
    stderr << "Looking for the target directory: " << colorizeDir (latestDir, screen) << "\n";
    if (directoryExists (latestDir))
    {
      if (force_update)
        stderr << colorizeDir (latestDir, screen) << ": already exists, overwriting what was there\n";
      else
      {
        curl. download (urlDir + versionFName, tmp + "/curl");
        const StringVector version_old (latestDir + versionFName, (size_t) 100, true);
        const StringVector version_new (tmp + "/curl", (size_t) 100, true);
        if (   ! version_old. empty () 
            && ! version_new. empty ()
            && version_old. front () == version_new. front ()
           )
        {
          const Warning w (stderr);
          stderr << colorizeDir (latestDir, screen) << ": contains the latest version " << version_old. front () << '\n';
          stderr << "Skipping update\nUse amrfinder --force_update to overwrite the existing database";
          createLatestLink (mainDirS, /*latestDir*/ load_data_version);
          return;
        }
      }
    }
    else
      Dir (latestDir). create ();
    
    stderr << "Downloading AMRFinder database version " << load_data_version << " into: " << colorizeDir (latestDir, screen) << "\n";
    // Requires: Software version >= 3.13.1
    fetchAMRFile (curl, urlDir, latestDir, "AMR.LIB");
    fetchAMRFile (curl, urlDir, latestDir, "AMRProt.fa");
    fetchAMRFile (curl, urlDir, latestDir, "AMRProt-mutation.tsv");
    fetchAMRFile (curl, urlDir, latestDir, "AMRProt-suppress.tsv");
    fetchAMRFile (curl, urlDir, latestDir, "AMRProt-susceptible.tsv");
    fetchAMRFile (curl, urlDir, latestDir, "AMR_CDS.fa");
    fetchAMRFile (curl, urlDir, latestDir, "database_format_version.txt");  // PD-3051 
    fetchAMRFile (curl, urlDir, latestDir, "fam.tsv");
    fetchAMRFile (curl, urlDir, latestDir, "taxgroup.tsv");
    fetchAMRFile (curl, urlDir, latestDir, versionFName);
    
    StringVector dnaPointMuts;
    {
      LineInput f (latestDir + "taxgroup.tsv");
      while (f. nextLine ())
      {
   	    if (isLeft (f. line, "#"))
	 	      continue;
        string taxgroup, gpipe;
        int n = -1;
        istringstream iss (f. line);
        iss >> taxgroup >> gpipe >> n;
        QC_ASSERT (n >= 0);
        if (n)
          dnaPointMuts << taxgroup;
      }
    }
    
    for (const string& dnaPointMut : dnaPointMuts)
    {
      fetchAMRFile (curl, urlDir, latestDir, "AMR_DNA-" + dnaPointMut + ".fa");
      fetchAMRFile (curl, urlDir, latestDir, "AMR_DNA-" + dnaPointMut + ".tsv");
    }

    fetchAMRFile (curl, urlDir, latestDir, "changes.txt");

    createLatestLink (mainDirS, load_data_version);
  

    prog2dir ["amrfinder_index"] = execDir;
	  exec (fullProg ("amrfinder_index") + shellQuote (latestDir) 
	          + makeKey ("blast_bin", blast_bin)   
	          + makeKey ("hmmer_bin", hmmer_bin)  
	          + ifS (getQuiet (), " -q") + ifS (qc_on, " --debug") + " > " + tmp + "/amrfinder_index.err", tmp + "/amrfinder_index.err"); 
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x808, %rsp            # imm = 0x808
movq %rdi, %rbx
leaq 0x344c6(%rip), %rsi     # 0x3f6bd
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
leaq 0x7a8(%rsp), %rdi
leaq 0x260(%rsp), %rdx
movq %rbx, 0x10(%rsp)
movq %rbx, %rsi
callq 0x2644c
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x33ee7(%rip), %rsi     # 0x3f124
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
leaq 0x708(%rsp), %rdi
leaq 0x260(%rsp), %rdx
movq 0x10(%rsp), %rsi
callq 0x2644c
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x33ecc(%rip), %rsi     # 0x3f14c
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
leaq 0x6e8(%rsp), %rdi
leaq 0x260(%rsp), %rdx
movq 0x10(%rsp), %rsi
callq 0x2644c
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x33eb1(%rip), %rsi     # 0x3f174
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
leaq 0x260(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0x26558
movb %al, 0xf(%rsp)
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x708(%rsp), %rdi
callq 0xebf3
leaq 0x6e8(%rsp), %rdi
callq 0xebf3
leaq 0x53724(%rip), %rax     # 0x5ea40
movzbl (%rax), %esi
leaq 0xec(%rsp), %rdi
callq 0x17f1a
movq %rsp, %rdi
callq 0xec1a
movq 0x52c85(%rip), %rdi     # 0x5dfc0
callq 0x1257e
movl %eax, %ebp
movq 0x10(%rsp), %rax
leaq 0x1b8(%rax), %r13
leaq 0x33f5e(%rip), %rsi     # 0x3f2b3
movq %r13, %rdi
callq 0xec7a
movq %rax, %rbx
leaq 0x33f73(%rip), %rsi     # 0x3f2da
leaq 0x508(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xe1e4
xorb $0x1, %bpl
movzbl %bpl, %edx
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rsi
movl %edx, 0x3c(%rsp)
callq 0xecae
leaq 0x260(%rsp), %rsi
movq %rbx, %rdi
callq 0xec94
leaq 0xf0(%rsp), %rsi
movb $0xa, (%rsi)
movq %rax, %rdi
callq 0xecc6
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x508(%rsp), %rdi
callq 0xab20
movq 0x10(%rsp), %rax
leaq 0x1c8(%rax), %rsi
leaq 0x6c8(%rsp), %rdi
movq %rsi, 0x158(%rsp)
callq 0xa4d0
leaq 0x170(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x33ec4(%rip), %rsi     # 0x3f2da
leaq 0x80(%rsp), %rdi
leaq 0xf0(%rsp), %rdx
callq 0xe1e4
leaq 0x260(%rsp), %rdi
movq %rsp, %rsi
leaq 0x80(%rsp), %rdx
callq 0x3deac
leaq 0x508(%rsp), %rdi
leaq 0x260(%rsp), %rsi
pushq $0xa
popq %rdx
pushq $0x1
popq %rcx
callq 0x19b1a
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x80(%rsp), %rdi
callq 0xab20
xorl %edi, %edi
callq 0x17f03
testb %al, %al
je 0xb4a6
movq 0x52ace(%rip), %rdi     # 0x5df58
leaq 0x508(%rsp), %rsi
pushq $0xa
popq %rdx
callq 0xf75f
movq 0x52ab7(%rip), %rdi     # 0x5df58
callq 0xa950
xorps %xmm0, %xmm0
leaq 0x80(%rsp), %rax
movups %xmm0, 0x9(%rax)
movaps %xmm0, (%rax)
movq 0x508(%rsp), %r15
movq 0x510(%rsp), %rax
movq %rax, 0x150(%rsp)
leaq 0x260(%rsp), %r14
leaq 0xf0(%rsp), %rbp
cmpq 0x150(%rsp), %r15
je 0xb81e
movq %r14, %rdi
leaq 0x342f8(%rip), %rsi     # 0x3f7f0
movq %rbp, %rdx
callq 0xe1e4
movq %r15, %rdi
movq %r14, %rsi
callq 0xf1a8
movl %eax, %ebx
movq %r14, %rdi
callq 0xab20
testb %bl, %bl
je 0xb5bb
movq %r13, %r12
movq %r15, %rdi
pushq $0x3e
popq %rsi
xorl %edx, %edx
callq 0xa9f0
movq %rax, %r13
callq 0xa970
andl $0x0, (%rax)
cmpq $-0x1, %r13
je 0xb5c4
movq %rax, %rbx
incq %r13
movq %r15, %rdi
xorl %esi, %esi
movq %r13, %rdx
callq 0xa680
movq %r15, %rdi
leaq 0x342e4(%rip), %rsi     # 0x3f843
xorl %edx, %edx
callq 0xa030
andl $0x0, (%rbx)
cmpq $-0x1, %rax
je 0xb693
movq %r12, %r13
movq %r15, %rdi
movq %rax, %rsi
pushq $-0x1
popq %rdx
callq 0xa680
movq %r14, %rdi
movq %r15, %rsi
pushq $0x8
popq %rdx
callq 0xa3e0
movq %rbp, %rbx
movq %rbp, %rdi
movq %r14, %rsi
pushq $0x1
popq %rdx
callq 0x226bc
leaq 0x80(%rsp), %rdi
movq %rbx, %rsi
callq 0xf7a6
movq %r14, %rdi
callq 0xa4e0
addq $0x20, %r15
jmp 0xb4e0
callq 0xa770
testl %eax, %eax
jne 0xcd34
leaq 0x60(%rsp), %rdi
leaq 0x33ebc(%rip), %rsi     # 0x3f499
leaq 0x1a0(%rsp), %rdx
callq 0xe1e4
leaq 0xa8(%rsp), %rdi
pushq $0x5a
popq %rsi
callq 0xee49
leaq 0x18(%rsp), %rdi
leaq 0x60(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xea95
leaq 0x40(%rsp), %rdi
leaq 0x18(%rsp), %rsi
leaq 0x33e95(%rip), %rdx     # 0x3f4b7
callq 0xeafc
leaq 0x130(%rsp), %rdi
leaq 0x341c3(%rip), %rsi     # 0x3f7f9
leaq 0x180(%rsp), %rdx
callq 0xe1e4
leaq 0xc8(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0x34912(%rip), %rdx     # 0x3ff6c
callq 0xeafc
movq %rbp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xea95
movq %r14, %rdi
movq %rbp, %rsi
leaq 0x341ad(%rip), %rdx     # 0x3f82e
callq 0xeafc
movq %r14, %rdi
callq 0x1235c
jmp 0xcd3c
callq 0xa770
testl %eax, %eax
jne 0xcd34
leaq 0x60(%rsp), %rdi
leaq 0x33ded(%rip), %rsi     # 0x3f499
leaq 0x1a0(%rsp), %rdx
callq 0xe1e4
leaq 0xa8(%rsp), %rdi
pushq $0x5e
popq %rsi
callq 0xee49
leaq 0x18(%rsp), %rdi
leaq 0x60(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xea95
leaq 0x40(%rsp), %rdi
leaq 0x18(%rsp), %rsi
leaq 0x33dc6(%rip), %rdx     # 0x3f4b7
callq 0xeafc
leaq 0x130(%rsp), %rdi
leaq 0x340f4(%rip), %rsi     # 0x3f7f9
leaq 0x180(%rsp), %rdx
callq 0xe1e4
leaq 0xc8(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0x34843(%rip), %rdx     # 0x3ff6c
callq 0xeafc
movq %rbp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xea95
movq %r14, %rdi
movq %rbp, %rsi
leaq 0x340f6(%rip), %rdx     # 0x3f846
callq 0xeafc
movq %r14, %rdi
callq 0x1235c
jmp 0xcd3c
jmp 0xb766
jmp 0xb773
movq %rax, %rbx
movq %r14, %rdi
callq 0xab20
jmp 0xb776
movq %rax, %rbx
movq %rbp, %rdi
callq 0xab20
jmp 0xb785
jmp 0xb782
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0xab20
jmp 0xb799
jmp 0xb796
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
callq 0xab20
jmp 0xb7ad
jmp 0xb7aa
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0xab20
jmp 0xb7be
jmp 0xb7bb
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0xab20
jmp 0xb7cf
jmp 0xb7cc
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xab20
jmp 0xb7e3
jmp 0xb7e0
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xab20
jmp 0xb809
jmp 0xb806
jmp 0xb806
jmp 0xb7f5
movq %rax, %rbx
movq %r14, %rdi
callq 0xa4e0
jmp 0xb809
jmp 0xb806
jmp 0xb806
movq %rax, %rbx
movq %rbx, %rdi
callq 0xa070
callq 0xa730
movq %r12, %r13
jmp 0xb5bb
movq 0x80(%rsp), %rax
cmpq 0x88(%rsp), %rax
je 0xb858
leaq 0x80(%rsp), %rdi
callq 0xf7ce
movq 0x88(%rsp), %rsi
addq $-0x18, %rsi
leaq 0x110(%rsp), %rdi
callq 0xe2e6
jmp 0xb86c
leaq 0x531f9(%rip), %rsi     # 0x5ea58
leaq 0x110(%rsp), %rdi
callq 0xa4d0
leaq 0x80(%rsp), %rdi
callq 0xf7e4
leaq 0x508(%rsp), %rdi
callq 0xf0fc
cmpq $0x0, 0x118(%rsp)
je 0xcaf0
leaq 0x260(%rsp), %rdi
movq %rsp, %rsi
leaq 0x110(%rsp), %rdx
callq 0xd5e8
cmpq $0x0, 0x268(%rsp)
je 0xcb22
leaq 0x508(%rsp), %rdi
movq %rsp, %rsi
movq 0x158(%rsp), %rdx
callq 0xd5e8
leaq 0x160(%rsp), %rdi
leaq 0x508(%rsp), %rsi
callq 0xaa50
cmpq $0x0, 0x510(%rsp)
je 0xba40
leaq 0x508(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0xee2c
testb %al, %al
je 0xbb95
callq 0xa970
andl $0x0, (%rax)
leaq 0x508(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0xee36
testb %al, %al
je 0xcc54
leaq 0x365f9(%rip), %rsi     # 0x41f3a
movq %r13, %rdi
callq 0xed5a
leaq 0x60(%rsp), %rdi
movq %r13, %rsi
callq 0xed74
leaq 0x33bd1(%rip), %rsi     # 0x3f52e
movq %r13, %rdi
callq 0xeea2
leaq 0x260(%rsp), %rsi
movq %rax, %rdi
callq 0xec94
leaq 0x33bdb(%rip), %rsi     # 0x3f557
movq %rax, %rdi
callq 0xeebc
leaq 0x110(%rsp), %rsi
movq %rax, %rdi
callq 0xec94
movq %rax, %rbx
leaq 0x33c01(%rip), %rsi     # 0x3f59f
leaq 0x18(%rsp), %rdi
leaq 0xa8(%rsp), %rdx
callq 0xe1e4
leaq 0x40(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl 0x3c(%rsp), %edx
callq 0xecae
leaq 0x33bc2(%rip), %rsi     # 0x3f58c
leaq 0xf0(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0xeed6
leaq 0x33be7(%rip), %rdx     # 0x3f5ca
leaq 0x80(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0xeafc
leaq 0x80(%rsp), %rsi
movq %rbx, %rdi
callq 0xec94
leaq 0x80(%rsp), %rdi
callq 0xab20
leaq 0xf0(%rsp), %rdi
callq 0xab20
leaq 0x40(%rsp), %rdi
callq 0xab20
leaq 0x18(%rsp), %rdi
callq 0xab20
leaq 0x60(%rsp), %rdi
jmp 0xbb90
leaq 0x364f3(%rip), %rsi     # 0x41f3a
movq %r13, %rdi
callq 0xed5a
leaq 0xc8(%rsp), %rdi
movq %r13, %rsi
callq 0xed74
leaq 0x3396b(%rip), %rsi     # 0x3f3d1
leaq 0xf0(%rsp), %rdi
movq 0x158(%rsp), %rdx
callq 0xece3
leaq 0x33b5d(%rip), %rdx     # 0x3f5df
leaq 0x80(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0xeafc
leaq 0x80(%rsp), %rsi
movq %r13, %rdi
callq 0xec94
movq %rax, %rbx
leaq 0x33979(%rip), %rsi     # 0x3f42a
leaq 0xa8(%rsp), %rdi
leaq 0x260(%rsp), %rdx
callq 0xece3
leaq 0x33984(%rip), %rdx     # 0x3f451
leaq 0x60(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xeafc
leaq 0x18(%rsp), %rdi
leaq 0x60(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0xeddc
leaq 0x33986(%rip), %rdx     # 0x3f483
leaq 0x40(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0xeafc
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0xec94
leaq 0x40(%rsp), %rdi
callq 0xab20
leaq 0x18(%rsp), %rdi
callq 0xab20
leaq 0x60(%rsp), %rdi
callq 0xab20
leaq 0xa8(%rsp), %rdi
callq 0xab20
leaq 0x80(%rsp), %rdi
callq 0xab20
leaq 0xf0(%rsp), %rdi
callq 0xab20
leaq 0x6c8(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0xaa50
leaq 0x160(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0xaa50
leaq 0xc8(%rsp), %rdi
callq 0xedfc
leaq 0x508(%rsp), %rdi
callq 0xab20
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x110(%rsp), %rdi
callq 0xab20
callq 0xa970
movq %rax, 0x150(%rsp)
andl $0x0, (%rax)
cmpq $0x0, 0x168(%rsp)
je 0xcb74
leaq 0x90(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x508(%rsp), %rdi
leaq 0x7a8(%rsp), %rsi
callq 0x1618c
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rsi
callq 0xeefa
leaq 0x80(%rsp), %rbx
leaq 0x260(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa490
movq %r14, %rdi
callq 0xab20
leaq 0x508(%rsp), %rdi
callq 0x10da0
movq %rbx, %rdi
callq 0xebf3
leaq 0x33b0e(%rip), %rsi     # 0x3f766
leaq 0xf0(%rsp), %rdi
leaq 0x260(%rsp), %rdx
callq 0xe1e4
leaq 0x33666(%rip), %rsi     # 0x3f2da
leaq 0x18(%rsp), %rdi
leaq 0x6c8(%rsp), %rdx
callq 0xece3
leaq 0x37af0(%rip), %rdx     # 0x4377d
leaq 0x508(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0xeafc
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rsi
leaq 0x160(%rsp), %rdx
callq 0xeddc
leaq 0x37aba(%rip), %rdx     # 0x4377d
leaq 0x40(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0xeafc
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x508(%rsp), %rdi
callq 0xab20
leaq 0x18(%rsp), %rdi
callq 0xab20
leaq 0x260(%rsp), %rdi
leaq 0x80(%rsp), %rsi
leaq 0x160(%rsp), %rdx
callq 0xefd2
leaq 0x37a60(%rip), %rdx     # 0x4377d
leaq 0x18(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0xeafc
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x338bd(%rip), %rsi     # 0x3f600
movq %r13, %rdi
callq 0xf00a
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl 0x3c(%rsp), %edx
callq 0xf024
leaq 0x260(%rsp), %rsi
movq %rbx, %rdi
callq 0xec94
leaq 0x361bf(%rip), %rsi     # 0x41f3a
movq %rax, %rdi
callq 0xed5a
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x18(%rsp), %rdi
callq 0xf03a
testb %al, %al
je 0xbdec
cmpb $0x0, 0xf(%rsp)
je 0xbe1d
leaq 0x260(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl 0x3c(%rsp), %edx
callq 0xf024
leaq 0x260(%rsp), %rsi
movq %r13, %rdi
callq 0xec94
leaq 0x33851(%rip), %rsi     # 0x3f623
movq %rax, %rdi
callq 0xf04c
leaq 0x260(%rsp), %rdi
callq 0xab20
jmp 0xc00e
leaq 0x260(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x1618c
leaq 0x260(%rsp), %rdi
callq 0x1651c
leaq 0x260(%rsp), %rdi
callq 0x10da0
jmp 0xc00e
leaq 0x260(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0xf0(%rsp), %rdx
callq 0xefd2
movq 0x10(%rsp), %rax
leaq 0x168(%rax), %rbx
leaq 0x33807(%rip), %rdx     # 0x3f651
leaq 0x508(%rsp), %rdi
movq %rbx, %rsi
callq 0xf066
movq %rsp, %rdi
leaq 0x260(%rsp), %rsi
leaq 0x508(%rsp), %rdx
callq 0x3d356
leaq 0x508(%rsp), %rdi
callq 0xab20
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x508(%rsp), %rdi
leaq 0x18(%rsp), %rsi
leaq 0xf0(%rsp), %rdx
callq 0xefd2
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rsi
pushq $0x64
popq %rdx
pushq $0x1
popq %rcx
callq 0x198ec
leaq 0x508(%rsp), %rdi
callq 0xab20
leaq 0x3377c(%rip), %rdx     # 0x3f651
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0xf066
leaq 0x508(%rsp), %rdi
leaq 0x60(%rsp), %rsi
pushq $0x64
popq %rdx
pushq $0x1
popq %rcx
callq 0x198ec
leaq 0x60(%rsp), %rdi
callq 0xab20
movq 0x260(%rsp), %rdi
cmpq 0x268(%rsp), %rdi
je 0xbff4
movq 0x508(%rsp), %rsi
cmpq 0x510(%rsp), %rsi
je 0xbff4
callq 0xf09e
testb %al, %al
je 0xbff4
leaq 0xa8(%rsp), %rdi
movq %r13, %rsi
callq 0xed74
leaq 0x60(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl 0x3c(%rsp), %edx
callq 0xf024
leaq 0x60(%rsp), %rsi
movq %r13, %rdi
callq 0xec94
leaq 0x336e3(%rip), %rsi     # 0x3f657
movq %rax, %rdi
callq 0xf0c8
movq 0x260(%rsp), %rsi
movq %rax, %rdi
callq 0xec94
leaq 0xc8(%rsp), %rsi
movb $0xa, (%rsi)
movq %rax, %rdi
callq 0xecc6
leaq 0x60(%rsp), %rdi
callq 0xab20
leaq 0x336c6(%rip), %rsi     # 0x3f676
movq %r13, %rdi
callq 0xf0e2
leaq 0x80(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0xdae4
leaq 0xa8(%rsp), %rdi
callq 0xedfc
leaq 0x508(%rsp), %rdi
callq 0xf0fc
leaq 0x260(%rsp), %rdi
jmp 0xc963
leaq 0x508(%rsp), %rdi
callq 0xf0fc
leaq 0x260(%rsp), %rdi
callq 0xf0fc
leaq 0x336b1(%rip), %rsi     # 0x3f6c6
movq %r13, %rdi
callq 0xf11e
leaq 0x160(%rsp), %rsi
movq %rax, %rdi
callq 0xec94
leaq 0x336ba(%rip), %rsi     # 0x3f6ee
movq %rax, %rdi
callq 0xf138
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl 0x3c(%rsp), %edx
callq 0xf024
leaq 0x260(%rsp), %rsi
movq %rbx, %rdi
callq 0xec94
leaq 0x35ece(%rip), %rsi     # 0x41f3a
movq %rax, %rdi
callq 0xed5a
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x3366e(%rip), %rsi     # 0x3f6f6
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x260(%rsp), %rcx
callq 0xdde4
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x33633(%rip), %rsi     # 0x3f6fe
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x260(%rsp), %rcx
callq 0xdde4
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x335fb(%rip), %rsi     # 0x3f709
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x260(%rsp), %rcx
callq 0xdde4
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x335cd(%rip), %rsi     # 0x3f71e
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x260(%rsp), %rcx
callq 0xdde4
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x3359f(%rip), %rsi     # 0x3f733
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x260(%rsp), %rcx
callq 0xdde4
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x33574(%rip), %rsi     # 0x3f74b
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x260(%rsp), %rcx
callq 0xdde4
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x3353c(%rip), %rsi     # 0x3f756
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x260(%rsp), %rcx
callq 0xdde4
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x33515(%rip), %rsi     # 0x3f772
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x260(%rsp), %rcx
callq 0xdde4
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x334da(%rip), %rsi     # 0x3f77a
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x260(%rsp), %rcx
callq 0xdde4
leaq 0x260(%rsp), %rdi
callq 0xab20
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0xf0(%rsp), %rcx
callq 0xdde4
xorps %xmm0, %xmm0
movups %xmm0, 0x69(%rsp)
movaps %xmm0, 0x60(%rsp)
leaq 0x33470(%rip), %rdx     # 0x3f77a
leaq 0x508(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0xf066
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rsi
xorl %edx, %edx
callq 0xf152
leaq 0x508(%rsp), %rbx
movq %rbx, %rdi
callq 0xab20
leaq 0x4c8(%rsp), %r14
leaq 0x260(%rsp), %r15
leaq 0xa8(%rsp), %rbp
leaq 0xc8(%rsp), %r12
movq %r15, %rdi
callq 0x11834
testb %al, %al
je 0xc463
movq %rbx, %rdi
leaq 0x34c0c(%rip), %rsi     # 0x40f89
movq %rbp, %rdx
callq 0xe1e4
movq %r14, %rdi
movq %rbx, %rsi
callq 0xf1a8
movl %eax, %r13d
movq %rbx, %rdi
callq 0xab20
testb %r13b, %r13b
jne 0xc363
leaq 0xb8(%rsp), %rax
movq %rax, 0xa8(%rsp)
andq $0x0, 0xb0(%rsp)
xorl %ecx, %ecx
movb %cl, 0xb8(%rsp)
leaq 0xd8(%rsp), %rax
movq %rax, 0xc8(%rsp)
andq $0x0, 0xd0(%rsp)
movb %cl, 0xd8(%rsp)
orl $-0x1, 0x1c0(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
pushq $0x8
popq %rdx
callq 0xa3e0
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xa3b0
movq %rax, %rdi
movq %r12, %rsi
callq 0xa3b0
movq %rax, %rdi
leaq 0x1c0(%rsp), %rsi
callq 0xaad0
movq 0x150(%rsp), %rax
andl $0x0, (%rax)
cmpl $0x0, 0x1c0(%rsp)
js 0xc9fe
je 0xc446
leaq 0x60(%rsp), %rdi
movq %rbp, %rsi
callq 0xf1e8
movq %rbx, %rdi
callq 0xa4e0
movq %r12, %rdi
callq 0xab20
movq %rbp, %rdi
callq 0xab20
jmp 0xc363
leaq 0x260(%rsp), %rbx
movq %rbx, %rdi
callq 0xf208
movq 0x60(%rsp), %r14
movq 0x68(%rsp), %rbp
leaq 0x508(%rsp), %r12
leaq 0x40(%rsp), %r13
leaq 0x18(%rsp), %r15
cmpq %rbp, %r14
je 0xc52b
movq %r12, %rdi
leaq 0x332e5(%rip), %rsi     # 0x3f787
movq %r14, %rdx
callq 0xece3
movq %rbx, %rdi
movq %r12, %rsi
leaq 0x3329b(%rip), %rdx     # 0x3f752
callq 0xeafc
movq %rsp, %rdi
movq %r13, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0xdde4
movq %rbx, %rdi
callq 0xab20
movq %r12, %rdi
callq 0xab20
movq %r12, %rdi
leaq 0x332a0(%rip), %rsi     # 0x3f787
movq %r14, %rdx
callq 0xece3
movq %rbx, %rdi
movq %r12, %rsi
leaq 0x3324a(%rip), %rdx     # 0x3f746
callq 0xeafc
movq %rsp, %rdi
movq %r13, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0xdde4
movq %rbx, %rdi
callq 0xab20
movq %r12, %rdi
callq 0xab20
addq $0x20, %r14
jmp 0xc48f
leaq 0x3325e(%rip), %rsi     # 0x3f790
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x260(%rsp), %rcx
callq 0xdde4
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x80(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0xdae4
leaq 0x33212(%rip), %rsi     # 0x3f79c
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rdx
callq 0xe1e4
movq 0x10(%rsp), %rbx
leaq 0x188(%rbx), %rdi
leaq 0x260(%rsp), %rsi
callq 0xf238
leaq 0xb0(%rbx), %rsi
movq %rax, %rdi
callq 0xaa50
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x331c1(%rip), %rsi     # 0x3f79c
leaq 0x220(%rsp), %rdi
leaq 0xa7(%rsp), %rdx
callq 0xe1e4
leaq 0x240(%rsp), %rdi
leaq 0x220(%rsp), %rdx
movq 0x10(%rsp), %rsi
callq 0x2af72
leaq 0x788(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0xa4d0
leaq 0x200(%rsp), %rdi
leaq 0x788(%rsp), %rsi
callq 0xf29e
leaq 0x180(%rsp), %rdi
leaq 0x240(%rsp), %rsi
leaq 0x200(%rsp), %rdx
callq 0xea95
leaq 0x32acf(%rip), %rsi     # 0x3f124
leaq 0x1c0(%rsp), %rdi
leaq 0xa6(%rsp), %rdx
callq 0xe1e4
leaq 0x1e0(%rsp), %rdi
leaq 0x1c0(%rsp), %rdx
leaq 0x708(%rsp), %rcx
movq 0x10(%rsp), %rsi
callq 0xf36e
leaq 0x1a0(%rsp), %rdi
leaq 0x180(%rsp), %rsi
leaq 0x1e0(%rsp), %rdx
callq 0xea95
leaq 0x32a9c(%rip), %rsi     # 0x3f14c
leaq 0x688(%rsp), %rdi
leaq 0xa5(%rsp), %rdx
callq 0xe1e4
leaq 0x6a8(%rsp), %rdi
leaq 0x688(%rsp), %rdx
leaq 0x6e8(%rsp), %rcx
movq 0x10(%rsp), %rsi
callq 0xf36e
leaq 0x110(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x6a8(%rsp), %rdx
callq 0xea95
callq 0xf52b
movl %eax, %ebp
leaq 0x3309a(%rip), %rsi     # 0x3f7ac
leaq 0x7e8(%rsp), %rbx
leaq 0xa4(%rsp), %rdx
movq %rbx, %rdi
callq 0xe1e4
testb %bpl, %bpl
jne 0xc736
leaq 0x52322(%rip), %rbx     # 0x5ea58
leaq 0x768(%rsp), %rdi
movq %rbx, %rsi
callq 0xa4d0
leaq 0x130(%rsp), %rdi
leaq 0x110(%rsp), %rsi
leaq 0x768(%rsp), %rdx
callq 0xea95
leaq 0x522d6(%rip), %rax     # 0x5ea40
movb (%rax), %bpl
leaq 0x3303c(%rip), %rsi     # 0x3f7b0
leaq 0x7c8(%rsp), %rbx
leaq 0xa3(%rsp), %rdx
movq %rbx, %rdi
callq 0xe1e4
testb %bpl, %bpl
jne 0xc798
leaq 0x522c0(%rip), %rbx     # 0x5ea58
leaq 0x748(%rsp), %rdi
movq %rbx, %rsi
callq 0xa4d0
leaq 0xc8(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0x748(%rsp), %rdx
callq 0xea95
leaq 0x35c8b(%rip), %rdx     # 0x42457
leaq 0xa8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xeafc
movq 0x10(%rsp), %rdx
addq $0x168, %rdx            # imm = 0x168
leaq 0x508(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
movq %rdx, %rbx
callq 0xeddc
leaq 0x32fad(%rip), %rdx     # 0x3f7b9
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rsi
callq 0xeafc
leaq 0x32f91(%rip), %rdx     # 0x3f7b9
leaq 0x728(%rsp), %rdi
movq %rbx, %rsi
callq 0xf066
leaq 0x260(%rsp), %rdi
leaq 0x728(%rsp), %rsi
callq 0x17f8e
leaq 0x728(%rsp), %rdi
callq 0xab20
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x508(%rsp), %rdi
callq 0xab20
leaq 0xa8(%rsp), %rdi
callq 0xab20
leaq 0xc8(%rsp), %rdi
callq 0xab20
leaq 0x748(%rsp), %rdi
callq 0xab20
leaq 0x7c8(%rsp), %rdi
callq 0xab20
leaq 0x130(%rsp), %rdi
callq 0xab20
leaq 0x768(%rsp), %rdi
callq 0xab20
leaq 0x7e8(%rsp), %rdi
callq 0xab20
leaq 0x110(%rsp), %rdi
callq 0xab20
leaq 0x6a8(%rsp), %rdi
callq 0xab20
leaq 0x688(%rsp), %rdi
callq 0xab20
leaq 0x1a0(%rsp), %rdi
callq 0xab20
leaq 0x1e0(%rsp), %rdi
callq 0xab20
leaq 0x1c0(%rsp), %rdi
callq 0xab20
leaq 0x180(%rsp), %rdi
callq 0xab20
leaq 0x200(%rsp), %rdi
callq 0xab20
leaq 0x788(%rsp), %rdi
callq 0xab20
leaq 0x240(%rsp), %rdi
callq 0xab20
leaq 0x220(%rsp), %rdi
callq 0xab20
leaq 0x60(%rsp), %rdi
callq 0xf0fc
leaq 0x18(%rsp), %rdi
callq 0xab20
leaq 0x40(%rsp), %rdi
callq 0xab20
leaq 0xf0(%rsp), %rdi
callq 0xab20
leaq 0x80(%rsp), %rdi
callq 0xab20
leaq 0x160(%rsp), %rdi
callq 0xab20
leaq 0x6c8(%rsp), %rdi
callq 0xab20
movq %rsp, %rdi
callq 0xf538
leaq 0xec(%rsp), %rdi
callq 0x17f52
leaq 0x6e8(%rsp), %rdi
callq 0xab20
leaq 0x708(%rsp), %rdi
callq 0xab20
leaq 0x7a8(%rsp), %rdi
callq 0xab20
addq $0x808, %rsp            # imm = 0x808
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xa770
testl %eax, %eax
jne 0xcd34
leaq 0x32a87(%rip), %rsi     # 0x3f499
leaq 0x240(%rsp), %rdi
leaq 0x6a8(%rsp), %rdx
callq 0xe1e4
leaq 0x220(%rsp), %rdi
movl $0x167, %esi            # imm = 0x167
callq 0xee49
leaq 0x180(%rsp), %rdi
leaq 0x240(%rsp), %rsi
leaq 0x220(%rsp), %rdx
callq 0xea95
leaq 0x32a5a(%rip), %rdx     # 0x3f4b7
leaq 0x1a0(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0xeafc
leaq 0x32a44(%rip), %rsi     # 0x3f4bd
leaq 0x1e0(%rsp), %rdi
leaq 0x688(%rsp), %rdx
callq 0xe1e4
leaq 0x334d7(%rip), %rdx     # 0x3ff6c
leaq 0x200(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0xeafc
leaq 0x110(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x200(%rsp), %rdx
callq 0xea95
leaq 0x3382d(%rip), %rdx     # 0x402fb
leaq 0x130(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0xeafc
leaq 0x130(%rsp), %rdi
callq 0x1235c
pushq $0x10
popq %rdi
callq 0xa320
movq %rax, %r14
leaq 0x3282f(%rip), %rsi     # 0x3f331
movq %rax, %rdi
callq 0xa1f0
movq 0x5149f(%rip), %rsi     # 0x5dfb0
movq 0x51478(%rip), %rdx     # 0x5df90
movq %r14, %rdi
callq 0xa590
jmp 0xcb74
pushq $0x10
popq %rdi
callq 0xa320
movq %rax, %r14
leaq 0x3284c(%rip), %rsi     # 0x3f380
leaq 0x508(%rsp), %rdi
leaq 0x110(%rsp), %rdx
callq 0xece3
movb $0x1, %bpl
leaq 0x508(%rsp), %rsi
movq %r14, %rdi
callq 0xa220
xorl %ebp, %ebp
movq 0x5144b(%rip), %rsi     # 0x5dfb0
movq 0x51424(%rip), %rdx     # 0x5df90
movq %r14, %rdi
callq 0xa590
callq 0xa770
testl %eax, %eax
jne 0xcd34
leaq 0x32911(%rip), %rsi     # 0x3f499
leaq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0xe1e4
leaq 0x18(%rsp), %rdi
movl $0x126, %esi            # imm = 0x126
callq 0xee49
leaq 0xf0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x18(%rsp), %rdx
callq 0xea95
leaq 0x328f0(%rip), %rdx     # 0x3f4b7
leaq 0x80(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0xeafc
leaq 0x328da(%rip), %rsi     # 0x3f4bd
leaq 0xa8(%rsp), %rdi
leaq 0x130(%rsp), %rdx
callq 0xe1e4
leaq 0x3336d(%rip), %rdx     # 0x3ff6c
leaq 0x60(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xeafc
leaq 0x508(%rsp), %rdi
leaq 0x80(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0xea95
leaq 0x329b0(%rip), %rdx     # 0x3f5e2
leaq 0x260(%rsp), %rdi
leaq 0x508(%rsp), %rsi
callq 0xeafc
leaq 0x260(%rsp), %rdi
callq 0x1235c
callq 0xa770
testl %eax, %eax
jne 0xcd34
leaq 0x32831(%rip), %rsi     # 0x3f499
leaq 0x60(%rsp), %rdi
leaq 0x1a0(%rsp), %rdx
callq 0xe1e4
leaq 0xa8(%rsp), %rdi
movl $0x11e, %esi            # imm = 0x11E
callq 0xee49
leaq 0x18(%rsp), %rdi
leaq 0x60(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xea95
leaq 0x3280d(%rip), %rdx     # 0x3f4b7
leaq 0x40(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0xeafc
leaq 0x327fd(%rip), %rsi     # 0x3f4bd
leaq 0x130(%rsp), %rdi
leaq 0x180(%rsp), %rdx
callq 0xe1e4
leaq 0x33290(%rip), %rdx     # 0x3ff6c
leaq 0xc8(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0xeafc
leaq 0xf0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xea95
leaq 0x327f2(%rip), %rdx     # 0x3f504
leaq 0x80(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0xeafc
leaq 0x80(%rsp), %rdi
callq 0x1235c
pushq $0x1
popq %rdi
callq 0xa620
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0xab20
jmp 0xcd51
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0xab20
jmp 0xcd68
jmp 0xd4ea
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0xab20
jmp 0xcd9e
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0xab20
jmp 0xcd8c
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
callq 0xab20
jmp 0xcdb0
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
callq 0xab20
jmp 0xcdbf
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xab20
jmp 0xcdce
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0xab20
jmp 0xcde0
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xab20
jmp 0xcdef
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0xab20
jmp 0xce01
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0xab20
jmp 0xce37
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xab20
jmp 0xce49
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
callq 0xab20
jmp 0xce25
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0xab20
jmp 0xce64
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0xab20
jmp 0xce76
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xab20
jmp 0xd417
jmp 0xceab
jmp 0xce87
movq %rax, %rbx
jmp 0xcec5
movq %rax, %rbx
leaq 0x200(%rsp), %rdi
callq 0xab20
jmp 0xce8f
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0xab20
jmp 0xcea1
jmp 0xd414
movq %rax, %rbx
jmp 0xceb8
movq %rax, %rbx
leaq 0x1e0(%rsp), %rdi
callq 0xab20
jmp 0xced7
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
jmp 0xd585
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xab20
leaq 0xa8(%rsp), %rdi
callq 0xedfc
leaq 0x508(%rsp), %rdi
callq 0xf0fc
jmp 0xcefb
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
callq 0xab20
jmp 0xd004
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xab20
jmp 0xcefb
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
jmp 0xd557
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
jmp 0xd46d
jmp 0xd494
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
callq 0xab20
jmp 0xd465
jmp 0xd462
jmp 0xd494
jmp 0xd494
jmp 0xd35b
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0xab20
jmp 0xcf5b
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0xab20
jmp 0xcf6d
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0xab20
jmp 0xcf7c
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0xab20
jmp 0xd403
jmp 0xd400
jmp 0xd414
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0xab20
jmp 0xcfa7
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0xab20
jmp 0xcfb6
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xab20
jmp 0xcfc5
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xab20
jmp 0xcfd9
jmp 0xcfd6
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0xab20
leaq 0xf0(%rsp), %rdi
callq 0xab20
jmp 0xd074
movq %rax, %rbx
jmp 0xcfe6
jmp 0xd071
jmp 0xd414
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0xab20
jmp 0xd084
jmp 0xd462
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0x10da0
jmp 0xd55c
jmp 0xd494
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
callq 0xab20
testb %bpl, %bpl
jne 0xd04f
jmp 0xd424
movq %rax, %rbx
movq %r14, %rdi
callq 0xa830
jmp 0xd424
jmp 0xd33b
movq %rax, %rbx
movq %r14, %rdi
callq 0xa830
jmp 0xd431
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
jmp 0xd408
movq %rax, %rbx
leaq 0x220(%rsp), %rdi
callq 0xab20
jmp 0xd441
movq %rax, %rbx
leaq 0x728(%rsp), %rdi
callq 0xab20
jmp 0xd0ab
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0xab20
jmp 0xd0bd
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
callq 0xab20
jmp 0xd0cf
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xab20
jmp 0xd0e1
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0xab20
leaq 0x748(%rsp), %rdi
callq 0xab20
leaq 0x7c8(%rsp), %rdi
callq 0xab20
leaq 0x130(%rsp), %rdi
callq 0xab20
leaq 0x768(%rsp), %rdi
callq 0xab20
leaq 0x7e8(%rsp), %rdi
callq 0xab20
leaq 0x110(%rsp), %rdi
callq 0xab20
leaq 0x6a8(%rsp), %rdi
callq 0xab20
leaq 0x688(%rsp), %rdi
callq 0xab20
leaq 0x1a0(%rsp), %rdi
callq 0xab20
leaq 0x1e0(%rsp), %rdi
callq 0xab20
leaq 0x1c0(%rsp), %rdi
callq 0xab20
leaq 0x180(%rsp), %rdi
callq 0xab20
leaq 0x200(%rsp), %rdi
callq 0xab20
leaq 0x788(%rsp), %rdi
callq 0xab20
leaq 0x240(%rsp), %rdi
callq 0xab20
leaq 0x220(%rsp), %rdi
jmp 0xd4cf
movq %rax, %rbx
jmp 0xd0ee
movq %rax, %rbx
jmp 0xd0fb
movq %rax, %rbx
jmp 0xd108
movq %rax, %rbx
jmp 0xd115
movq %rax, %rbx
jmp 0xd122
jmp 0xd1e8
movq %rax, %rbx
jmp 0xd12f
movq %rax, %rbx
jmp 0xd13c
movq %rax, %rbx
jmp 0xd149
movq %rax, %rbx
jmp 0xd156
movq %rax, %rbx
jmp 0xd163
movq %rax, %rbx
jmp 0xd170
movq %rax, %rbx
jmp 0xd17d
movq %rax, %rbx
jmp 0xd18a
movq %rax, %rbx
jmp 0xd197
movq %rax, %rbx
jmp 0xd1a4
movq %rax, %rbx
jmp 0xd1b1
jmp 0xd4bc
jmp 0xd4bc
jmp 0xd4bc
jmp 0xd453
jmp 0xd4bc
jmp 0xd4c4
jmp 0xd4bc
jmp 0xd462
jmp 0xd494
jmp 0xd462
jmp 0xd494
jmp 0xd462
jmp 0xd494
jmp 0xd462
jmp 0xd494
jmp 0xd462
jmp 0xd494
jmp 0xd462
jmp 0xd494
jmp 0xd462
jmp 0xd494
jmp 0xd462
jmp 0xd494
jmp 0xd462
jmp 0xd494
jmp 0xd494
jmp 0xd494
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
jmp 0xd561
movq %rax, %rbx
jmp 0xd566
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0xab20
jmp 0xd2f4
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
callq 0xab20
jmp 0xd306
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
jmp 0xd56b
movq %rax, %rbx
jmp 0xd570
jmp 0xd353
jmp 0xd353
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
callq 0x10da0
jmp 0xd57d
jmp 0xd353
movq %rax, %rbx
jmp 0xd424
movq %rax, %rbx
jmp 0xd431
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
jmp 0xd578
movq %rax, %rbx
jmp 0xd57d
movq %rax, %rbx
jmp 0xd58a
jmp 0xd47f
jmp 0xd36a
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0xab20
jmp 0xd37f
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
jmp 0xd59f
jmp 0xd47f
movq %rax, %rbx
jmp 0xd5ac
jmp 0xd487
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0xab20
jmp 0xd5b9
jmp 0xd487
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
jmp 0xd5c1
movq %rax, %rbx
jmp 0xd5c6
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
jmp 0xd5ce
movq %rax, %rbx
jmp 0xd5d3
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
jmp 0xd5db
movq %rax, %rbx
jmp 0xd5e0
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xedfc
jmp 0xd417
jmp 0xd4ea
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
callq 0xab20
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x110(%rsp), %rdi
jmp 0xd585
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
callq 0xab20
jmp 0xd51e
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
jmp 0xd4cf
jmp 0xd462
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0xab20
jmp 0xd55c
movq %rax, %rbx
jmp 0xd50c
movq %rax, %rbx
jmp 0xd5a4
movq %rax, %rbx
jmp 0xd5b9
jmp 0xd51b
movq %rax, %rbx
jmp 0xd55c
movq %rax, %rbx
jmp 0xd52b
jmp 0xd4aa
jmp 0xd4bc
jmp 0xd4c4
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0xab20
jmp 0xd4c7
movq %rax, %rbx
jmp 0xd552
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
callq 0xab20
jmp 0xd552
jmp 0xd4e5
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
jmp 0xd540
movq %rax, %rbx
jmp 0xd545
movq %rax, %rbx
jmp 0xd4ff
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0xab20
leaq 0x80(%rsp), %rdi
callq 0xf7e4
leaq 0x508(%rsp), %rdi
callq 0xf0fc
jmp 0xd58a
movq %rax, %rbx
leaq 0x508(%rsp), %rdi
callq 0xa4e0
leaq 0xc8(%rsp), %rdi
callq 0xab20
leaq 0xa8(%rsp), %rdi
callq 0xab20
leaq 0x260(%rsp), %rdi
callq 0xf208
leaq 0x60(%rsp), %rdi
callq 0xf0fc
leaq 0x18(%rsp), %rdi
callq 0xab20
leaq 0x40(%rsp), %rdi
callq 0xab20
leaq 0xf0(%rsp), %rdi
callq 0xab20
leaq 0x80(%rsp), %rdi
callq 0xab20
leaq 0x160(%rsp), %rdi
callq 0xab20
leaq 0x6c8(%rsp), %rdi
callq 0xab20
movq %rsp, %rdi
callq 0xf538
leaq 0xec(%rsp), %rdi
callq 0x17f52
leaq 0x6e8(%rsp), %rdi
callq 0xab20
leaq 0x708(%rsp), %rdi
callq 0xab20
leaq 0x7a8(%rsp), %rdi
callq 0xab20
movq %rbx, %rdi
callq 0xa5d0