// File: ncbi[P]amr/stx/fasta_extract.cpp
// Function: (anonymous namespace)::ThisApplication::body() const
void body () const final
  {
    const string fName       = getArg ("fasta");
    const string targetFName = getArg ("target");
    const bool aa            = getFlag ("aa");
    
    
    map<string/*id*/,Vector<Segment>> id2segments;
    {
      LineInput f (targetFName);
      string id;
      Istringstream iss;
      while (f. nextLine ())
      {
        iss. reset (f. line);
        Segment seg;
        iss >> id;
        if (! aa)
        {
          char strand = '\0';
          iss >> seg. start >> seg. stop >> strand;
          QC_ASSERT (seg. start);
          QC_ASSERT (seg. start <= seg. stop);
          seg. start--;
          QC_ASSERT (   strand == '+' 
                     || strand == '-'
                    );
          seg. strand = (strand == '+');
        }
        iss >> seg. genesymbol;
        seg. name = f. line. substr ((size_t) iss. tellg ());
        trim (seg. name);
        QC_ASSERT (aa == ! seg. isDna ());
        id2segments [id] << std::move (seg);
      }
    }
    if (verbose ())
      for (const auto& it : id2segments)
      {
        cout << it. first << ": " << endl;
        for (const Segment& seg : it. second)
        {
          cout << "  ";
          seg. saveText (cout);
        }
      }
    if (id2segments. empty ())
      return;
    

    size_t processed = 0;
    {
      LineInput f (fName); 
      string id;
      string seq;
      while (f. nextLine ())
      {
        trimTrailing (f. line);
        if (f. line. empty ())
        	continue;
      	if (f. line [0] == '>')
      	{
      	  processed += process (id, seq, id2segments);
      		size_t pos = 1;
      		while (pos < f. line. size () && ! isspace (f. line [pos]))
      		  pos++;
      		id = f. line. substr (1, pos - 1);
      		seq. clear ();
      	}
      	else 
      	  seq += f. line;
  	  }
   	  processed += process (id, seq, id2segments);
   	}
   	if (processed != id2segments. size ())  
   	  throw runtime_error ("Requested identifiers: " + to_string (id2segments. size ()) + ", but processed: " + to_string (processed));
   	  // Assumed: no duplicate identifiers in FASTA
  }

// Assembly:
subq $0xf38, %rsp            # imm = 0xF38
movq %rdi, 0xf30(%rsp)
movq 0xf30(%rsp), %rax
movq %rax, 0x108(%rsp)
leaq 0xeef(%rsp), %rdi
movq %rdi, 0x110(%rsp)
callq 0xcc80
movq 0x110(%rsp), %rdx
leaq 0x7db1d(%rip), %rsi     # 0x8b180
leaq 0xef0(%rsp), %rdi
callq 0x12640
jmp 0xd672
movq 0x108(%rsp), %rsi
leaq 0xf10(%rsp), %rdi
leaq 0xef0(%rsp), %rdx
callq 0x406e0
jmp 0xd691
leaq 0xef0(%rsp), %rdi
callq 0xce28
leaq 0xeef(%rsp), %rdi
callq 0xc740
leaq 0xe97(%rsp), %rdi
movq %rdi, 0x100(%rsp)
callq 0xcc80
movq 0x100(%rsp), %rdx
leaq 0x7dab7(%rip), %rsi     # 0x8b186
leaq 0xe98(%rsp), %rdi
callq 0x12640
jmp 0xd6de
movq 0x108(%rsp), %rsi
leaq 0xeb8(%rsp), %rdi
leaq 0xe98(%rsp), %rdx
callq 0x406e0
jmp 0xd6fd
leaq 0xe98(%rsp), %rdi
callq 0xce28
leaq 0xe97(%rsp), %rdi
callq 0xc740
leaq 0xe6f(%rsp), %rdi
movq %rdi, 0xf8(%rsp)
callq 0xcc80
movq 0xf8(%rsp), %rdx
leaq 0x7db44(%rip), %rsi     # 0x8b27f
leaq 0xe70(%rsp), %rdi
callq 0x12640
jmp 0xd74a
movq 0x108(%rsp), %rdi
leaq 0xe70(%rsp), %rsi
callq 0x40870
movb %al, 0xf7(%rsp)
jmp 0xd768
leaq 0xe70(%rsp), %rdi
callq 0xce28
leaq 0xe6f(%rsp), %rdi
callq 0xc740
movb 0xf7(%rsp), %al
andb $0x1, %al
movb %al, 0xe96(%rsp)
leaq 0xe38(%rsp), %rdi
callq 0xed30
leaq 0xb90(%rsp), %rdi
leaq 0xeb8(%rsp), %rsi
xorl %edx, %edx
callq 0x13ee0
jmp 0xd7b8
leaq 0xb70(%rsp), %rdi
callq 0xc9a0
leaq 0x9f0(%rsp), %rdi
callq 0x13f50
jmp 0xd7d4
jmp 0xd7d6
leaq 0xb90(%rsp), %rdi
callq 0x155b0
movb %al, 0xf6(%rsp)
jmp 0xd7ec
movb 0xf6(%rsp), %al
testb $0x1, %al
jne 0xd7fc
jmp 0xe62f
leaq 0xdf8(%rsp), %rsi
leaq 0x9f0(%rsp), %rdi
callq 0x13fd0
jmp 0xd813
leaq 0x998(%rsp), %rdi
callq 0xed40
leaq 0x9f0(%rsp), %rdi
leaq 0xb70(%rsp), %rsi
callq 0xc8e0
jmp 0xd837
testb $0x1, 0xe96(%rsp)
jne 0xe22d
movb $0x0, 0x997(%rsp)
leaq 0x9f0(%rsp), %rdi
leaq 0x998(%rsp), %rsi
callq 0xc9d0
movq %rax, 0xe8(%rsp)
jmp 0xd86c
movq 0xe8(%rsp), %rdi
leaq 0x9a0(%rsp), %rsi
callq 0xc9d0
movq %rax, 0xe0(%rsp)
jmp 0xd88b
movq 0xe0(%rsp), %rdi
leaq 0x997(%rsp), %rsi
callq 0xc940
jmp 0xd8a2
callq 0xc090
movl $0x0, (%rax)
cmpq $0x0, 0x998(%rsp)
jne 0xdc8e
callq 0xc860
cmpl $0x0, %eax
jne 0xdc84
leaq 0x8ef(%rsp), %rdi
movq %rdi, 0xd8(%rsp)
callq 0xcc80
movq 0xd8(%rsp), %rdx
leaq 0x7daca(%rip), %rsi     # 0x8b3b8
leaq 0x8f0(%rsp), %rdi
callq 0x12640
jmp 0xd8fd
leaq 0x8c8(%rsp), %rdi
movl $0xc2, %esi
callq 0x14150
jmp 0xd911
leaq 0x910(%rsp), %rdi
leaq 0x8f0(%rsp), %rsi
leaq 0x8c8(%rsp), %rdx
callq 0x14060
jmp 0xd930
leaq 0x7da9c(%rip), %rdx     # 0x8b3d3
leaq 0x930(%rsp), %rdi
leaq 0x910(%rsp), %rsi
callq 0x14010
jmp 0xd94e
leaq 0x887(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0xcc80
movq 0xd0(%rsp), %rdx
leaq 0x7da67(%rip), %rsi     # 0x8b3d9
leaq 0x888(%rsp), %rdi
callq 0x12640
jmp 0xd981
leaq 0x7e2ec(%rip), %rdx     # 0x8bc74
leaq 0x8a8(%rsp), %rdi
leaq 0x888(%rsp), %rsi
callq 0x14010
jmp 0xd99f
leaq 0x950(%rsp), %rdi
leaq 0x930(%rsp), %rsi
leaq 0x8a8(%rsp), %rdx
callq 0x14060
jmp 0xd9be
leaq 0x7da56(%rip), %rdx     # 0x8b41b
leaq 0x970(%rsp), %rdi
leaq 0x950(%rsp), %rsi
callq 0x14010
jmp 0xd9dc
leaq 0x970(%rsp), %rdi
callq 0x16bd0
jmp 0xd9eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xda22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
leaq 0xef0(%rsp), %rdi
callq 0xce28
leaq 0xeef(%rsp), %rdi
callq 0xc740
jmp 0xed20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xda6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
leaq 0xe98(%rsp), %rdi
callq 0xce28
leaq 0xe97(%rsp), %rdi
callq 0xc740
jmp 0xed13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdab4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
leaq 0xe70(%rsp), %rdi
callq 0xce28
leaq 0xe6f(%rsp), %rdi
callq 0xc740
jmp 0xed06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xecf9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe7da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe7cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe61d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdc72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdc65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdc58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdc4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdc31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdc24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdc17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdc0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
leaq 0x970(%rsp), %rdi
callq 0xce28
leaq 0x950(%rsp), %rdi
callq 0xce28
leaq 0x8a8(%rsp), %rdi
callq 0xce28
leaq 0x888(%rsp), %rdi
callq 0xce28
leaq 0x887(%rsp), %rdi
callq 0xc740
leaq 0x930(%rsp), %rdi
callq 0xce28
leaq 0x910(%rsp), %rdi
callq 0xce28
leaq 0x8c8(%rsp), %rdi
callq 0xce28
leaq 0x8f0(%rsp), %rdi
callq 0xce28
leaq 0x8ef(%rsp), %rdi
callq 0xc740
jmp 0xe61d
movl $0x1, %edi
callq 0xc870
callq 0xc090
movl $0x0, (%rax)
movq 0x998(%rsp), %rax
cmpq 0x9a0(%rsp), %rax
jbe 0xdf42
callq 0xc860
cmpl $0x0, %eax
jne 0xdf38
leaq 0x7df(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq 0xcc80
movq 0xc8(%rsp), %rdx
leaq 0x7d6d7(%rip), %rsi     # 0x8b3b8
leaq 0x7e0(%rsp), %rdi
callq 0x12640
jmp 0xdcf0
leaq 0x7b8(%rsp), %rdi
movl $0xc3, %esi
callq 0x14150
jmp 0xdd04
leaq 0x800(%rsp), %rdi
leaq 0x7e0(%rsp), %rsi
leaq 0x7b8(%rsp), %rdx
callq 0x14060
jmp 0xdd23
leaq 0x7d6a9(%rip), %rdx     # 0x8b3d3
leaq 0x820(%rsp), %rdi
leaq 0x800(%rsp), %rsi
callq 0x14010
jmp 0xdd41
leaq 0x777(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0xcc80
movq 0xc0(%rsp), %rdx
leaq 0x7d674(%rip), %rsi     # 0x8b3d9
leaq 0x778(%rsp), %rdi
callq 0x12640
jmp 0xdd74
leaq 0x7def9(%rip), %rdx     # 0x8bc74
leaq 0x798(%rsp), %rdi
leaq 0x778(%rsp), %rsi
callq 0x14010
jmp 0xdd92
leaq 0x840(%rsp), %rdi
leaq 0x820(%rsp), %rsi
leaq 0x798(%rsp), %rdx
callq 0x14060
jmp 0xddb1
leaq 0x7d66e(%rip), %rdx     # 0x8b426
leaq 0x860(%rsp), %rdi
leaq 0x840(%rsp), %rsi
callq 0x14010
jmp 0xddcf
leaq 0x860(%rsp), %rdi
callq 0x16bd0
jmp 0xddde
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdf26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdf19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdf0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdeff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdee5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xded8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdecb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xdebe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
leaq 0x860(%rsp), %rdi
callq 0xce28
leaq 0x840(%rsp), %rdi
callq 0xce28
leaq 0x798(%rsp), %rdi
callq 0xce28
leaq 0x778(%rsp), %rdi
callq 0xce28
leaq 0x777(%rsp), %rdi
callq 0xc740
leaq 0x820(%rsp), %rdi
callq 0xce28
leaq 0x800(%rsp), %rdi
callq 0xce28
leaq 0x7b8(%rsp), %rdi
callq 0xce28
leaq 0x7e0(%rsp), %rdi
callq 0xce28
leaq 0x7df(%rsp), %rdi
callq 0xc740
jmp 0xe61d
movl $0x1, %edi
callq 0xc870
movq 0x998(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x998(%rsp)
callq 0xc090
movl $0x0, (%rax)
movsbl 0x997(%rsp), %eax
cmpl $0x2b, %eax
je 0xe216
movsbl 0x997(%rsp), %eax
cmpl $0x2d, %eax
je 0xe216
callq 0xc860
cmpl $0x0, %eax
jne 0xe20c
leaq 0x6cf(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0xcc80
movq 0xb8(%rsp), %rdx
leaq 0x7d403(%rip), %rsi     # 0x8b3b8
leaq 0x6d0(%rsp), %rdi
callq 0x12640
jmp 0xdfc4
leaq 0x6a8(%rsp), %rdi
movl $0xc7, %esi
callq 0x14150
jmp 0xdfd8
leaq 0x6f0(%rsp), %rdi
leaq 0x6d0(%rsp), %rsi
leaq 0x6a8(%rsp), %rdx
callq 0x14060
jmp 0xdff7
leaq 0x7d3d5(%rip), %rdx     # 0x8b3d3
leaq 0x710(%rsp), %rdi
leaq 0x6f0(%rsp), %rsi
callq 0x14010
jmp 0xe015
leaq 0x667(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0xcc80
movq 0xb0(%rsp), %rdx
leaq 0x7d3a0(%rip), %rsi     # 0x8b3d9
leaq 0x668(%rsp), %rdi
callq 0x12640
jmp 0xe048
leaq 0x7dc25(%rip), %rdx     # 0x8bc74
leaq 0x688(%rsp), %rdi
leaq 0x668(%rsp), %rsi
callq 0x14010
jmp 0xe066
leaq 0x730(%rsp), %rdi
leaq 0x710(%rsp), %rsi
leaq 0x688(%rsp), %rdx
callq 0x14060
jmp 0xe085
leaq 0x7d3b2(%rip), %rdx     # 0x8b43e
leaq 0x750(%rsp), %rdi
leaq 0x730(%rsp), %rsi
callq 0x14010
jmp 0xe0a3
leaq 0x750(%rsp), %rdi
callq 0x16bd0
jmp 0xe0b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe1fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe1ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe1e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe1d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe1b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe1ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe19f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe192
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
leaq 0x750(%rsp), %rdi
callq 0xce28
leaq 0x730(%rsp), %rdi
callq 0xce28
leaq 0x688(%rsp), %rdi
callq 0xce28
leaq 0x668(%rsp), %rdi
callq 0xce28
leaq 0x667(%rsp), %rdi
callq 0xc740
leaq 0x710(%rsp), %rdi
callq 0xce28
leaq 0x6f0(%rsp), %rdi
callq 0xce28
leaq 0x6a8(%rsp), %rdi
callq 0xce28
leaq 0x6d0(%rsp), %rdi
callq 0xce28
leaq 0x6cf(%rsp), %rdi
callq 0xc740
jmp 0xe61d
movl $0x1, %edi
callq 0xc870
movsbl 0x997(%rsp), %eax
cmpl $0x2b, %eax
sete %al
andb $0x1, %al
movb %al, 0x9a8(%rsp)
leaq 0x9b0(%rsp), %rsi
leaq 0x9f0(%rsp), %rdi
callq 0xc8e0
jmp 0xe244
leaq 0xdf8(%rsp), %rax
movq %rax, 0x98(%rsp)
leaq 0x9f0(%rsp), %rdi
callq 0xcc40
movq %rdx, 0xa0(%rsp)
movq %rax, 0xa8(%rsp)
jmp 0xe273
movq 0xa0(%rsp), %rax
movq 0xa8(%rsp), %rcx
movq %rcx, 0x630(%rsp)
movq %rax, 0x638(%rsp)
leaq 0x630(%rsp), %rdi
callq 0x14290
movq %rax, 0x90(%rsp)
jmp 0xe2aa
movq 0x90(%rsp), %rdx
movq 0x98(%rsp), %rsi
leaq 0x640(%rsp), %rdi
movq $-0x1, %rcx
callq 0xc6e0
jmp 0xe2d0
leaq 0x9d0(%rsp), %rdi
movq %rdi, 0x88(%rsp)
leaq 0x640(%rsp), %rsi
movq %rsi, 0x80(%rsp)
callq 0xc890
movq 0x80(%rsp), %rdi
callq 0xce28
movq 0x88(%rsp), %rdi
callq 0x142a0
jmp 0xe311
callq 0xc090
movl $0x0, (%rax)
movzbl 0xe96(%rsp), %eax
andl $0x1, %eax
movl %eax, 0x78(%rsp)
leaq 0x998(%rsp), %rdi
callq 0xed90
movb %al, 0x7f(%rsp)
jmp 0xe33e
movl 0x78(%rsp), %eax
movb 0x7f(%rsp), %cl
xorb $-0x1, %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0xe5db
callq 0xc860
cmpl $0x0, %eax
jne 0xe5d1
leaq 0x58f(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0xcc80
movq 0x70(%rsp), %rdx
leaq 0x7d035(%rip), %rsi     # 0x8b3b8
leaq 0x590(%rsp), %rdi
callq 0x12640
jmp 0xe392
leaq 0x568(%rsp), %rdi
movl $0xcd, %esi
callq 0x14150
jmp 0xe3a6
leaq 0x5b0(%rsp), %rdi
leaq 0x590(%rsp), %rsi
leaq 0x568(%rsp), %rdx
callq 0x14060
jmp 0xe3c5
leaq 0x7d007(%rip), %rdx     # 0x8b3d3
leaq 0x5d0(%rsp), %rdi
leaq 0x5b0(%rsp), %rsi
callq 0x14010
jmp 0xe3e3
leaq 0x527(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0xcc80
movq 0x68(%rsp), %rdx
leaq 0x7cfd8(%rip), %rsi     # 0x8b3d9
leaq 0x528(%rsp), %rdi
callq 0x12640
jmp 0xe410
leaq 0x7d85d(%rip), %rdx     # 0x8bc74
leaq 0x548(%rsp), %rdi
leaq 0x528(%rsp), %rsi
callq 0x14010
jmp 0xe42e
leaq 0x5f0(%rsp), %rdi
leaq 0x5d0(%rsp), %rsi
leaq 0x548(%rsp), %rdx
callq 0x14060
jmp 0xe44d
leaq 0x7d009(%rip), %rdx     # 0x8b45d
leaq 0x610(%rsp), %rdi
leaq 0x5f0(%rsp), %rsi
callq 0x14010
jmp 0xe46b
leaq 0x610(%rsp), %rdi
callq 0x16bd0
jmp 0xe47a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe5c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe5b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe5a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe59b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe581
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe574
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xe55a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
leaq 0x610(%rsp), %rdi
callq 0xce28
leaq 0x5f0(%rsp), %rdi
callq 0xce28
leaq 0x548(%rsp), %rdi
callq 0xce28
leaq 0x528(%rsp), %rdi
callq 0xce28
leaq 0x527(%rsp), %rdi
callq 0xc740
leaq 0x5d0(%rsp), %rdi
callq 0xce28
leaq 0x5b0(%rsp), %rdi
callq 0xce28
leaq 0x568(%rsp), %rdi
callq 0xce28
leaq 0x590(%rsp), %rdi
callq 0xce28
leaq 0x58f(%rsp), %rdi
callq 0xc740
jmp 0xe61d
movl $0x1, %edi
callq 0xc870
leaq 0xe38(%rsp), %rdi
leaq 0xb70(%rsp), %rsi
callq 0xedb0
movq %rax, 0x60(%rsp)
jmp 0xe5f7
movq 0x60(%rsp), %rdi
leaq 0x998(%rsp), %rsi
callq 0xeea0
jmp 0xe60b
leaq 0x998(%rsp), %rdi
callq 0xeee0
jmp 0xd7d6
leaq 0x998(%rsp), %rdi
callq 0xeee0
jmp 0xe7cd
leaq 0x9f0(%rsp), %rdi
callq 0x142c0
leaq 0xb70(%rsp), %rdi
callq 0xce28
leaq 0xb90(%rsp), %rdi
callq 0x14300
xorl %edi, %edi
callq 0x22a20
movb %al, 0x5f(%rsp)
jmp 0xe663
movb 0x5f(%rsp), %al
testb $0x1, %al
jne 0xe670
jmp 0xe80f
leaq 0xe38(%rsp), %rax
movq %rax, 0x518(%rsp)
movq 0x518(%rsp), %rdi
callq 0xef10
movq %rax, 0x510(%rsp)
movq 0x518(%rsp), %rdi
callq 0xef40
movq %rax, 0x508(%rsp)
leaq 0x510(%rsp), %rdi
leaq 0x508(%rsp), %rsi
callq 0xef70
testb $0x1, %al
jne 0xe6c8
jmp 0xe80d
leaq 0x510(%rsp), %rdi
callq 0xef90
movq %rax, 0x500(%rsp)
movq 0x500(%rsp), %rsi
movq 0xa88a4(%rip), %rdi     # 0xb6f90
callq 0xc620
movq %rax, 0x50(%rsp)
jmp 0xe6f8
movq 0x50(%rsp), %rdi
leaq 0x7d542(%rip), %rsi     # 0x8bc46
callq 0xc690
movq %rax, 0x48(%rsp)
jmp 0xe710
movq 0x48(%rsp), %rdi
movq 0xa8834(%rip), %rsi     # 0xb6f50
callq 0xc700
jmp 0xe723
movq 0x500(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x4f8(%rsp)
movq 0x4f8(%rsp), %rdi
callq 0xefb0
movq %rax, 0x4f0(%rsp)
movq 0x4f8(%rsp), %rdi
callq 0xefe0
movq %rax, 0x4e8(%rsp)
leaq 0x4f0(%rsp), %rdi
leaq 0x4e8(%rsp), %rsi
callq 0xf010
testb $0x1, %al
jne 0xe77c
jmp 0xe7f9
leaq 0x4f0(%rsp), %rdi
callq 0xf050
movq %rax, 0x4e0(%rsp)
movq 0xa87f8(%rip), %rdi     # 0xb6f90
leaq 0x7f3fe(%rip), %rsi     # 0x8db9d
callq 0xc690
jmp 0xe7a6
movq 0x4e0(%rsp), %rdi
movq 0xa87db(%rip), %rsi     # 0xb6f90
callq 0xf060
jmp 0xe7bc
jmp 0xe7be
leaq 0x4f0(%rsp), %rdi
callq 0xf110
jmp 0xe761
leaq 0x9f0(%rsp), %rdi
callq 0x142c0
leaq 0xb70(%rsp), %rdi
callq 0xce28
leaq 0xb90(%rsp), %rdi
callq 0x14300
jmp 0xecf9
jmp 0xe7fb
leaq 0x510(%rsp), %rdi
callq 0xf130
jmp 0xe6aa
jmp 0xe80f
leaq 0xe38(%rsp), %rdi
callq 0xf160
testb $0x1, %al
jne 0xe822
jmp 0xe832
movl $0x1, 0x4dc(%rsp)
jmp 0xecca
movq $0x0, 0x4d0(%rsp)
leaq 0x228(%rsp), %rdi
leaq 0xf10(%rsp), %rsi
xorl %edx, %edx
callq 0x13ee0
jmp 0xe857
leaq 0x208(%rsp), %rdi
callq 0xc9a0
leaq 0x1e8(%rsp), %rdi
callq 0xc9a0
leaq 0x228(%rsp), %rdi
callq 0x155b0
movb %al, 0x47(%rsp)
jmp 0xe884
movb 0x47(%rsp), %al
testb $0x1, %al
jne 0xe891
jmp 0xea6f
leaq 0x490(%rsp), %rdi
callq 0x18910
jmp 0xe8a0
leaq 0x228(%rsp), %rdi
addq $0x268, %rdi            # imm = 0x268
callq 0xcba0
testb $0x1, %al
jne 0xe8ba
jmp 0xe8fc
jmp 0xe871
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
leaq 0x1e8(%rsp), %rdi
callq 0xce28
leaq 0x208(%rsp), %rdi
callq 0xce28
leaq 0x228(%rsp), %rdi
callq 0x14300
jmp 0xecf9
leaq 0x490(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xcde0
movq %rax, 0x38(%rsp)
jmp 0xe914
movq 0x38(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0xea51
leaq 0x208(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
leaq 0xe38(%rsp), %rdx
callq 0xf180
movb %al, 0x37(%rsp)
jmp 0xe948
movb 0x37(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
addq 0x4d0(%rsp), %rax
movq %rax, 0x4d0(%rsp)
movq $0x1, 0x1e0(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x228(%rsp), %rdi
addq $0x268, %rdi            # imm = 0x268
callq 0xc4f0
movq 0x28(%rsp), %rcx
movq %rax, %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, 0x36(%rsp)
jae 0xe9d6
leaq 0x490(%rsp), %rdi
movq 0x1e0(%rsp), %rsi
callq 0xcde0
movq %rax, 0x20(%rsp)
jmp 0xe9bd
movq 0x20(%rsp), %rax
movsbl (%rax), %edi
callq 0xc0c0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, 0x36(%rsp)
movb 0x36(%rsp), %al
testb $0x1, %al
jne 0xe9e0
jmp 0xe9f9
movq 0x1e0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x1e0(%rsp)
jmp 0xe96d
leaq 0x490(%rsp), %rsi
movq 0x1e0(%rsp), %rcx
decq %rcx
leaq 0x1c0(%rsp), %rdi
movl $0x1, %edx
callq 0xc6e0
jmp 0xea20
leaq 0x208(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0xc890
leaq 0x1c0(%rsp), %rdi
callq 0xce28
leaq 0x1e8(%rsp), %rdi
callq 0xc930
jmp 0xea6a
leaq 0x490(%rsp), %rsi
leaq 0x1e8(%rsp), %rdi
callq 0xc8f0
jmp 0xea68
jmp 0xea6a
jmp 0xe871
leaq 0x208(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
leaq 0xe38(%rsp), %rdx
callq 0xf180
movb %al, 0x1f(%rsp)
jmp 0xea92
movb 0x1f(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
addq 0x4d0(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x1e8(%rsp), %rdi
callq 0xce28
leaq 0x208(%rsp), %rdi
callq 0xce28
leaq 0x228(%rsp), %rdi
callq 0x14300
movq 0x4d0(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0xe38(%rsp), %rdi
callq 0x10280
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
je 0xecbf
movb $0x1, 0x11f(%rsp)
movl $0x10, %edi
callq 0xc380
movq %rax, 0x8(%rsp)
leaq 0xe38(%rsp), %rdi
callq 0x10280
movq %rax, %rsi
leaq 0x140(%rsp), %rdi
callq 0x143a0
jmp 0xeb33
leaq 0x7c939(%rip), %rsi     # 0x8b473
leaq 0x160(%rsp), %rdi
leaq 0x140(%rsp), %rdx
callq 0x14350
jmp 0xeb51
leaq 0x7c933(%rip), %rdx     # 0x8b48b
leaq 0x180(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x14010
jmp 0xeb6f
movq 0x4d0(%rsp), %rsi
leaq 0x120(%rsp), %rdi
callq 0x143a0
jmp 0xeb86
leaq 0x1a0(%rsp), %rdi
leaq 0x180(%rsp), %rsi
leaq 0x120(%rsp), %rdx
callq 0x14060
jmp 0xeba5
movq 0x8(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0xcb40
jmp 0xebb9
movq 0x8(%rsp), %rdi
movb $0x0, 0x11f(%rsp)
movq 0xa841b(%rip), %rsi     # 0xb6fe8
movq 0xa839c(%rip), %rdx     # 0xb6f70
callq 0xcc10
jmp 0xed2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xeca7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xec9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xec8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xec80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
jmp 0xec73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xee0(%rsp)
movl %eax, 0xedc(%rsp)
leaq 0x1a0(%rsp), %rdi
callq 0xce28
leaq 0x120(%rsp), %rdi
callq 0xce28
leaq 0x180(%rsp), %rdi
callq 0xce28
leaq 0x160(%rsp), %rdi
callq 0xce28
leaq 0x140(%rsp), %rdi
callq 0xce28
testb $0x1, 0x11f(%rsp)
jne 0xecb3
jmp 0xecbd
movq 0x8(%rsp), %rdi
callq 0xc530
jmp 0xecf9
movl $0x0, 0x4dc(%rsp)
leaq 0xe38(%rsp), %rdi
callq 0x10290
leaq 0xeb8(%rsp), %rdi
callq 0xce28
leaq 0xf10(%rsp), %rdi
callq 0xce28
addq $0xf38, %rsp            # imm = 0xF38
retq
leaq 0xe38(%rsp), %rdi
callq 0x10290
leaq 0xeb8(%rsp), %rdi
callq 0xce28
leaq 0xf10(%rsp), %rdi
callq 0xce28
movq 0xee0(%rsp), %rdi
callq 0xcc70
nopl (%rax)