// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/stx/stxtyper.cpp
// Function: (anonymous namespace)::goodBlasts2operons(Common_sp::VectorPtr<(anonymous namespace)::BlastAlignment> const&, Common_sp::Vector<(anonymous namespace)::Operon>&, bool, Common_sp::ebool, Common_sp::TsvOut&)
void goodBlasts2operons (const VectorPtr<BlastAlignment> &goodBlastAls, 
                         Vector<Operon> &operons, 
                         bool sameClass,
                         ebool strong,
                         TsvOut &logTd)
{
  IMPLY (sameClass, strong == etrue);
  
  LOG ("\nGood blasts:");

  size_t start = 0;
  FFOR (size_t, i, goodBlastAls. size ())
  {
    const BlastAlignment* alB = goodBlastAls [i];
    ASSERT (alB);
    if (alB->reported)
      continue;
    alB->saveTsvOut (logTd, true);
    if (alB->subunit != 'B')
      continue;
    while (   start < i 
           && ! (   goodBlastAls [start] -> targetName   == alB->targetName
                 && goodBlastAls [start] -> targetStrand == alB->targetStrand
                 && (   ! sameClass 
                     || goodBlastAls [start] -> stxClass == alB->stxClass
                    )
                )
          )
      start++;
    FOR_START (size_t, j, start, i)
    {
      const BlastAlignment* alA = goodBlastAls [j];
      ASSERT (alA);
      if (alA->reported)
        continue;
      ASSERT (alA->targetName   == alB->targetName);
      ASSERT (alA->targetStrand == alB->targetStrand);
      IMPLY (sameClass, alA->stxClass == alB->stxClass);
      ASSERT (alA->subunit <= alB->subunit);
      if (alA->subunit == alB->subunit)
        break;
      ASSERT (alA->subunit == 'A');
      const BlastAlignment* al1 = alA;
      const BlastAlignment* al2 = alB;
      if (! al1->targetStrand)
        swap (al1, al2);
      if (   al1->targetEnd <= al2->targetStart  
          && al2->targetStart - al1->targetEnd <= intergenic_max * (strong == efalse ? 2 : 1)  // PAR  // PD-4897
         )
      {
        Operon op (*al1, *al2);
        LOG ("Operon: " + to_string (op. getIdentity ()) + " " + to_string (stxClass2identity [op. al1->stxClass]) + ":");
        op. saveTsvOut (logTd, true);  
      #if 1
        bool good = false;
        switch (strong)
        {
          case etrue: good =    op. getIdentity () >= stxClass2identity [op. al1->stxClass]
                             && op. getIdentity () >= stxClass2identity [op. al2->stxClass];
            break;
          case enull: good = op. perfect ();
            break;
          default: good = true;
        }
        if (good)
      #else
        if (   strong != etrue
            || (   op. getIdentity () >= stxClass2identity [op. al1->stxClass]
                && op. getIdentity () >= stxClass2identity [op. al2->stxClass]
              #ifdef PROT_MATCH
                && op. perfect ()
              #endif
               )
           )
      #endif
        {
          operons << std::move (op);
          LOG ("Added");
        }
      }
    }
  }
  
  LOG ("# Operons: " + to_string (operons. size ()));
  LOG ("\nSuppress goodBlastAls by operons");
  for (const BlastAlignment* al : goodBlastAls)
  {
    ASSERT (al);
    if (! al->reported)
      for (const Operon& op : operons)
      {
        ASSERT (op. al2);
        if (   al->targetName          == op. al1->targetName
            && al->targetStart + slack >= op. al1->targetStart 
            && al->targetEnd           <= op. al2->targetEnd + slack
            && al->targetStrand        == op. al1->targetStrand
           ) 
        {
          var_cast (al) -> reported = true;
          break;
        }
      }
  }
  
  if (qc_on)
    for (const Operon& op : operons)
    {
      ASSERT (op. al1);
      ASSERT (op. al2);
      ASSERT (op. al1->reported);
      ASSERT (op. al2->reported);
    }    
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movq %r8, 0x140(%rsp)
movl %ecx, 0x114(%rsp)
movq %rsi, 0x130(%rsp)
movq %rdi, %r14
movl %edx, 0x12c(%rsp)
testl %edx, %edx
je 0x13eea
callq 0xa060
andl $0x0, (%rax)
cmpl $0x1, 0x114(%rsp)
jne 0x15071
leaq 0x62bcf(%rip), %rax     # 0x76ac0
movq (%rax), %rdi
testq %rdi, %rdi
je 0x13f0d
leaq 0x3d269(%rip), %rsi     # 0x51169
callq 0xa570
movq %rax, %rdi
callq 0xa2e0
movq 0x8(%r14), %r15
subq (%r14), %r15
sarq $0x3, %r15
cmpl $0x0, 0x114(%rsp)
pushq $0x48
popq %rax
pushq $0x24
popq %rcx
cmoveq %rax, %rcx
movq %rcx, 0x170(%rsp)
xorl %r13d, %r13d
movl 0x12c(%rsp), %eax
xorb $0x1, %al
movb %al, 0xf(%rsp)
leaq 0xd0(%rsp), %r12
xorl %ebp, %ebp
movq %r15, 0x138(%rsp)
cmpq %r15, %r13
je 0x143db
movq %r14, %rdi
movq %r13, %rsi
callq 0x17a72
movq (%rax), %rbx
callq 0xa060
movq %rax, 0x118(%rsp)
andl $0x0, (%rax)
testq %rbx, %rbx
je 0x14c4d
cmpb $0x0, 0x168(%rbx)
jne 0x143d3
movq %rbx, %rdi
movq 0x140(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x12bc0
cmpb $0x42, 0x140(%rbx)
jne 0x143d3
leaq 0x58(%rbx), %rax
movq %rax, 0x158(%rsp)
movq %rbx, 0x150(%rsp)
leaq 0x100(%rbx), %rax
movq %rax, 0x148(%rsp)
movb 0xf(%rsp), %bl
movl $0x100, %r15d           # imm = 0x100
cmpq %r13, %rbp
jae 0x1405e
movq %r14, %rdi
movq %rbp, %rsi
callq 0x17a72
movq (%rax), %rdi
addq $0x58, %rdi
movq 0x158(%rsp), %rsi
callq 0x1a320
testb %al, %al
je 0x14059
movq %r14, %rdi
movq %rbp, %rsi
callq 0x17a72
movq (%rax), %rax
movb 0x98(%rax), %al
movq 0x150(%rsp), %rcx
movb 0x98(%rcx), %cl
cmpb %cl, %al
setne %dl
orb %bl, %dl
jne 0x14055
movq %r14, %rdi
movq %rbp, %rsi
callq 0x17a72
movq (%rax), %rdi
addq %r15, %rdi
movq 0x148(%rsp), %rsi
callq 0x1a320
testb %al, %al
je 0x14059
jmp 0x1405e
cmpb %cl, %al
je 0x1405e
incq %rbp
jmp 0x13fde
movq %rbp, %rsi
cmpq %r13, %rsi
jae 0x143b3
movq %rbp, 0x160(%rsp)
movq %r12, %rbx
movq %r14, %rbp
movq %r14, %rdi
movq %rsi, %r15
callq 0x17a72
movq (%rax), %r14
movq 0x118(%rsp), %rax
andl $0x0, (%rax)
testq %r14, %r14
je 0x14755
cmpb $0x0, 0x168(%r14)
je 0x140ba
movq %r15, %rsi
incq %rsi
movq %rbp, %r14
movq %rbx, %r12
movq 0x160(%rsp), %rbp
jmp 0x14061
leaq 0x58(%r14), %rdi
movq 0x158(%rsp), %rsi
callq 0x1a320
testb %al, %al
je 0x148fd
movq 0x118(%rsp), %rax
andl $0x0, (%rax)
movb 0x98(%r14), %al
movq 0x150(%rsp), %r12
cmpb 0x98(%r12), %al
jne 0x14829
cmpb $0x0, 0x12c(%rsp)
je 0x14121
leaq 0x100(%r14), %rdi
movq 0x148(%rsp), %rsi
callq 0x1a320
testb %al, %al
je 0x14b79
movq 0x118(%rsp), %rax
andl $0x0, (%rax)
movb 0x140(%r14), %al
cmpb 0x140(%r12), %al
jg 0x149d1
je 0x143bd
cmpb $0x41, %al
jne 0x14aa5
cmpb $0x0, 0x98(%r14)
movq %r14, %rcx
cmovneq %r12, %rcx
cmoveq %r12, %r14
movq 0x30(%rcx), %rax
subq 0x38(%r14), %rax
jb 0x140a4
cmpq 0x170(%rsp), %rax
ja 0x140a4
movq %r14, 0x10(%rsp)
movq %rcx, 0x168(%rsp)
movq %rcx, 0x18(%rsp)
leaq 0x62929(%rip), %rax     # 0x76ac0
movq (%rax), %rax
testq %rax, %rax
je 0x1429a
movq %rax, 0x120(%rsp)
leaq 0x10(%rsp), %rdi
callq 0x16a5e
leaq 0x70(%rsp), %rdi
callq 0x1b873
movq %rbx, %r12
movq %rbx, %rdi
leaq 0x3d04d(%rip), %rsi     # 0x51219
leaq 0x70(%rsp), %rdx
callq 0x195c0
leaq 0x90(%rsp), %rdi
movq %r12, %rsi
leaq 0x3f8a8(%rip), %rdx     # 0x53a90
callq 0x19582
leaq 0x100(%r14), %rsi
leaq 0x6282d(%rip), %rdi     # 0x76a28
callq 0x1b896
leaq 0xb0(%rsp), %r12
movsd (%rax), %xmm0
movq %r12, %rdi
callq 0x1b873
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
movq %r12, %rdx
callq 0x19646
leaq 0x50(%rsp), %r12
movq %r12, %rdi
leaq 0x30(%rsp), %rsi
leaq 0x3d1b5(%rip), %rdx     # 0x513f2
callq 0x19582
movq 0x120(%rsp), %rdi
movq %r12, %rsi
callq 0xa500
movq %rax, %rdi
callq 0xa2e0
leaq 0x50(%rsp), %rdi
callq 0xab28
leaq 0x30(%rsp), %rdi
callq 0xab28
leaq 0xb0(%rsp), %rdi
callq 0xab28
leaq 0x90(%rsp), %rdi
callq 0xab28
movq %rbx, %rdi
callq 0xab28
leaq 0x70(%rsp), %rdi
callq 0xab28
leaq 0x10(%rsp), %rdi
movq 0x140(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x15890
movl 0x114(%rsp), %eax
cmpl $0x2, %eax
je 0x14345
cmpl $0x1, %eax
jne 0x14375
leaq 0x10(%rsp), %rdi
callq 0x16a5e
movsd %xmm0, 0x120(%rsp)
addq $0x100, %r14            # imm = 0x100
leaq 0x6273f(%rip), %rdi     # 0x76a28
movq %r14, %rsi
callq 0x1b896
movsd 0x120(%rsp), %xmm0
ucomisd (%rax), %xmm0
jb 0x140a4
leaq 0x10(%rsp), %rdi
callq 0x16a5e
movsd %xmm0, 0x120(%rsp)
movq 0x18(%rsp), %rsi
movl $0x100, %eax            # imm = 0x100
addq %rax, %rsi
leaq 0x626fd(%rip), %rdi     # 0x76a28
callq 0x1b896
movsd 0x120(%rsp), %xmm0
ucomisd (%rax), %xmm0
jb 0x140a4
jmp 0x14375
movq 0x118(%rsp), %rax
andl $0x0, (%rax)
movq %r14, %rdi
callq 0x17adc
testb %al, %al
je 0x140a4
movq 0x168(%rsp), %rdi
callq 0x17adc
testb %al, %al
je 0x140a4
movq 0x130(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x16fc8
leaq 0x62732(%rip), %rax     # 0x76ac0
movq (%rax), %rdi
testq %rdi, %rdi
je 0x140a4
leaq 0x3ce81(%rip), %rsi     # 0x51222
callq 0xa570
movq %rax, %rdi
callq 0xa2e0
jmp 0x140a4
movq 0x138(%rsp), %r15
jmp 0x143d3
movq %rbp, %r14
movq 0x138(%rsp), %r15
movq %rbx, %r12
movq 0x160(%rsp), %rbp
incq %r13
jmp 0x13f54
leaq 0x626de(%rip), %rax     # 0x76ac0
movq (%rax), %rbx
testq %rbx, %rbx
je 0x14474
movq %r14, %r15
movq 0x130(%rsp), %rax
movq 0x8(%rax), %rsi
subq (%rax), %rsi
sarq $0x4, %rsi
leaq 0x30(%rsp), %r14
movq %r14, %rdi
callq 0x196ec
leaq 0x3ce10(%rip), %rsi     # 0x51228
leaq 0x50(%rsp), %rdi
movq %r14, %rdx
callq 0x195c0
leaq 0x50(%rsp), %rsi
movq %rbx, %rdi
callq 0xa500
movq %rax, %rdi
callq 0xa2e0
leaq 0x50(%rsp), %rdi
callq 0xab28
leaq 0x30(%rsp), %rdi
callq 0xab28
leaq 0x6266b(%rip), %rax     # 0x76ac0
movq (%rax), %rdi
testq %rdi, %rdi
movq %r15, %r14
je 0x14474
leaq 0x3cdcd(%rip), %rsi     # 0x51234
callq 0xa570
movq %rax, %rdi
callq 0xa2e0
movq (%r14), %r15
movq 0x8(%r14), %rax
movq %rax, 0x118(%rsp)
cmpq 0x118(%rsp), %r15
je 0x14538
movq (%r15), %r13
callq 0xa060
andl $0x0, (%rax)
testq %r13, %r13
je 0x14d21
cmpb $0x0, 0x168(%r13)
je 0x144b5
addq $0x8, %r15
jmp 0x14483
movq %rax, %rbx
movq 0x130(%rsp), %rax
movq (%rax), %rbp
movq 0x8(%rax), %r12
leaq 0x58(%r13), %r14
cmpq %r12, %rbp
je 0x144af
andl $0x0, (%rbx)
cmpq $0x0, 0x8(%rbp)
je 0x14681
movq (%rbp), %rsi
addq $0x58, %rsi
movq %r14, %rdi
callq 0x1a320
testb %al, %al
je 0x14525
movq 0x30(%r13), %rcx
addq $0x1e, %rcx
movq (%rbp), %rax
cmpq 0x30(%rax), %rcx
jb 0x14525
movq 0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
addq $0x1e, %rcx
cmpq %rcx, 0x38(%r13)
ja 0x14525
movb 0x98(%r13), %cl
cmpb 0x98(%rax), %cl
je 0x1452b
addq $0x10, %rbp
jmp 0x144cb
movb $0x1, 0x168(%r13)
jmp 0x144af
leaq 0x62589(%rip), %rax     # 0x76ac8
cmpb $0x0, (%rax)
je 0x1466f
movq 0x130(%rsp), %rax
movq (%rax), %rbx
movq 0x8(%rax), %r14
cmpq %r14, %rbx
je 0x1466f
callq 0xa060
andl $0x0, (%rax)
movq (%rbx), %rcx
testq %rcx, %rcx
je 0x14df5
movq 0x8(%rbx), %rax
testq %rax, %rax
je 0x14ec9
cmpb $0x0, 0x168(%rcx)
je 0x14f9d
addq $0x10, %rbx
cmpb $0x0, 0x168(%rax)
jne 0x14557
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3c139(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x395, %esi            # imm = 0x395
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3c10d(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3cad1(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3d5a6(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3cc22(%rip), %rdx     # 0x51278
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3c053(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x382, %esi            # imm = 0x382
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3c027(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c9eb(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3d4c0(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3cb1a(%rip), %rdx     # 0x51256
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3bf7f(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x347, %esi            # imm = 0x347
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3bf53(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c917(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3d3ec(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c96b(%rip), %rdx     # 0x5117b
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3beab(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x34b, %esi            # imm = 0x34B
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3be7f(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c843(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3d318(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c8be(%rip), %rdx     # 0x511a2
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3bdd7(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x34a, %esi            # imm = 0x34A
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3bdab(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c76f(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3d244(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c7c7(%rip), %rdx     # 0x5117f
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3bd03(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x34d, %esi            # imm = 0x34D
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3bcd7(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c69b(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3d170(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c75c(%rip), %rdx     # 0x511e8
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3bc2f(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x350, %esi            # imm = 0x350
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3bc03(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c5c7(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3d09c(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c6a5(%rip), %rdx     # 0x51205
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3bb5b(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x34c, %esi            # imm = 0x34C
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3bb2f(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c4f3(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3cfc8(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c595(%rip), %rdx     # 0x511c9
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3ba87(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x335, %esi            # imm = 0x335
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3ba5b(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c41f(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3cef4(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c46f(%rip), %rdx     # 0x51177
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3b9b3(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x37e, %esi            # imm = 0x37E
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3b987(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c34b(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3ce20(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3d1dd(%rip), %rdx     # 0x51fb9
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3b8df(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x392, %esi            # imm = 0x392
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3b8b3(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c277(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3cd4c(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c3ae(%rip), %rdx     # 0x5125e
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3b80b(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x393, %esi            # imm = 0x393
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3b7df(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c1a3(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3cc78(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c2d2(%rip), %rdx     # 0x51256
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3b737(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x394, %esi            # imm = 0x394
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3b70b(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3c0cf(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3cba4(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c20e(%rip), %rdx     # 0x51266
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x15145
leaq 0x3b663(%rip), %rsi     # 0x506e8
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x18af0
leaq 0xb0(%rsp), %rdi
movl $0x32d, %esi            # imm = 0x32D
callq 0x1a2c7
leaq 0xd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3b637(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x19582
leaq 0x3bffb(%rip), %rsi     # 0x510de
leaq 0xf0(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x18af0
leaq 0x3cad0(%rip), %rdx     # 0x51bcc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x19646
leaq 0x3c02d(%rip), %rdx     # 0x51159
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
callq 0x1ccf0
pushq $0x1
popq %rdi
callq 0xa6b0
jmp 0x15295
jmp 0x152a4
jmp 0x15300
jmp 0x1533f
jmp 0x1537e
jmp 0x153b5
jmp 0x15295
jmp 0x152a4
jmp 0x15295
jmp 0x152a4
jmp 0x15295
jmp 0x152a4
jmp 0x15295
jmp 0x152a4
jmp 0x153e2
jmp 0x15300
jmp 0x15300
jmp 0x15300
jmp 0x15300
jmp 0x15295
jmp 0x152a4
jmp 0x15295
jmp 0x152a4
jmp 0x15436
jmp 0x15295
jmp 0x152a4
jmp 0x1533f
jmp 0x1533f
jmp 0x1533f
jmp 0x1533f
jmp 0x15300
jmp 0x15300
jmp 0x15445
jmp 0x15295
jmp 0x152a4
jmp 0x15300
jmp 0x15295
jmp 0x152a4
jmp 0x15295
jmp 0x152a4
jmp 0x15295
jmp 0x152a4
jmp 0x1537e
jmp 0x1537e
jmp 0x1537e
jmp 0x1537e
jmp 0x1533f
jmp 0x1533f
jmp 0x15300
jmp 0x1533f
jmp 0x15300
jmp 0x15295
jmp 0x152a4
jmp 0x15300
jmp 0x15300
jmp 0x153b5
jmp 0x153b5
jmp 0x153b5
jmp 0x153b5
jmp 0x1537e
jmp 0x1537e
jmp 0x1533f
movq %rax, %rbx
jmp 0x152e3
jmp 0x1537e
jmp 0x1533f
jmp 0x15300
jmp 0x1533f
jmp 0x1533f
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xab28
jmp 0x152a7
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xab28
jmp 0x15303
jmp 0x153e2
jmp 0x153e2
jmp 0x153e2
jmp 0x153e2
jmp 0x153b5
jmp 0x153b5
jmp 0x1537e
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xab28
leaq 0x30(%rsp), %rdi
jmp 0x1543e
jmp 0x153b5
jmp 0x1537e
jmp 0x1533f
jmp 0x1537e
jmp 0x1537e
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xab28
jmp 0x15342
jmp 0x15436
jmp 0x15436
jmp 0x15436
jmp 0x15436
jmp 0x153e2
jmp 0x153e2
jmp 0x153b5
jmp 0x153e2
jmp 0x153b5
jmp 0x1537e
jmp 0x153b5
jmp 0x153b5
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0xab28
jmp 0x15381
jmp 0x15445
jmp 0x15445
jmp 0x15445
jmp 0x15445
jmp 0x15436
jmp 0x15436
jmp 0x153e2
jmp 0x15436
jmp 0x153e2
jmp 0x153b5
jmp 0x153e2
jmp 0x153e2
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xab28
jmp 0x153b8
jmp 0x15445
jmp 0x15445
jmp 0x15436
jmp 0x15445
jmp 0x15436
jmp 0x153e2
jmp 0x15436
jmp 0x15436
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xab28
jmp 0x153e5
jmp 0x15445
jmp 0x15445
jmp 0x15436
jmp 0x15445
jmp 0x15445
movq %rax, %rbx
jmp 0x15403
movq %rax, %rbx
jmp 0x15427
jmp 0x15436
movq %rax, %rbx
jmp 0x1540d
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
jmp 0x1542f
jmp 0x15445
movq %rax, %rbx
jmp 0x1541a
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xab28
leaq 0x30(%rsp), %rdi
callq 0xab28
leaq 0xb0(%rsp), %rdi
callq 0xab28
leaq 0x90(%rsp), %rdi
callq 0xab28
leaq 0xd0(%rsp), %rdi
callq 0xab28
jmp 0x15439
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xab28
jmp 0x15448
movq %rax, %rbx
movq %rbx, %rdi
callq 0xa9f0