// File: ncbi[P]amr/stx/fasta_extract.cpp
// Function: (anonymous namespace)::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, Common_sp::Vector<(anonymous namespace)::Segment>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, Common_sp::Vector<(anonymous namespace)::Segment>>>> const&)
bool process (const string &id, 
              string &seq, 
              const map<string/*id*/,Vector<Segment>> &id2segments)
{
  if (id. empty ())
    return false;
  const Vector<Segment>* segments = findPtr (id2segments, id);
  if (! segments)
    return false;
    
  replaceStr (seq, "-", "");
  QC_ASSERT (! seq. empty ());
  
  for (Segment& seg : var_cast (*segments))
  {
    cout << '>' << id;
    if (seg. isDna ())
    {
      QC_ASSERT (seg. start <= seq. size ());
      minimize (seg. stop, seq. size ());
      QC_ASSERT (seg. start < seg. stop);
      cout << ':' << seg. start + 1 << '-' << seg. stop << ' ' << "strand:" << (seg. strand ? '+' : '-');
    }
    cout << ' ' << seg. genesymbol << ' ' << seg. name << endl;
    string seq1 (seq);
    if (seg. isDna ())
    {
      ASSERT (seg. stop <= seq1. size ());
      seq1 = seq1. substr (seg. start, seg. size ());
      if (! seg. strand)
      {
        reverse (seq1);
        for (char &c : seq1)
          c = complementaryNucleotide (c);
      }
    //strLower (seq1);  // Letter case can indicate nucleotide quality
    }    
  //else
    //strUpper (seq1);
    constexpr size_t line_len = 60;  // PAR
    for (size_t i = 0; i < seq1. size (); i += line_len)
      cout << seq1. substr (i, line_len) << endl;
  }
  
  return true;
}

// Assembly:
subq $0x628, %rsp            # imm = 0x628
movq %rdi, 0x618(%rsp)
movq %rsi, 0x610(%rsp)
movq %rdx, 0x608(%rsp)
movq 0x618(%rsp), %rdi
callq 0xcba0
testb $0x1, %al
jne 0xf1b2
jmp 0xf1bf
movb $0x0, 0x627(%rsp)
jmp 0x10261
movq 0x608(%rsp), %rdi
movq 0x618(%rsp), %rsi
callq 0x11ff0
movq %rax, 0x600(%rsp)
cmpq $0x0, 0x600(%rsp)
jne 0xf1f4
movb $0x0, 0x627(%rsp)
jmp 0x10261
movq 0x610(%rsp), %rax
movq %rax, 0xa0(%rsp)
leaq 0x5df(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0xcc80
movq 0xa8(%rsp), %rdx
leaq 0x7e930(%rip), %rsi     # 0x8db58
leaq 0x5e0(%rsp), %rdi
callq 0x12640
jmp 0xf237
leaq 0x5a7(%rsp), %rdi
movq %rdi, 0x98(%rsp)
callq 0xcc80
movq 0x98(%rsp), %rdx
leaq 0x7e505(%rip), %rsi     # 0x8d760
leaq 0x5a8(%rsp), %rdi
callq 0x12640
jmp 0xf26a
movq 0xa0(%rsp), %rdi
leaq 0x5e0(%rsp), %rsi
leaq 0x5a8(%rsp), %rdx
callq 0x18bf0
jmp 0xf289
leaq 0x5a8(%rsp), %rdi
callq 0xce28
leaq 0x5a7(%rsp), %rdi
callq 0xc740
leaq 0x5e0(%rsp), %rdi
callq 0xce28
leaq 0x5df(%rsp), %rdi
callq 0xc740
callq 0xc090
movl $0x0, (%rax)
movq 0x610(%rsp), %rdi
callq 0xcba0
testb $0x1, %al
jne 0xf2de
jmp 0xf5ea
callq 0xc860
cmpl $0x0, %eax
jne 0xf5e0
leaq 0x4ff(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0xcc80
movq 0x90(%rsp), %rdx
leaq 0x7c0a8(%rip), %rsi     # 0x8b3b8
leaq 0x500(%rsp), %rdi
callq 0x12640
jmp 0xf31f
leaq 0x4d8(%rsp), %rdi
movl $0x77, %esi
callq 0x14150
jmp 0xf333
leaq 0x520(%rsp), %rdi
leaq 0x500(%rsp), %rsi
leaq 0x4d8(%rsp), %rdx
callq 0x14060
jmp 0xf352
leaq 0x7c07a(%rip), %rdx     # 0x8b3d3
leaq 0x540(%rsp), %rdi
leaq 0x520(%rsp), %rsi
callq 0x14010
jmp 0xf370
leaq 0x497(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0xcc80
movq 0x88(%rsp), %rdx
leaq 0x7c123(%rip), %rsi     # 0x8b4b7
leaq 0x498(%rsp), %rdi
callq 0x12640
jmp 0xf3a3
leaq 0x7c8ca(%rip), %rdx     # 0x8bc74
leaq 0x4b8(%rsp), %rdi
leaq 0x498(%rsp), %rsi
callq 0x14010
jmp 0xf3c1
leaq 0x560(%rsp), %rdi
leaq 0x540(%rsp), %rsi
leaq 0x4b8(%rsp), %rdx
callq 0x14060
jmp 0xf3e0
leaq 0x7c134(%rip), %rdx     # 0x8b51b
leaq 0x580(%rsp), %rdi
leaq 0x560(%rsp), %rsi
callq 0x14010
jmp 0xf3fe
leaq 0x580(%rsp), %rdi
callq 0x16bd0
jmp 0xf40d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf474
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf45a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
leaq 0x5a8(%rsp), %rdi
callq 0xce28
leaq 0x5a7(%rsp), %rdi
callq 0xc740
leaq 0x5e0(%rsp), %rdi
callq 0xce28
leaq 0x5df(%rsp), %rdi
callq 0xc740
jmp 0x10272
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf5ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf5c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf5b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf5a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf58d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf580
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf573
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf566
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
leaq 0x580(%rsp), %rdi
callq 0xce28
leaq 0x560(%rsp), %rdi
callq 0xce28
leaq 0x4b8(%rsp), %rdi
callq 0xce28
leaq 0x498(%rsp), %rdi
callq 0xce28
leaq 0x497(%rsp), %rdi
callq 0xc740
leaq 0x540(%rsp), %rdi
callq 0xce28
leaq 0x520(%rsp), %rdi
callq 0xce28
leaq 0x4d8(%rsp), %rdi
callq 0xce28
leaq 0x500(%rsp), %rdi
callq 0xce28
leaq 0x4ff(%rsp), %rdi
callq 0xc740
jmp 0x10272
movl $0x1, %edi
callq 0xc870
movq 0x600(%rsp), %rdi
callq 0x12070
movq %rax, 0x488(%rsp)
movq 0x488(%rsp), %rdi
callq 0x11b00
movq %rax, 0x480(%rsp)
movq 0x488(%rsp), %rdi
callq 0x118c0
movq %rax, 0x478(%rsp)
leaq 0x480(%rsp), %rdi
leaq 0x478(%rsp), %rsi
callq 0x12080
testb $0x1, %al
jne 0xf647
jmp 0x10259
leaq 0x480(%rsp), %rdi
callq 0x11f60
movq %rax, 0x470(%rsp)
movq 0xa792d(%rip), %rdi     # 0xb6f90
movl $0x3e, %esi
callq 0xc810
movq %rax, %rdi
movq 0x618(%rsp), %rsi
callq 0xc620
movq 0x470(%rsp), %rdi
callq 0xed90
testb $0x1, %al
jne 0xf693
jmp 0xfcd2
callq 0xc090
movl $0x0, (%rax)
movq 0x470(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x80(%rsp)
movq 0x610(%rsp), %rdi
callq 0xc4f0
movq %rax, %rcx
movq 0x80(%rsp), %rax
cmpq %rcx, %rax
jbe 0xf959
callq 0xc860
cmpl $0x0, %eax
jne 0xf94f
leaq 0x3cf(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0xcc80
movq 0x78(%rsp), %rdx
leaq 0x7bcba(%rip), %rsi     # 0x8b3b8
leaq 0x3d0(%rsp), %rdi
callq 0x12640
jmp 0xf70d
leaq 0x3a8(%rsp), %rdi
movl $0x7e, %esi
callq 0x14150
jmp 0xf721
leaq 0x3f0(%rsp), %rdi
leaq 0x3d0(%rsp), %rsi
leaq 0x3a8(%rsp), %rdx
callq 0x14060
jmp 0xf740
leaq 0x7bc8c(%rip), %rdx     # 0x8b3d3
leaq 0x410(%rsp), %rdi
leaq 0x3f0(%rsp), %rsi
callq 0x14010
jmp 0xf75e
leaq 0x367(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0xcc80
movq 0x70(%rsp), %rdx
leaq 0x7bd3b(%rip), %rsi     # 0x8b4b7
leaq 0x368(%rsp), %rdi
callq 0x12640
jmp 0xf78b
leaq 0x7c4e2(%rip), %rdx     # 0x8bc74
leaq 0x388(%rsp), %rdi
leaq 0x368(%rsp), %rsi
callq 0x14010
jmp 0xf7a9
leaq 0x430(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x388(%rsp), %rdx
callq 0x14060
jmp 0xf7c8
leaq 0x7bd5c(%rip), %rdx     # 0x8b52b
leaq 0x450(%rsp), %rdi
leaq 0x430(%rsp), %rsi
callq 0x14010
jmp 0xf7e6
leaq 0x450(%rsp), %rdi
callq 0x16bd0
jmp 0xf7f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf93d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf930
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf923
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf916
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf8fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf8ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf8e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xf8d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
leaq 0x450(%rsp), %rdi
callq 0xce28
leaq 0x430(%rsp), %rdi
callq 0xce28
leaq 0x388(%rsp), %rdi
callq 0xce28
leaq 0x368(%rsp), %rdi
callq 0xce28
leaq 0x367(%rsp), %rdi
callq 0xc740
leaq 0x410(%rsp), %rdi
callq 0xce28
leaq 0x3f0(%rsp), %rdi
callq 0xce28
leaq 0x3a8(%rsp), %rdi
callq 0xce28
leaq 0x3d0(%rsp), %rdi
callq 0xce28
leaq 0x3cf(%rsp), %rdi
callq 0xc740
jmp 0x10272
movl $0x1, %edi
callq 0xc870
movq 0x470(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x610(%rsp), %rdi
callq 0xc4f0
movq 0x68(%rsp), %rdi
movq %rax, %rsi
callq 0x14c50
callq 0xc090
movl $0x0, (%rax)
movq 0x470(%rsp), %rax
movq (%rax), %rax
movq 0x470(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jb 0xfc33
callq 0xc860
cmpl $0x0, %eax
jne 0xfc29
leaq 0x2bf(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0xcc80
movq 0x60(%rsp), %rdx
leaq 0x7b9e0(%rip), %rsi     # 0x8b3b8
leaq 0x2c0(%rsp), %rdi
callq 0x12640
jmp 0xf9e7
leaq 0x298(%rsp), %rdi
movl $0x80, %esi
callq 0x14150
jmp 0xf9fb
leaq 0x2e0(%rsp), %rdi
leaq 0x2c0(%rsp), %rsi
leaq 0x298(%rsp), %rdx
callq 0x14060
jmp 0xfa1a
leaq 0x7b9b2(%rip), %rdx     # 0x8b3d3
leaq 0x300(%rsp), %rdi
leaq 0x2e0(%rsp), %rsi
callq 0x14010
jmp 0xfa38
leaq 0x257(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xcc80
movq 0x58(%rsp), %rdx
leaq 0x7ba61(%rip), %rsi     # 0x8b4b7
leaq 0x258(%rsp), %rdi
callq 0x12640
jmp 0xfa65
leaq 0x7c208(%rip), %rdx     # 0x8bc74
leaq 0x278(%rsp), %rdi
leaq 0x258(%rsp), %rsi
callq 0x14010
jmp 0xfa83
leaq 0x320(%rsp), %rdi
leaq 0x300(%rsp), %rsi
leaq 0x278(%rsp), %rdx
callq 0x14060
jmp 0xfaa2
leaq 0x7ba9d(%rip), %rdx     # 0x8b546
leaq 0x340(%rsp), %rdi
leaq 0x320(%rsp), %rsi
callq 0x14010
jmp 0xfac0
leaq 0x340(%rsp), %rdi
callq 0x16bd0
jmp 0xfacf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xfc17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xfc0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xfbfd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xfbf0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xfbd6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xfbc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xfbbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xfbaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
leaq 0x340(%rsp), %rdi
callq 0xce28
leaq 0x320(%rsp), %rdi
callq 0xce28
leaq 0x278(%rsp), %rdi
callq 0xce28
leaq 0x258(%rsp), %rdi
callq 0xce28
leaq 0x257(%rsp), %rdi
callq 0xc740
leaq 0x300(%rsp), %rdi
callq 0xce28
leaq 0x2e0(%rsp), %rdi
callq 0xce28
leaq 0x298(%rsp), %rdi
callq 0xce28
leaq 0x2c0(%rsp), %rdi
callq 0xce28
leaq 0x2bf(%rsp), %rdi
callq 0xc740
jmp 0x10272
movl $0x1, %edi
callq 0xc870
movq 0xa7356(%rip), %rdi     # 0xb6f90
movl $0x3a, %esi
callq 0xc810
movq %rax, %rdi
movq 0x470(%rsp), %rax
movq (%rax), %rsi
addq $0x1, %rsi
callq 0xc150
movq %rax, %rdi
movl $0x2d, %esi
callq 0xc810
movq %rax, %rdi
movq 0x470(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xc150
movq %rax, %rdi
movl $0x20, %esi
callq 0xc810
movq %rax, %rdi
leaq 0x7b8ca(%rip), %rsi     # 0x8b55d
callq 0xc690
movq %rax, 0x48(%rsp)
movq 0x470(%rsp), %rax
movb 0x10(%rax), %cl
movb $0x2b, %al
movb $0x2d, %dl
movb %dl, 0x56(%rsp)
testb $0x1, %cl
movb %al, 0x57(%rsp)
jne 0xfcc1
movb 0x56(%rsp), %al
movb %al, 0x57(%rsp)
movq 0x48(%rsp), %rdi
movb 0x57(%rsp), %al
movsbl %al, %esi
callq 0xc810
movq 0xa72b7(%rip), %rdi     # 0xb6f90
movl $0x20, %esi
callq 0xc810
movq %rax, %rdi
movq 0x470(%rsp), %rsi
addq $0x18, %rsi
callq 0xc620
movq %rax, %rdi
movl $0x20, %esi
callq 0xc810
movq %rax, %rdi
movq 0x470(%rsp), %rsi
addq $0x38, %rsi
callq 0xc620
movq %rax, %rdi
movq 0xa722e(%rip), %rsi     # 0xb6f50
callq 0xc700
movq 0x610(%rsp), %rsi
leaq 0x230(%rsp), %rdi
callq 0xc300
movq 0x470(%rsp), %rdi
callq 0xed90
testb $0x1, %al
jne 0xfd52
jmp 0x1014d
callq 0xc090
movl $0x0, (%rax)
movq 0x470(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
leaq 0x230(%rsp), %rdi
callq 0xc4f0
movq %rax, %rcx
movq 0x40(%rsp), %rax
cmpq %rcx, %rax
jbe 0x10013
callq 0xc860
cmpl $0x0, %eax
jne 0x10009
leaq 0x18f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xcc80
movq 0x38(%rsp), %rdx
leaq 0x7b600(%rip), %rsi     # 0x8b3b8
leaq 0x190(%rsp), %rdi
callq 0x12640
jmp 0xfdc7
leaq 0x168(%rsp), %rdi
movl $0x87, %esi
callq 0x14150
jmp 0xfddb
leaq 0x1b0(%rsp), %rdi
leaq 0x190(%rsp), %rsi
leaq 0x168(%rsp), %rdx
callq 0x14060
jmp 0xfdfa
leaq 0x7b5d2(%rip), %rdx     # 0x8b3d3
leaq 0x1d0(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x14010
jmp 0xfe18
leaq 0x127(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xcc80
movq 0x30(%rsp), %rdx
leaq 0x7b681(%rip), %rsi     # 0x8b4b7
leaq 0x128(%rsp), %rdi
callq 0x12640
jmp 0xfe45
leaq 0x7be28(%rip), %rdx     # 0x8bc74
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0x14010
jmp 0xfe63
leaq 0x1f0(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
leaq 0x148(%rsp), %rdx
callq 0x14060
jmp 0xfe82
leaq 0x7b6dc(%rip), %rdx     # 0x8b565
leaq 0x210(%rsp), %rdi
leaq 0x1f0(%rsp), %rsi
callq 0x14010
jmp 0xfea0
leaq 0x210(%rsp), %rdi
callq 0x16bd0
jmp 0xfeaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xfff7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xffea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xffdd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xffd0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xffb6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xffa9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xff9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0xff8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
leaq 0x210(%rsp), %rdi
callq 0xce28
leaq 0x1f0(%rsp), %rdi
callq 0xce28
leaq 0x148(%rsp), %rdi
callq 0xce28
leaq 0x128(%rsp), %rdi
callq 0xce28
leaq 0x127(%rsp), %rdi
callq 0xc740
leaq 0x1d0(%rsp), %rdi
callq 0xce28
leaq 0x1b0(%rsp), %rdi
callq 0xce28
leaq 0x168(%rsp), %rdi
callq 0xce28
leaq 0x190(%rsp), %rdi
callq 0xce28
leaq 0x18f(%rsp), %rdi
callq 0xc740
jmp 0x1024a
movl $0x1, %edi
callq 0xc870
movq 0x470(%rsp), %rdi
movq (%rdi), %rax
movq %rax, 0x20(%rsp)
callq 0x120c0
movq %rax, 0x28(%rsp)
jmp 0x1002f
movq 0x28(%rsp), %rcx
movq 0x20(%rsp), %rdx
leaq 0x100(%rsp), %rdi
leaq 0x230(%rsp), %rsi
callq 0xc6e0
jmp 0x10050
leaq 0x230(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0xc890
leaq 0x100(%rsp), %rdi
callq 0xce28
movq 0x470(%rsp), %rax
testb $0x1, 0x10(%rax)
jne 0x1014b
leaq 0x230(%rsp), %rdi
callq 0x1b360
jmp 0x10093
leaq 0x230(%rsp), %rax
movq %rax, 0xf8(%rsp)
movq 0xf8(%rsp), %rdi
callq 0xc600
movq %rax, 0xf0(%rsp)
movq 0xf8(%rsp), %rdi
callq 0xc420
movq %rax, 0xe8(%rsp)
leaq 0xf0(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x14c90
testb $0x1, %al
jne 0x100e8
jmp 0x10149
leaq 0xf0(%rsp), %rdi
callq 0x14cd0
movq %rax, 0xe0(%rsp)
movq 0xe0(%rsp), %rax
movsbl (%rax), %edi
callq 0x120e0
movb %al, 0x1f(%rsp)
jmp 0x10113
movb 0x1f(%rsp), %cl
movq 0xe0(%rsp), %rax
movb %cl, (%rax)
leaq 0xf0(%rsp), %rdi
callq 0x14ce0
jmp 0x100cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
jmp 0x1024a
jmp 0x1014b
jmp 0x1014d
movq $0x3c, 0xd8(%rsp)
movq $0x0, 0xd0(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0x230(%rsp), %rdi
callq 0xc4f0
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
jae 0x1022b
movq 0xd0(%rsp), %rdx
leaq 0xb0(%rsp), %rdi
leaq 0x230(%rsp), %rsi
movl $0x3c, %ecx
callq 0xc6e0
jmp 0x101b4
movq 0xa6dd5(%rip), %rdi     # 0xb6f90
leaq 0xb0(%rsp), %rsi
callq 0xc620
movq %rax, 0x8(%rsp)
jmp 0x101cf
movq 0x8(%rsp), %rdi
movq 0xa6d75(%rip), %rsi     # 0xb6f50
callq 0xc700
jmp 0x101e2
leaq 0xb0(%rsp), %rdi
callq 0xce28
movq 0xd0(%rsp), %rax
addq $0x3c, %rax
movq %rax, 0xd0(%rsp)
jmp 0x10165
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5d0(%rsp)
movl %eax, 0x5cc(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0xce28
jmp 0x1024a
leaq 0x230(%rsp), %rdi
callq 0xce28
leaq 0x480(%rsp), %rdi
callq 0x122c0
jmp 0xf629
leaq 0x230(%rsp), %rdi
callq 0xce28
jmp 0x10272
movb $0x1, 0x627(%rsp)
movb 0x627(%rsp), %al
andb $0x1, %al
addq $0x628, %rsp            # imm = 0x628
retq
movq 0x5d0(%rsp), %rdi
callq 0xcc70
nop