// File: ncbi[P]amr/mutate.cpp
// Function: (anonymous namespace)::ThisApplication::body() const
void body () const final
  {
	  const string inFName  = getArg ("in");
	  const string mutFName = getArg ("mut");
	  const bool aa         = getFlag ("aa");
	  const bool orig       = getFlag ("orig");
  
  
    map <string/*seqId*/,Vector<AmrMutation>> id2mutation;
    {
      LineInput in (mutFName);
      Istringstream iss;
      while (in. nextLine ())
      {
        iss. reset (in. line);
        string seqId;
        size_t pos;
        string mutation_std;
        string mutation_report;
        iss >> seqId >> pos >> mutation_std >> mutation_report;
        QC_ASSERT (! mutation_report. empty ());
        AmrMutation mut (pos, mutation_std, mutation_report, "X", "X", "X");
        mut. qc ();
        id2mutation [seqId] << std::move (mut);
      }
    }
  
  
	  Multifasta fIn (inFName, aa);
	  while (fIn. next ())
	  {
 	    unique_ptr<const Seq> seq;
	    try
  	  {
  	    if (aa)
  	    {
  	      auto pep = new Peptide (fIn, 1000, false);  // PAR
  	      pep->pseudo = true;
  	      seq. reset (pep);  
  	    }
  	    else
  	      seq. reset (new Dna     (fIn, 100000, false));  // PAR
  	    seq->qc ();
  	    if (orig)
  	      seq->saveText (cout);
  	    if (const Vector<AmrMutation>* muts = findPtr (id2mutation, seq->getId ()))
  	      for (const AmrMutation& mut : *muts)
    	    {
    	      unique_ptr<Seq> seq1 (seq->copy ());
    	      mut. apply (seq1->seq);
    	      if (! aa)
    	        strLower (seq1->seq);
      	    seq1->name += ":" + to_string (mut. pos_real + 1) + ":" + mut. geneMutation;
      	    seq1->qc ();
      	    seq1->saveText (cout);
    	    }
  	  }
  	  catch (const exception &e)
  	  {
  	    if (seq)
  	      throw runtime_error (seq->name + "\n" + e. what ());
  	    throw;
  	  }
  	}
  }

// Assembly:
subq $0xd68, %rsp            # imm = 0xD68
movq %rdi, 0xd60(%rsp)
movq 0xd60(%rsp), %rax
movq %rax, 0xc8(%rsp)
leaq 0xd1f(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0xdd50
movq 0xd0(%rsp), %rdx
leaq 0xda132(%rip), %rsi     # 0xe8af5
leaq 0xd20(%rsp), %rdi
callq 0xfae0
jmp 0xe9d2
movq 0xc8(%rsp), %rsi
leaq 0xd40(%rsp), %rdi
leaq 0xd20(%rsp), %rdx
callq 0x41020
jmp 0xe9f1
leaq 0xd20(%rsp), %rdi
callq 0xdf08
leaq 0xd1f(%rsp), %rdi
callq 0xd7a0
leaq 0xcc7(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0xdd50
movq 0xc0(%rsp), %rdx
leaq 0xd45fa(%rip), %rsi     # 0xe3029
leaq 0xcc8(%rsp), %rdi
callq 0xfae0
jmp 0xea3e
movq 0xc8(%rsp), %rsi
leaq 0xce8(%rsp), %rdi
leaq 0xcc8(%rsp), %rdx
callq 0x41020
jmp 0xea5d
leaq 0xcc8(%rsp), %rdi
callq 0xdf08
leaq 0xcc7(%rsp), %rdi
callq 0xd7a0
leaq 0xc9f(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0xdd50
movq 0xb8(%rsp), %rdx
leaq 0xd9d6a(%rip), %rsi     # 0xe8805
leaq 0xca0(%rsp), %rdi
callq 0xfae0
jmp 0xeaaa
movq 0xc8(%rsp), %rdi
leaq 0xca0(%rsp), %rsi
callq 0x411b0
movb %al, 0xb7(%rsp)
jmp 0xeac8
leaq 0xca0(%rsp), %rdi
callq 0xdf08
leaq 0xc9f(%rsp), %rdi
callq 0xd7a0
movb 0xb7(%rsp), %al
andb $0x1, %al
movb %al, 0xcc6(%rsp)
leaq 0xc77(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0xdd50
movq 0xa8(%rsp), %rdx
leaq 0xd456e(%rip), %rsi     # 0xe3084
leaq 0xc78(%rsp), %rdi
callq 0xfae0
jmp 0xeb25
movq 0xc8(%rsp), %rdi
leaq 0xc78(%rsp), %rsi
callq 0x411b0
movb %al, 0xa7(%rsp)
jmp 0xeb43
leaq 0xc78(%rsp), %rdi
callq 0xdf08
leaq 0xc77(%rsp), %rdi
callq 0xd7a0
movb 0xa7(%rsp), %al
andb $0x1, %al
movb %al, 0xc9e(%rsp)
leaq 0xc40(%rsp), %rdi
callq 0x11380
leaq 0x998(%rsp), %rdi
leaq 0xce8(%rsp), %rsi
xorl %edx, %edx
callq 0x11390
jmp 0xeb93
leaq 0x818(%rsp), %rdi
callq 0x11400
jmp 0xeba2
jmp 0xeba4
leaq 0x998(%rsp), %rdi
callq 0x15db0
movb %al, 0xa6(%rsp)
jmp 0xebba
movb 0xa6(%rsp), %al
testb $0x1, %al
jne 0xebca
jmp 0xf346
leaq 0xc00(%rsp), %rsi
leaq 0x818(%rsp), %rdi
callq 0x11480
jmp 0xebe1
leaq 0x7f8(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0xda50
leaq 0x7d0(%rsp), %rdi
callq 0xda50
leaq 0x7b0(%rsp), %rdi
callq 0xda50
movq 0x90(%rsp), %rsi
leaq 0x818(%rsp), %rdi
callq 0xd970
movq %rax, 0x98(%rsp)
jmp 0xec2f
movq 0x98(%rsp), %rdi
leaq 0x7f0(%rsp), %rsi
callq 0xda80
movq %rax, 0x88(%rsp)
jmp 0xec4e
movq 0x88(%rsp), %rdi
leaq 0x7d0(%rsp), %rsi
callq 0xd970
movq %rax, 0x80(%rsp)
jmp 0xec6d
movq 0x80(%rsp), %rdi
leaq 0x7b0(%rsp), %rsi
callq 0xd970
jmp 0xec84
callq 0xd0a0
movl $0x0, (%rax)
leaq 0x7b0(%rsp), %rdi
callq 0xdc60
testb $0x1, %al
jne 0xeca5
jmp 0xf0b4
callq 0xd8c0
cmpl $0x0, %eax
jne 0xf0aa
leaq 0x70f(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0xdd50
movq 0x78(%rsp), %rdx
leaq 0xd44ec(%rip), %rsi     # 0xe31bd
leaq 0x710(%rsp), %rdi
callq 0xfae0
jmp 0xece0
leaq 0x6e8(%rsp), %rdi
movl $0x58, %esi
callq 0x11600
jmp 0xecf4
leaq 0x730(%rsp), %rdi
leaq 0x710(%rsp), %rsi
leaq 0x6e8(%rsp), %rdx
callq 0x11510
jmp 0xed13
leaq 0xd44b7(%rip), %rdx     # 0xe31d1
leaq 0x750(%rsp), %rdi
leaq 0x730(%rsp), %rsi
callq 0x114c0
jmp 0xed31
leaq 0x6a7(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0xdd50
movq 0x70(%rsp), %rdx
leaq 0xd4488(%rip), %rsi     # 0xe31d7
leaq 0x6a8(%rsp), %rdi
callq 0xfae0
jmp 0xed5e
leaq 0xd4c3f(%rip), %rdx     # 0xe39a4
leaq 0x6c8(%rsp), %rdi
leaq 0x6a8(%rsp), %rsi
callq 0x114c0
jmp 0xed7c
leaq 0x770(%rsp), %rdi
leaq 0x750(%rsp), %rsi
leaq 0x6c8(%rsp), %rdx
callq 0x11510
jmp 0xed9b
leaq 0xd4477(%rip), %rdx     # 0xe3219
leaq 0x790(%rsp), %rdi
leaq 0x770(%rsp), %rsi
callq 0x114c0
jmp 0xedb9
leaq 0x790(%rsp), %rdi
callq 0x173d0
jmp 0xedc8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xedff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
leaq 0xd20(%rsp), %rdi
callq 0xdf08
leaq 0xd1f(%rsp), %rdi
callq 0xd7a0
jmp 0xfac4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xee48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
leaq 0xcc8(%rsp), %rdi
callq 0xdf08
leaq 0xcc7(%rsp), %rdi
callq 0xd7a0
jmp 0xfab7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xee91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
leaq 0xca0(%rsp), %rdi
callq 0xdf08
leaq 0xc9f(%rsp), %rdi
callq 0xd7a0
jmp 0xfaaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xeeda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
leaq 0xc78(%rsp), %rdi
callq 0xdf08
leaq 0xc77(%rsp), %rdi
callq 0xd7a0
jmp 0xfaaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xfa9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf430
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf423
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf31a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf098
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf08b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf07e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf071
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf057
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf04a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf03d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf030
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
leaq 0x790(%rsp), %rdi
callq 0xdf08
leaq 0x770(%rsp), %rdi
callq 0xdf08
leaq 0x6c8(%rsp), %rdi
callq 0xdf08
leaq 0x6a8(%rsp), %rdi
callq 0xdf08
leaq 0x6a7(%rsp), %rdi
callq 0xd7a0
leaq 0x750(%rsp), %rdi
callq 0xdf08
leaq 0x730(%rsp), %rdi
callq 0xdf08
leaq 0x6e8(%rsp), %rdi
callq 0xdf08
leaq 0x710(%rsp), %rdi
callq 0xdf08
leaq 0x70f(%rsp), %rdi
callq 0xd7a0
jmp 0xf31a
movl $0x1, %edi
callq 0xd8e0
movq 0x7f0(%rsp), %rax
movq %rax, 0x60(%rsp)
leaq 0x557(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0xdd50
movq 0x68(%rsp), %rdx
leaq 0xd74f4(%rip), %rsi     # 0xe65d3
leaq 0x558(%rsp), %rdi
callq 0xfae0
jmp 0xf0ee
leaq 0x52f(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xdd50
movq 0x58(%rsp), %rdx
leaq 0xd74c7(%rip), %rsi     # 0xe65d3
leaq 0x530(%rsp), %rdi
callq 0xfae0
jmp 0xf11b
leaq 0x507(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xdd50
movq 0x50(%rsp), %rdx
leaq 0xd749a(%rip), %rsi     # 0xe65d3
leaq 0x508(%rsp), %rdi
callq 0xfae0
jmp 0xf148
movq 0x60(%rsp), %rsi
movq %rsp, %rax
leaq 0x508(%rsp), %rcx
movq %rcx, (%rax)
leaq 0x578(%rsp), %rdi
leaq 0x7d0(%rsp), %rdx
leaq 0x7b0(%rsp), %rcx
leaq 0x558(%rsp), %r8
leaq 0x530(%rsp), %r9
callq 0x8bda0
jmp 0xf18a
leaq 0x508(%rsp), %rdi
callq 0xdf08
leaq 0x507(%rsp), %rdi
callq 0xd7a0
leaq 0x530(%rsp), %rdi
callq 0xdf08
leaq 0x52f(%rsp), %rdi
callq 0xd7a0
leaq 0x558(%rsp), %rdi
callq 0xdf08
leaq 0x557(%rsp), %rdi
callq 0xd7a0
leaq 0x578(%rsp), %rdi
callq 0x8f110
jmp 0xf1e7
leaq 0xc40(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
callq 0x11740
movq %rax, 0x48(%rsp)
jmp 0xf203
movq 0x48(%rsp), %rdi
leaq 0x578(%rsp), %rsi
callq 0x11830
jmp 0xf217
leaq 0x578(%rsp), %rdi
callq 0x11870
leaq 0x7b0(%rsp), %rdi
callq 0xdf08
leaq 0x7d0(%rsp), %rdi
callq 0xdf08
leaq 0x7f8(%rsp), %rdi
callq 0xdf08
jmp 0xeba4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf2ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf2d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf2b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
leaq 0x508(%rsp), %rdi
callq 0xdf08
leaq 0x507(%rsp), %rdi
callq 0xd7a0
leaq 0x530(%rsp), %rdi
callq 0xdf08
leaq 0x52f(%rsp), %rdi
callq 0xd7a0
leaq 0x558(%rsp), %rdi
callq 0xdf08
leaq 0x557(%rsp), %rdi
callq 0xd7a0
jmp 0xf31a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
leaq 0x578(%rsp), %rdi
callq 0x11870
leaq 0x7b0(%rsp), %rdi
callq 0xdf08
leaq 0x7d0(%rsp), %rdi
callq 0xdf08
leaq 0x7f8(%rsp), %rdi
callq 0xdf08
jmp 0xf423
leaq 0x818(%rsp), %rdi
callq 0x11910
leaq 0x998(%rsp), %rdi
callq 0x11950
movzbl 0xcc6(%rsp), %edx
andl $0x1, %edx
leaq 0x208(%rsp), %rdi
leaq 0xd40(%rsp), %rsi
movl $0x3e8, %ecx            # imm = 0x3E8
callq 0x119a0
jmp 0xf387
jmp 0xf389
leaq 0x208(%rsp), %rdi
callq 0x11aa0
movb %al, 0x47(%rsp)
jmp 0xf39c
movb 0x47(%rsp), %al
testb $0x1, %al
jne 0xf3a9
jmp 0xfa54
leaq 0x200(%rsp), %rdi
callq 0x11ad0
testb $0x1, 0xcc6(%rsp)
je 0xf49c
movl $0x50, %edi
callq 0xd700
movq %rax, 0x38(%rsp)
jmp 0xf3d5
movq 0x38(%rsp), %rdi
leaq 0x208(%rsp), %rsi
movl $0x3e8, %edx            # imm = 0x3E8
xorl %ecx, %ecx
callq 0xbba50
jmp 0xf3f0
movq 0x38(%rsp), %rax
movq %rax, 0x1f8(%rsp)
movq 0x1f8(%rsp), %rax
movb $0x1, 0x49(%rax)
movq 0x1f8(%rsp), %rsi
leaq 0x200(%rsp), %rdi
callq 0x11b00
jmp 0xf504
leaq 0x818(%rsp), %rdi
callq 0x11910
leaq 0x998(%rsp), %rdi
callq 0x11950
jmp 0xfa9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xfa90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf8af
movq 0x38(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
movl $0x50, %esi
callq 0xd710
jmp 0xf8af
movl $0x50, %edi
callq 0xd700
movq %rax, 0x30(%rsp)
jmp 0xf4ad
movq 0x30(%rsp), %rdi
leaq 0x208(%rsp), %rsi
movl $0x186a0, %edx          # imm = 0x186A0
xorl %ecx, %ecx
callq 0xae620
jmp 0xf4c8
movq 0x30(%rsp), %rsi
leaq 0x200(%rsp), %rdi
callq 0x11b00
jmp 0xf504
movq 0x30(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
movl $0x50, %esi
callq 0xd710
jmp 0xf8af
leaq 0x200(%rsp), %rdi
callq 0x11b30
movq %rax, %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xf51f
testb $0x1, 0xc9e(%rsp)
je 0xf54d
leaq 0x200(%rsp), %rdi
callq 0x11b30
movq %rax, %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
movq 0x110a49(%rip), %rsi    # 0x11ff90
callq *%rax
jmp 0xf54b
jmp 0xf54d
leaq 0x200(%rsp), %rdi
callq 0x11b30
movq %rax, %rsi
leaq 0x1d0(%rsp), %rdi
callq 0x11bc0
jmp 0xf56c
leaq 0xc40(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
callq 0x11b40
movq %rax, 0x28(%rsp)
jmp 0xf588
leaq 0x1d0(%rsp), %rdi
callq 0xdf08
movq 0x28(%rsp), %rax
movq %rax, 0x1f0(%rsp)
cmpq $0x0, 0x1f0(%rsp)
je 0xf995
movq 0x1f0(%rsp), %rax
movq %rax, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rdi
callq 0x11c10
movq %rax, 0x1c0(%rsp)
movq 0x1c8(%rsp), %rdi
callq 0x11c40
movq %rax, 0x1b8(%rsp)
leaq 0x1c0(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x11c70
testb $0x1, %al
jne 0xf609
jmp 0xf993
leaq 0x1c0(%rsp), %rdi
callq 0x11cb0
movq %rax, 0x1b0(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x11b30
movq %rax, %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, 0x20(%rsp)
jmp 0xf63e
movq 0x20(%rsp), %rsi
leaq 0x1a8(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x11cc0
movq 0x10(%rsp), %rdi
movq 0x1b0(%rsp), %rax
movq %rax, 0x18(%rsp)
callq 0x12200
movq 0x18(%rsp), %rdi
movq %rax, %rsi
addq $0x28, %rsi
callq 0x11cf0
jmp 0xf67f
testb $0x1, 0xcc6(%rsp)
jne 0xf6e5
leaq 0x1a8(%rsp), %rdi
callq 0x12200
movq %rax, %rdi
addq $0x28, %rdi
callq 0x1a4e0
jmp 0xf6a4
jmp 0xf6e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
leaq 0x1d0(%rsp), %rdi
callq 0xdf08
jmp 0xf8af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf8a2
movq 0x1b0(%rsp), %rax
movq 0x8(%rax), %rsi
incq %rsi
leaq 0x128(%rsp), %rdi
callq 0x122b0
jmp 0xf703
leaq 0xd8379(%rip), %rsi     # 0xe7a83
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rdx
callq 0x12260
jmp 0xf721
leaq 0xd835b(%rip), %rdx     # 0xe7a83
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x114c0
jmp 0xf73f
movq 0x1b0(%rsp), %rdx
addq $0xa8, %rdx
leaq 0x188(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x12210
jmp 0xf765
leaq 0x1a8(%rsp), %rdi
callq 0x12200
movq %rax, %rdi
addq $0x8, %rdi
leaq 0x188(%rsp), %rsi
callq 0xd980
jmp 0xf788
leaq 0x188(%rsp), %rdi
callq 0xdf08
leaq 0x168(%rsp), %rdi
callq 0xdf08
leaq 0x148(%rsp), %rdi
callq 0xdf08
leaq 0x128(%rsp), %rdi
callq 0xdf08
leaq 0x1a8(%rsp), %rdi
callq 0x12200
movq %rax, %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xf7d7
leaq 0x1a8(%rsp), %rdi
callq 0x12200
movq %rax, %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
movq 0x11079b(%rip), %rsi    # 0x11ff90
callq *%rax
jmp 0xf7f9
leaq 0x1a8(%rsp), %rdi
callq 0x123b0
leaq 0x1c0(%rsp), %rdi
callq 0x12410
jmp 0xf5eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf895
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf888
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf87b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
leaq 0x188(%rsp), %rdi
callq 0xdf08
leaq 0x168(%rsp), %rdi
callq 0xdf08
leaq 0x148(%rsp), %rdi
callq 0xdf08
leaq 0x128(%rsp), %rdi
callq 0xdf08
leaq 0x1a8(%rsp), %rdi
callq 0x123b0
movl 0xd0c(%rsp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0xfa45
movq 0xd10(%rsp), %rdi
callq 0xd300
movq %rax, 0x120(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x12430
testb $0x1, %al
jne 0xf8ee
jmp 0xfa0c
movb $0x1, 0xdf(%rsp)
movl $0x10, %edi
callq 0xd3b0
movq %rax, 0x8(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x11b30
movq %rax, %rsi
addq $0x8, %rsi
leaq 0xd609f(%rip), %rdx     # 0xe59bf
leaq 0xe0(%rsp), %rdi
callq 0x12450
jmp 0xf92f
movq 0x120(%rsp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, %rdx
leaq 0x100(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x114c0
jmp 0xf95a
movq 0x8(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0xdbf0
jmp 0xf96e
movq 0x8(%rsp), %rdi
movb $0x0, 0xdf(%rsp)
movq 0x11066e(%rip), %rsi    # 0x11fff0
movq 0x1105e7(%rip), %rdx    # 0x11ff70
callq 0xdcd0
jmp 0xfad9
jmp 0xf995
jmp 0xfa33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf9f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
jmp 0xf9e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
leaq 0x100(%rsp), %rdi
callq 0xdf08
leaq 0xe0(%rsp), %rdi
callq 0xdf08
testb $0x1, 0xdf(%rsp)
jne 0xfa00
jmp 0xfa0a
movq 0x8(%rsp), %rdi
callq 0xd570
jmp 0xfa2a
callq 0xdae0
jmp 0xfad9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd10(%rsp)
movl %eax, 0xd0c(%rsp)
callq 0xdc20
jmp 0xfa31
jmp 0xfa45
leaq 0x200(%rsp), %rdi
callq 0x124e0
jmp 0xf389
leaq 0x200(%rsp), %rdi
callq 0x124e0
jmp 0xfa90
leaq 0x208(%rsp), %rdi
callq 0x12540
leaq 0xc40(%rsp), %rdi
callq 0x12580
leaq 0xce8(%rsp), %rdi
callq 0xdf08
leaq 0xd40(%rsp), %rdi
callq 0xdf08
addq $0xd68, %rsp            # imm = 0xD68
retq
leaq 0x208(%rsp), %rdi
callq 0x12540
leaq 0xc40(%rsp), %rdi
callq 0x12580
leaq 0xce8(%rsp), %rdi
callq 0xdf08
leaq 0xd40(%rsp), %rdi
callq 0xdf08
movq 0xd10(%rsp), %rdi
callq 0xdd40
movq %rax, %rdi
callq 0x103d0
nopl (%rax)