// File: ncbi[P]amr/tsv.cpp
// Function: Common_sp::TextTable::TextTable(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>> const&, bool, unsigned int)
TextTable::TextTable (const string &tableFName,
                      const string &columnSynonymsFName,
                      bool headerP,
                      uint displayPeriod)
: Named (tableFName)
{  
  {
    LineInput f (tableFName, displayPeriod);
    bool dataExists = true;
    // header
    while (f. nextLine ())
    {
      if (verbose ())
        cerr << f. lineNum << endl;
      trimTrailing (f. line);
      if (f. line. empty ())
        continue;
      const bool thisPound = (f. line. front () == '#');
      if (thisPound)
      {
        pound = true;
        f. line. erase (0, 1);
      }
      if (f. line. empty ())
        continue;
      if (header. empty () || thisPound)
      {
        header. clear ();
        StringVector h (f. line, '\t', true);
        for (string& s : h)
          header << std::move (Header (std::move (s)));
      }
      ASSERT (! header. empty ());
      if (headerP)
      {
        if (! thisPound)
        {
          if (! pound)
            dataExists = f. nextLine ();
          break;
        }
      }
      else
      {
        FFOR (size_t, i, header. size ())
          header [i]. name = to_string (i + 1);
        dataExists = true;
        pound = true;
        break;
      }
    }
    if (header. empty ())
      throw Error (*this, "Cannot read the table header");
    // dataExists <=> f.line is valid
    // rows[]
    while (dataExists)
    {
      trimTrailing (f. line);
      if (! f. line. empty ())
      {
        StringVector row (f. line, '\t', true);
        FFOR_START (size_t, i, row. size (), header. size ())
          row << noString;        
        rows << std::move (row);
        ASSERT (row. empty ());
      }
      dataExists = f. nextLine ();
    }
  }
  
  if (! columnSynonymsFName. empty ())
  {
    LineInput colF (columnSynonymsFName);
    string mainSyn;
    while (colF. nextLine ())
    {
      trim (colF. line);
      const string& syn = colF. line;
      if (syn. empty ())
        mainSyn. clear ();
      else
      {
        if (mainSyn. empty ())
          mainSyn = syn;
        else
          if (mainSyn != syn)
          {
            const ColNum i = col2num_ (syn);
            if (i != no_index)
            {
              if (hasColumn (mainSyn))
                throw runtime_error ("Table " + strQuote (name) + ": Column " + strQuote (mainSyn) + " already exists");
              else
                header [i]. name = mainSyn;
            }
          }
      }
    }
  }
  
  setHeader ();
}

// Assembly:
subq $0xa78, %rsp            # imm = 0xA78
movb %cl, %al
movq %rdi, 0xa70(%rsp)
movq %rsi, 0xa68(%rsp)
movq %rdx, 0xa60(%rsp)
andb $0x1, %al
movb %al, 0xa5f(%rsp)
movl %r8d, 0xa58(%rsp)
movq 0xa70(%rsp), %rdi
movq %rdi, 0x88(%rsp)
movq 0xa68(%rsp), %rsi
callq 0x76560
movq 0x88(%rsp), %rdi
leaq 0x4f052(%rip), %rax     # 0x105bc0
movq %rax, (%rdi)
movb $0x0, 0x28(%rdi)
movb $0x1, 0x29(%rdi)
addq $0x30, %rdi
movq %rdi, 0x80(%rsp)
callq 0xbfd10
movq 0x88(%rsp), %rdi
addq $0x50, %rdi
movq %rdi, 0x90(%rsp)
callq 0xbfd40
movq 0xa68(%rsp), %rsi
movl 0xa58(%rsp), %edx
leaq 0x7b0(%rsp), %rdi
callq 0x2f200
jmp 0xb6bc1
movb $0x1, 0x7a3(%rsp)
leaq 0x7b0(%rsp), %rdi
callq 0x3d390
movb %al, 0x7f(%rsp)
jmp 0xb6bdc
movb 0x7f(%rsp), %al
testb $0x1, %al
jne 0xb6be9
jmp 0xb7268
xorl %edi, %edi
callq 0x4a800
movb %al, 0x7e(%rsp)
jmp 0xb6bf6
movb 0x7e(%rsp), %al
testb $0x1, %al
jne 0xb6c00
jmp 0xb6c61
movl 0xa10(%rsp), %esi
movq 0x4f3da(%rip), %rdi     # 0x105fe8
callq 0xc9d0
movq %rax, 0x70(%rsp)
jmp 0xb6c1a
movq 0x70(%rsp), %rdi
movq 0x4f31a(%rip), %rsi     # 0x105f40
callq 0xc760
jmp 0xb6c2d
jmp 0xb6c61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7b78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7800
leaq 0xa18(%rsp), %rdi
callq 0x406f0
jmp 0xb6c70
leaq 0x7b0(%rsp), %rdi
addq $0x268, %rdi            # imm = 0x268
callq 0xcc10
testb $0x1, %al
jne 0xb6c8a
jmp 0xb6c8f
jmp 0xb6bc9
leaq 0x7b0(%rsp), %rdi
addq $0x268, %rdi            # imm = 0x268
callq 0xc1a0
movsbl (%rax), %eax
cmpl $0x23, %eax
sete %al
andb $0x1, %al
movb %al, 0x7a2(%rsp)
testb $0x1, 0x7a2(%rsp)
je 0xb6ce5
movq 0x88(%rsp), %rax
movb $0x1, 0x28(%rax)
leaq 0xa18(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0xc150
jmp 0xb6ce3
jmp 0xb6ce5
leaq 0x7b0(%rsp), %rdi
addq $0x268, %rdi            # imm = 0x268
callq 0xcc10
testb $0x1, %al
jne 0xb6cff
jmp 0xb6d04
jmp 0xb6bc9
movq 0x88(%rsp), %rdi
addq $0x30, %rdi
callq 0xbfd70
testb $0x1, %al
jne 0xb6d27
testb $0x1, 0x7a2(%rsp)
je 0xb6e7e
movq 0x88(%rsp), %rdi
addq $0x30, %rdi
callq 0xbfdc0
leaq 0xa18(%rsp), %rsi
leaq 0x780(%rsp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x4dce0
jmp 0xb6d59
leaq 0x780(%rsp), %rax
movq %rax, 0x778(%rsp)
movq 0x778(%rsp), %rdi
callq 0x2eff0
movq %rax, 0x770(%rsp)
movq 0x778(%rsp), %rdi
callq 0x2f020
movq %rax, 0x768(%rsp)
leaq 0x770(%rsp), %rdi
leaq 0x768(%rsp), %rsi
callq 0x2f050
testb $0x1, %al
jne 0xb6db1
jmp 0xb6e5d
leaq 0x770(%rsp), %rdi
callq 0x2f090
movq %rax, %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0x760(%rsp)
addq $0x30, %rax
movq %rax, 0x68(%rsp)
movq 0x760(%rsp), %rsi
leaq 0x6e0(%rsp), %rdi
callq 0xbfe20
jmp 0xb6df1
movq 0x68(%rsp), %rdi
leaq 0x6e0(%rsp), %rsi
callq 0xbfde0
jmp 0xb6e05
leaq 0x6e0(%rsp), %rdi
callq 0xbfe80
leaq 0x770(%rsp), %rdi
callq 0x2f0f0
jmp 0xb6d93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb6e6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
leaq 0x6e0(%rsp), %rdi
callq 0xbfe80
jmp 0xb6e6c
leaq 0x780(%rsp), %rdi
callq 0x2eef0
jmp 0xb6e7e
leaq 0x780(%rsp), %rdi
callq 0x2eef0
jmp 0xb7800
callq 0xc090
movq 0x88(%rsp), %rdi
movl $0x0, (%rax)
addq $0x30, %rdi
callq 0xbfd70
testb $0x1, %al
jne 0xb6ea3
jmp 0xb712a
callq 0xc8c0
cmpl $0x0, %eax
jne 0xb7120
leaq 0x63f(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0xcd00
movq 0x60(%rsp), %rdx
leaq 0x1a7fa(%rip), %rsi     # 0xd16c9
leaq 0x640(%rsp), %rdi
callq 0x29fd0
jmp 0xb6ede
leaq 0x618(%rsp), %rdi
movl $0xa6, %esi
callq 0x2ded0
jmp 0xb6ef2
leaq 0x660(%rsp), %rdi
leaq 0x640(%rsp), %rsi
leaq 0x618(%rsp), %rdx
callq 0x2dde0
jmp 0xb6f11
leaq 0x14c89(%rip), %rdx     # 0xcbba1
leaq 0x680(%rsp), %rdi
leaq 0x660(%rsp), %rsi
callq 0x2a2f0
jmp 0xb6f2f
leaq 0x5d7(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xcd00
movq 0x58(%rsp), %rdx
leaq 0x1a7c3(%rip), %rsi     # 0xd1710
leaq 0x5d8(%rsp), %rdi
callq 0x29fd0
jmp 0xb6f5c
leaq 0x16ab3(%rip), %rdx     # 0xcda16
leaq 0x5f8(%rsp), %rdi
leaq 0x5d8(%rsp), %rsi
callq 0x2a2f0
jmp 0xb6f7a
leaq 0x6a0(%rsp), %rdi
leaq 0x680(%rsp), %rsi
leaq 0x5f8(%rsp), %rdx
callq 0x2dde0
jmp 0xb6f99
leaq 0x1a7bc(%rip), %rdx     # 0xd175c
leaq 0x6c0(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
callq 0x2a2f0
jmp 0xb6fb7
leaq 0x6c0(%rsp), %rdi
callq 0x3e9b0
jmp 0xb6fc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb710e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7101
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb70f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb70e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb70cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb70c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb70b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb70a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
leaq 0x6c0(%rsp), %rdi
callq 0xce98
leaq 0x6a0(%rsp), %rdi
callq 0xce98
leaq 0x5f8(%rsp), %rdi
callq 0xce98
leaq 0x5d8(%rsp), %rdi
callq 0xce98
leaq 0x5d7(%rsp), %rdi
callq 0xc7a0
leaq 0x680(%rsp), %rdi
callq 0xce98
leaq 0x660(%rsp), %rdi
callq 0xce98
leaq 0x618(%rsp), %rdi
callq 0xce98
leaq 0x640(%rsp), %rdi
callq 0xce98
leaq 0x63f(%rsp), %rdi
callq 0xc7a0
jmp 0xb7800
movl $0x1, %edi
callq 0xc8d0
testb $0x1, 0xa5f(%rsp)
je 0xb7176
testb $0x1, 0x7a2(%rsp)
jne 0xb7171
movq 0x88(%rsp), %rax
testb $0x1, 0x28(%rax)
jne 0xb716c
leaq 0x7b0(%rsp), %rdi
callq 0x3d390
movb %al, 0x57(%rsp)
jmp 0xb715f
movb 0x57(%rsp), %al
andb $0x1, %al
movb %al, 0x7a3(%rsp)
jmp 0xb7268
jmp 0xb7263
movq 0x88(%rsp), %rdi
movq $0x0, 0x5c8(%rsp)
addq $0x30, %rdi
callq 0xbfec0
movq %rax, 0x5c0(%rsp)
movq 0x5c8(%rsp), %rax
cmpq 0x5c0(%rsp), %rax
jae 0xb724d
movq 0x5c8(%rsp), %rsi
incq %rsi
leaq 0x5a0(%rsp), %rdi
callq 0x2bf10
jmp 0xb71cb
movq 0x88(%rsp), %rdi
addq $0x30, %rdi
movq 0x5c8(%rsp), %rsi
callq 0xbfee0
movq %rax, 0x48(%rsp)
jmp 0xb71eb
movq 0x48(%rsp), %rdi
addq $0x8, %rdi
leaq 0x5a0(%rsp), %rsi
callq 0xc8f0
leaq 0x5a0(%rsp), %rdi
callq 0xce98
movq 0x5c8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x5c8(%rsp)
jmp 0xb719b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
leaq 0x5a0(%rsp), %rdi
callq 0xce98
jmp 0xb7800
movq 0x88(%rsp), %rax
movb $0x1, 0x7a3(%rsp)
movb $0x1, 0x28(%rax)
jmp 0xb7268
jmp 0xb6bc9
movq 0x88(%rsp), %rdi
addq $0x30, %rdi
callq 0xbfd70
testb $0x1, %al
jne 0xb7282
jmp 0xb7366
movb $0x1, 0x57e(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, 0x38(%rsp)
leaq 0x57f(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xcd00
movq 0x40(%rsp), %rdx
leaq 0x1a4b8(%rip), %rsi     # 0xd176f
leaq 0x580(%rsp), %rdi
callq 0x29fd0
jmp 0xb72c6
movq 0x88(%rsp), %rsi
movq 0x38(%rsp), %rdi
leaq 0x580(%rsp), %rdx
callq 0x3a690
jmp 0xb72e2
movq 0x38(%rsp), %rdi
movb $0x0, 0x57e(%rsp)
leaq 0x4d60a(%rip), %rsi     # 0x104900
leaq -0x7cb9d(%rip), %rdx    # 0x3a760
callq 0xcc80
jmp 0xb7bac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb733e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
leaq 0x580(%rsp), %rdi
callq 0xce98
leaq 0x57f(%rsp), %rdi
callq 0xc7a0
testb $0x1, 0x57e(%rsp)
jne 0xb7357
jmp 0xb7361
movq 0x38(%rsp), %rdi
callq 0xc580
jmp 0xb7800
jmp 0xb7368
testb $0x1, 0x7a3(%rsp)
je 0xb774e
leaq 0xa18(%rsp), %rdi
callq 0x406f0
jmp 0xb7385
leaq 0x7b0(%rsp), %rdi
addq $0x268, %rdi            # imm = 0x268
callq 0xcc10
testb $0x1, %al
jne 0xb7729
leaq 0xa18(%rsp), %rsi
leaq 0x558(%rsp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x4dce0
jmp 0xb73c2
leaq 0x558(%rsp), %rdi
callq 0x2f390
movq 0x88(%rsp), %rdi
movq %rax, 0x550(%rsp)
addq $0x30, %rdi
callq 0xbfec0
movq %rax, 0x548(%rsp)
movq 0x550(%rsp), %rax
cmpq 0x548(%rsp), %rax
jae 0xb7449
leaq 0x4f88f(%rip), %rsi     # 0x106c98
leaq 0x558(%rsp), %rdi
callq 0x2f170
jmp 0xb7418
jmp 0xb741a
movq 0x550(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x550(%rsp)
jmp 0xb73f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7717
movq 0x88(%rsp), %rdi
addq $0x50, %rdi
leaq 0x558(%rsp), %rsi
callq 0xbffa0
jmp 0xb7464
callq 0xc090
movl $0x0, (%rax)
leaq 0x558(%rsp), %rdi
callq 0x2f920
testb $0x1, %al
jne 0xb7708
callq 0xc8c0
cmpl $0x0, %eax
jne 0xb76fe
leaq 0x4a7(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xcd00
movq 0x30(%rsp), %rdx
leaq 0x1a219(%rip), %rsi     # 0xd16c9
leaq 0x4a8(%rsp), %rdi
callq 0x29fd0
jmp 0xb74bf
leaq 0x480(%rsp), %rdi
movl $0xc6, %esi
callq 0x2ded0
jmp 0xb74d3
leaq 0x4c8(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
leaq 0x480(%rsp), %rdx
callq 0x2dde0
jmp 0xb74f2
leaq 0x146a8(%rip), %rdx     # 0xcbba1
leaq 0x4e8(%rsp), %rdi
leaq 0x4c8(%rsp), %rsi
callq 0x2a2f0
jmp 0xb7510
leaq 0x43f(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xcd00
movq 0x28(%rsp), %rdx
leaq 0x1a1e2(%rip), %rsi     # 0xd1710
leaq 0x440(%rsp), %rdi
callq 0x29fd0
jmp 0xb753d
leaq 0x164d2(%rip), %rdx     # 0xcda16
leaq 0x460(%rsp), %rdi
leaq 0x440(%rsp), %rsi
callq 0x2a2f0
jmp 0xb755b
leaq 0x508(%rsp), %rdi
leaq 0x4e8(%rsp), %rsi
leaq 0x460(%rsp), %rdx
callq 0x2dde0
jmp 0xb757a
leaq 0x1a20b(%rip), %rdx     # 0xd178c
leaq 0x528(%rsp), %rdi
leaq 0x508(%rsp), %rsi
callq 0x2a2f0
jmp 0xb7598
leaq 0x528(%rsp), %rdi
callq 0x3e9b0
jmp 0xb75a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb76ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb76e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb76d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb76c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb76ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb76a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7694
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7687
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
leaq 0x528(%rsp), %rdi
callq 0xce98
leaq 0x508(%rsp), %rdi
callq 0xce98
leaq 0x460(%rsp), %rdi
callq 0xce98
leaq 0x440(%rsp), %rdi
callq 0xce98
leaq 0x43f(%rsp), %rdi
callq 0xc7a0
leaq 0x4e8(%rsp), %rdi
callq 0xce98
leaq 0x4c8(%rsp), %rdi
callq 0xce98
leaq 0x480(%rsp), %rdi
callq 0xce98
leaq 0x4a8(%rsp), %rdi
callq 0xce98
leaq 0x4a7(%rsp), %rdi
callq 0xc7a0
jmp 0xb7717
movl $0x1, %edi
callq 0xc8d0
leaq 0x558(%rsp), %rdi
callq 0x2eef0
jmp 0xb7729
leaq 0x558(%rsp), %rdi
callq 0x2eef0
jmp 0xb7800
leaq 0x7b0(%rsp), %rdi
callq 0x3d390
movb %al, 0x27(%rsp)
jmp 0xb773c
movb 0x27(%rsp), %al
andb $0x1, %al
movb %al, 0x7a3(%rsp)
jmp 0xb7368
leaq 0x7b0(%rsp), %rdi
callq 0x2f490
movq 0xa60(%rsp), %rdi
callq 0xcc10
testb $0x1, %al
jne 0xb7b61
movq 0xa60(%rsp), %rsi
leaq 0x190(%rsp), %rdi
xorl %edx, %edx
callq 0x2f200
jmp 0xb7789
leaq 0x170(%rsp), %rdi
callq 0xca10
leaq 0x190(%rsp), %rdi
callq 0x3d390
movb %al, 0x26(%rsp)
jmp 0xb77a9
movb 0x26(%rsp), %al
testb $0x1, %al
jne 0xb77b6
jmp 0xb7b29
leaq 0x3f8(%rsp), %rdi
callq 0x73800
jmp 0xb77c5
leaq 0x190(%rsp), %rax
addq $0x268, %rax            # imm = 0x268
movq %rax, 0x168(%rsp)
movq 0x168(%rsp), %rdi
callq 0xcc10
testb $0x1, %al
jne 0xb77ee
jmp 0xb782b
leaq 0x170(%rsp), %rdi
callq 0xc9a0
jmp 0xb7b24
leaq 0x7b0(%rsp), %rdi
callq 0x2f490
jmp 0xb7b78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7b45
leaq 0x170(%rsp), %rdi
callq 0xcc10
testb $0x1, %al
jne 0xb783e
jmp 0xb785a
movq 0x168(%rsp), %rsi
leaq 0x170(%rsp), %rdi
callq 0xc080
jmp 0xb7855
jmp 0xb7b22
movq 0x168(%rsp), %rsi
leaq 0x170(%rsp), %rdi
callq 0x2f5a0
testb $0x1, %al
jne 0xb7878
jmp 0xb7b20
movq 0x88(%rsp), %rdi
movq 0x168(%rsp), %rsi
callq 0xb7bb0
movq %rax, 0x18(%rsp)
jmp 0xb7894
movq 0x18(%rsp), %rax
movq %rax, 0x160(%rsp)
cmpq $-0x1, 0x160(%rsp)
je 0xb7b1e
movq 0x88(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0xbffe0
movb %al, 0x17(%rsp)
jmp 0xb78cb
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0xb78d8
jmp 0xb7ae4
movb $0x1, 0x9f(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq 0x88(%rsp), %rsi
movq %rax, 0x8(%rsp)
addq $0x8, %rsi
leaq 0xc0(%rsp), %rdi
movl $0x22, %edx
callq 0x424f0
jmp 0xb790f
leaq 0x19e84(%rip), %rsi     # 0xd179a
leaq 0xe0(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
callq 0x2a340
jmp 0xb792d
leaq 0x19e6d(%rip), %rdx     # 0xd17a1
leaq 0x100(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x2a2f0
jmp 0xb794b
leaq 0xa0(%rsp), %rdi
leaq 0x170(%rsp), %rsi
movl $0x22, %edx
callq 0x424f0
jmp 0xb7967
leaq 0x120(%rsp), %rdi
leaq 0x100(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
callq 0x2dde0
jmp 0xb7986
leaq 0x19e1e(%rip), %rdx     # 0xd17ab
leaq 0x140(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x2a2f0
jmp 0xb79a4
movq 0x8(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0xcbb0
jmp 0xb79b8
movq 0x8(%rsp), %rdi
movb $0x0, 0x9f(%rsp)
movq 0x4e624(%rip), %rsi     # 0x105ff0
movq 0x4e59d(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0xb7bac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7acc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7abf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7ab2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7aa5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7a98
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
jmp 0xb7a8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x7a8(%rsp)
movl %eax, 0x7a4(%rsp)
leaq 0x140(%rsp), %rdi
callq 0xce98
leaq 0x120(%rsp), %rdi
callq 0xce98
leaq 0xa0(%rsp), %rdi
callq 0xce98
leaq 0x100(%rsp), %rdi
callq 0xce98
leaq 0xe0(%rsp), %rdi
callq 0xce98
leaq 0xc0(%rsp), %rdi
callq 0xce98
testb $0x1, 0x9f(%rsp)
jne 0xb7ad8
jmp 0xb7ae2
movq 0x8(%rsp), %rdi
callq 0xc580
jmp 0xb7b45
movq 0x88(%rsp), %rdi
addq $0x30, %rdi
movq 0x160(%rsp), %rsi
callq 0xbfee0
movq %rax, (%rsp)
jmp 0xb7b03
movq (%rsp), %rdi
addq $0x8, %rdi
leaq 0x170(%rsp), %rsi
callq 0xc080
jmp 0xb7b1a
jmp 0xb7b1c
jmp 0xb7b1e
jmp 0xb7b20
jmp 0xb7b22
jmp 0xb7b24
jmp 0xb7796
leaq 0x170(%rsp), %rdi
callq 0xce98
leaq 0x190(%rsp), %rdi
callq 0x2f490
jmp 0xb7b61
leaq 0x170(%rsp), %rdi
callq 0xce98
leaq 0x190(%rsp), %rdi
callq 0x2f490
jmp 0xb7b78
movq 0x88(%rsp), %rdi
callq 0xb7c50
jmp 0xb7b70
addq $0xa78, %rsp            # imm = 0xA78
retq
movq 0x90(%rsp), %rdi
callq 0x3a370
movq 0x80(%rsp), %rdi
callq 0x3a380
movq 0x88(%rsp), %rdi
callq 0x2bab0
movq 0x7a8(%rsp), %rdi
callq 0xccf0
nopl (%rax)