// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/alignment.cpp
// Function: Alignment_sp::Alignment::setSeqChanges(Common_sp::Vector<Alignment_sp::AmrMutation> const&, unsigned long)
void Alignment::setSeqChanges (const Vector<AmrMutation> &refMutations,
                               size_t flankingLen/*,
                               bool allMutationsP*/)
{
  ASSERT (seqChanges. empty ());
  ASSERT (! refMutations. empty ());  	
  
  
  if (! refMutation. empty ())
  {
    if (refMutation. frameshift != no_index && ! (refProt && ! targetProt))
      return;
    {
      const size_t index = refMutations. indexOf (refMutation);
      QC_ASSERT (index != no_index);
      refMutation = refMutations [index];
    }
    const size_t start = refMutation2refSeq_pos ();
    if (start != no_index)
    {
      SeqChange seqChange (this, true);
      seqChange. start = start;
      seqChange. len = refMutation. allele. size ();
      seqChange. reference = refMutation. reference;
      seqChange. allele    = refMutation. allele;
      if (seqChange. finishPos (flankingLen))
      {
  		//ASSERT (seqChange. matchesMutation (refMutation))
  		  seqChange. mutations << & refMutation;
        seqChanges << std::move (seqChange);
      }
    }
  	if (verbose ())
  	{
  	  cout << endl;
  	  cout << targetName << " vs. " << refName << ":" << endl;
  	  cout << "Declarative mutation:" << endl;
  	  for (const SeqChange& seqChange : seqChanges)
  	    seqChange. saveText (cout);
  	}
    return;
  }

  
  {
	  SeqChange seqChange (this, false);
	  bool inSeqChange = false;
		FFOR (size_t, i, refSeq. size () + 1)
		  if (inSeqChange)
		  {
        if (targetSeq [i] == refSeq [i])
        {
          if (seqChange. finish (refSeq, flankingLen))            
            seqChanges << std::move (seqChange);
          seqChange = SeqChange (this, false);
          inSeqChange = false;
        }
        else
          seqChange. len++;
      }
      else
        if (targetSeq [i] != refSeq [i])
        {
          seqChange. start = i;
          seqChange. len = 1;
          inSeqChange = true;
        }
  }
#if 0
  if (   targetProt 
      && refProt
      && targetEnd == targetLen
      && refEnd < refLen
     )
  {
	  SeqChange seqChange (this, targetLen);
    seqChanges << std::move (seqChange);
  }
#endif
  if (verbose ())
  {
    PRINT (seqChanges. size ());
    cout << endl;
  }

  
//Vector<SeqChange> seqChanges_add;
	size_t j = 0;
	
  while (j < refMutations. size () && refMutations [j]. pos_real < refStart)
  {
  //if (allMutationsP)
  	//seqChanges_add << SeqChange (this, & refMutations [j]);
    j++;
  }
  
  // SeqChange::mutations
	size_t start_ref_prev = no_index;
	for (SeqChange& seqChange : seqChanges)
  {
    seqChange. qc ();
    if (verbose ())
      seqChange. saveText (cout);
    IMPLY (start_ref_prev != no_index, start_ref_prev <= seqChange. start_ref);
    while (j < refMutations. size ())
    {
		  const AmrMutation& mut = refMutations [j];
		  if (verbose ())
		  {
		    cout << "Processing AmrMutation: ";
		    mut. saveText (cout);
		    cout << endl;
		  }
	  #if 0
		  if (mut. pos_real < seqChange. start_ref)
	     if (allMutationsP)
      	  seqChanges_add << SeqChange (this, & mut);  // "seqChanges <<" destroys seqChange
    #endif
		  if (mut. pos_real >= seqChange. stop_ref)
		    break;
		#if 0
		  cout << mut << endl;
		  PRINT (seqChange. matchesMutation (mut));  
		#endif
		  if (seqChange. matchesMutation (mut))
		  {
		    seqChange. mutations << & mut;
		  	if (verbose ())
		  	{
		  	  cout << "Found: ";
		  	  mut. saveText (cout);
		  	  cout << endl;
		  	}
		  }
	    j++;
		}
	  start_ref_prev = seqChange. start_ref;
	}
	
//seqChanges << std::move (seqChanges_add);
    
#if 0
	if (allMutationsP)
	  while (j < refMutations. size ())
	  {
  	  seqChanges << SeqChange (this, & refMutations [j]);
	    j++;
	  }
#endif

  // WILDTYPE
  {
    size_t refPos = refStart;
    size_t i = 0;
    for (const AmrMutation& mut : refMutations)
    {
      while (refPos < mut. pos_real)
      {
        ASSERT (refSeq [i] != '-');
        i++;
        while (refSeq [i] == '-')
          i++;
        if (! refSeq [i])
          break;
        refPos++;
      }
      if (! refSeq [i])
        break;
      if (   refPos == mut. pos_real
          && isLeft (string (& refSeq    [i]), mut. reference)
          && isLeft (string (& targetSeq [i]), mut. reference)
         )
    	  seqChanges << SeqChange (this, & mut);
    }
  }
	
	seqChanges. sort ();
	if (verbose ())
	{
	  cout << endl;
	  cout << targetName << " vs. " << refName << ":" << endl;
	  cout << "All found mutations:" << endl;
	  for (const SeqChange& seqChange : seqChanges)
	    seqChange. saveText (cout);
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x258, %rsp            # imm = 0x258
movq %rdx, 0x18(%rsp)
movq %rsi, %r13
movq %rdi, %r15
callq 0xc070
movq %rax, 0x30(%rsp)
andl $0x0, (%rax)
movq 0x218(%r15), %rax
cmpq 0x220(%r15), %rax
jne 0x43108
movq (%r13), %rax
cmpq 0x8(%r13), %rax
je 0x431e2
leaq 0x218(%r15), %rax
movq %rax, 0x20(%rsp)
cmpq $0x0, 0xe8(%r15)
leaq 0x45ff2(%rip), %r14     # 0x887e8
je 0x429ce
cmpq $-0x1, 0x168(%r15)
je 0x4281c
cmpb $0x1, 0x70(%r15)
jne 0x42f42
cmpb $0x0, 0x8(%r15)
jne 0x42f42
leaq 0xd0(%r15), %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x45efc
movq 0x30(%rsp), %rcx
andl $0x0, (%rcx)
cmpq $-0x1, %rax
je 0x432bc
movq %r13, %rdi
movq %rax, %rsi
callq 0x45f4e
movq %rbx, %rdi
movq %rax, %rsi
callq 0x45fb8
movq %r15, %rdi
callq 0x434ba
cmpq $-0x1, %rax
je 0x42930
leaq 0x120(%rsp), %rdi
movq %r14, -0x28(%rdi)
movq %r15, -0x20(%rdi)
movb $0x1, -0x18(%rdi)
leaq 0x130(%rsp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
xorl %edx, %edx
movb %dl, (%rcx)
leaq 0x150(%rsp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb %dl, (%rcx)
andq $0x0, 0x50(%rcx)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rcx)
movups %xmm0, 0x20(%rcx)
movups %xmm0, 0x30(%rcx)
movups %xmm0, 0x39(%rcx)
movq %rax, -0x40(%rcx)
movq 0x128(%r15), %rax
movq %rax, -0x38(%rcx)
leaq 0x100(%r15), %rsi
callq 0xc360
leaq 0x140(%rsp), %rdi
leaq 0x120(%r15), %rsi
callq 0xc360
leaq 0xf8(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x400c2
testb %al, %al
je 0x42923
leaq 0x180(%rsp), %rdi
movq %rbx, %rsi
callq 0x4606c
leaq 0xf8(%rsp), %rsi
movq 0x20(%rsp), %rdi
callq 0x4608e
leaq 0xf8(%rsp), %rdi
callq 0x460b8
xorl %edi, %edi
callq 0x15d77
testb %al, %al
je 0x42f42
movq 0x4664a(%rip), %rbx     # 0x88f90
movq %rbx, %rdi
callq 0xc300
leaq 0x10(%r15), %rsi
movq %rbx, %rdi
callq 0xc540
leaq 0x1ff80(%rip), %rsi     # 0x628e1
movq %rax, %rdi
callq 0xc5a0
leaq 0x78(%r15), %rsi
movq %rax, %rdi
callq 0xc540
leaq 0x1ff7f(%rip), %rsi     # 0x628fb
movq %rax, %rdi
callq 0xc5a0
movq %rax, %rdi
callq 0xc300
leaq 0x1ff54(%rip), %rsi     # 0x628e7
movq %rbx, %rdi
callq 0xc5a0
movq %rax, %rdi
callq 0xc300
movq 0x218(%r15), %r14
movq 0x220(%r15), %r15
cmpq %r15, %r14
je 0x42f42
movq %r14, %rdi
movq %rbx, %rsi
callq 0x45c80
addq $0xb0, %r14
jmp 0x429b1
leaq 0x130(%rsp), %rax
movq %r14, -0x38(%rax)
movq %r15, -0x30(%rax)
xorl %r12d, %r12d
movb %r12b, -0x28(%rax)
xorps %xmm0, %xmm0
movups %xmm0, -0x20(%rax)
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %r12b, (%rax)
leaq 0x150(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %r12b, (%rax)
andq $0x0, 0x50(%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x39(%rax)
leaq 0x98(%r15), %rax
movq %rax, 0x28(%rsp)
movq %r15, 0x10(%rsp)
movq 0xa0(%r15), %r15
incq %r15
leaq 0xf8(%rsp), %rbp
xorl %r14d, %r14d
cmpq %r12, %r15
je 0x42b7c
movq 0x10(%rsp), %rcx
movq 0x30(%rcx), %rax
movq 0x98(%rcx), %rcx
movb (%rax,%r12), %al
movb (%rcx,%r12), %cl
testb $0x1, %r14b
je 0x42b4a
cmpb %cl, %al
jne 0x42b53
movq %rbp, %rdi
movq 0x28(%rsp), %rsi
movq 0x18(%rsp), %rdx
callq 0x3f54e
testb %al, %al
je 0x42a9d
movq 0x20(%rsp), %rdi
movq %rbp, %rsi
callq 0x4608e
leaq 0x45d44(%rip), %rax     # 0x887e8
movq %rax, 0x1a8(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x1b0(%rsp)
xorl %r14d, %r14d
movb %r14b, 0x1b8(%rsp)
xorps %xmm0, %xmm0
leaq 0x1c0(%rsp), %rcx
movups %xmm0, (%rcx)
leaq 0x1e0(%rsp), %rax
movq %rax, 0x1d0(%rsp)
andq $0x0, 0x1d8(%rsp)
movb %r14b, 0x1e0(%rsp)
leaq 0x200(%rsp), %rax
movq %rax, 0x1f0(%rsp)
andq $0x0, 0x1f8(%rsp)
movb %r14b, 0x200(%rsp)
andq $0x0, 0x250(%rsp)
movups %xmm0, 0x79(%rcx)
movups %xmm0, 0x70(%rcx)
movups %xmm0, 0x60(%rcx)
movups %xmm0, 0x50(%rcx)
movq %rbp, %rdi
leaq 0x1a8(%rsp), %rbx
movq %rbx, %rsi
callq 0x460de
movq %rbx, %rdi
callq 0x460b8
jmp 0x42b74
cmpb %cl, %al
jne 0x42b5d
xorl %r14d, %r14d
jmp 0x42b74
incq 0x118(%rsp)
jmp 0x42b71
movq %r12, 0x110(%rsp)
movq $0x1, 0x118(%rsp)
movb $0x1, %r14b
incq %r12
jmp 0x42a47
leaq 0xf8(%rsp), %rdi
callq 0x460b8
xorl %edi, %edi
callq 0x15d77
testb %al, %al
movq 0x10(%rsp), %r15
je 0x42bf1
movq 0x463f0(%rip), %rbx     # 0x88f90
movq %rbx, %rdi
callq 0x4614e
leaq 0x1fd4e(%rip), %rsi     # 0x628fd
movq %rbx, %rdi
callq 0xc5a0
leaq 0x1e39e(%rip), %rsi     # 0x60f5c
movq %rax, %rdi
callq 0xc5a0
movq %rax, %rdi
movq 0x220(%r15), %rax
subq 0x218(%r15), %rax
movl $0xb0, %ecx
cqto
idivq %rcx
movq %rax, %rsi
callq 0xc410
movq %rbx, %rdi
callq 0xc300
xorl %ebp, %ebp
movl $0x128, %ebx            # imm = 0x128
movq 0x8(%r13), %rax
subq (%r13), %rax
cqto
idivq %rbx
cmpq %rax, %rbp
jae 0x42c27
movq %r13, %rdi
movq %rbp, %rsi
callq 0x45f4e
movq 0x8(%rax), %rax
cmpq 0xb8(%r15), %rax
jae 0x42c27
incq %rbp
jmp 0x42bf8
movq 0x218(%r15), %r14
movq 0x220(%r15), %rax
movq %rax, 0x18(%rsp)
pushq $-0x1
popq %rbx
movq 0x4634c(%rip), %r12     # 0x88f90
cmpq 0x18(%rsp), %r14
je 0x42d4b
movq %r14, %rdi
callq 0x3e1cc
xorl %edi, %edi
callq 0x15d77
testb %al, %al
je 0x42c6d
movq %r14, %rdi
movq %r12, %rsi
callq 0x45c80
cmpq $-0x1, %rbx
je 0x42c85
movq 0x30(%rsp), %rax
andl $0x0, (%rax)
cmpq 0x68(%r14), %rbx
ja 0x4302e
leaq 0x88(%r14), %rbx
movq 0x8(%r13), %rax
subq (%r13), %rax
cqto
movl $0x128, %ecx            # imm = 0x128
idivq %rcx
cmpq %rax, %rbp
jae 0x42d3b
movq %r13, %rdi
movq %rbp, %rsi
callq 0x45f4e
movq %rax, %r15
xorl %edi, %edi
callq 0x15d77
testb %al, %al
je 0x42ce2
movq %r12, %rdi
leaq 0x1fc6e(%rip), %rsi     # 0x62938
callq 0xc5a0
movq %r15, %rdi
movq %r12, %rsi
callq 0x461b2
movq %r12, %rdi
callq 0xc300
movq 0x8(%r15), %rax
cmpq 0x70(%r14), %rax
jae 0x42d3b
movq %r14, %rdi
movq %r15, %rsi
callq 0x41040
testb %al, %al
je 0x42d33
movq %rbx, %rdi
movq %r15, %rsi
callq 0x4606c
xorl %edi, %edi
callq 0x15d77
testb %al, %al
je 0x42d33
movq %r12, %rdi
leaq 0x1fc36(%rip), %rsi     # 0x62951
callq 0xc5a0
movq %r15, %rdi
movq %r12, %rsi
callq 0x461b2
movq %r12, %rdi
callq 0xc300
incq %rbp
jmp 0x42c8c
movq 0x68(%r14), %rbx
addq $0xb0, %r14
jmp 0x42c44
movq 0x10(%rsp), %rax
movq 0xb8(%rax), %r15
movq (%r13), %rbp
movq 0x8(%r13), %rax
movq %rax, 0x18(%rsp)
xorl %r14d, %r14d
leaq 0x1a8(%rsp), %r13
movq 0x28(%rsp), %rbx
cmpq 0x18(%rsp), %rbp
je 0x42e99
movq 0x8(%rbp), %rax
movq (%rbx), %rcx
cmpq %rax, %r15
movq %rax, %rdx
cmovaq %r15, %rdx
cmpq %rdx, %r15
je 0x42dbf
movq 0x30(%rsp), %rsi
andl $0x0, (%rsi)
cmpb $0x2d, (%rcx,%r14)
je 0x42f54
movzbl 0x1(%rcx,%r14), %esi
incq %r14
cmpl $0x2d, %esi
je 0x42da8
testl %esi, %esi
je 0x42dc2
incq %r15
jmp 0x42d90
movq %rdx, %r15
movq (%rbx), %rsi
cmpb $0x0, (%rsi,%r14)
je 0x42e99
cmpq %rax, %r15
jne 0x42e8d
movq %r13, %r12
addq %r14, %rsi
leaq 0xf8(%rsp), %r13
movq %r13, %rdi
leaq 0x58(%rsp), %rdx
callq 0xdbbe
leaq 0x30(%rbp), %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x29f70
testb %al, %al
je 0x42e7d
movq 0x10(%rsp), %rax
movq 0x30(%rax), %rsi
addq %r14, %rsi
movq %r12, %r13
movq %r12, %rdi
leaq 0x38(%rsp), %rdx
callq 0xdbbe
movq %r13, %rdi
movq %rbx, %rsi
callq 0x29f70
movl %eax, %ebx
movq %r13, %rdi
callq 0xcbe8
leaq 0xf8(%rsp), %rdi
callq 0xcbe8
testb %bl, %bl
movq 0x28(%rsp), %rbx
je 0x42e8d
leaq 0xf8(%rsp), %r13
movq %r13, %rdi
movq 0x10(%rsp), %rsi
movq %rbp, %rdx
callq 0x46236
movq 0x20(%rsp), %rdi
movq %r13, %rsi
callq 0x4608e
movq %r13, %rdi
callq 0x460b8
jmp 0x42e8a
movq %r13, %rdi
callq 0xcbe8
movq 0x28(%rsp), %rbx
movq %r12, %r13
addq $0x128, %rbp            # imm = 0x128
jmp 0x42d74
movq 0x20(%rsp), %rdi
callq 0x462e8
xorl %edi, %edi
callq 0x15d77
testb %al, %al
movq 0x10(%rsp), %r15
je 0x42f42
movq 0x460d2(%rip), %rbx     # 0x88f90
movq %rbx, %rdi
callq 0xc300
leaq 0x10(%r15), %rsi
movq %rbx, %rdi
callq 0xc540
leaq 0x1fa08(%rip), %rsi     # 0x628e1
movq %rax, %rdi
callq 0xc5a0
leaq 0x78(%r15), %rsi
movq %rax, %rdi
callq 0xc540
leaq 0x1fa07(%rip), %rsi     # 0x628fb
movq %rax, %rdi
callq 0xc5a0
movq %rax, %rdi
callq 0xc300
leaq 0x1fa60(%rip), %rsi     # 0x6296b
movq %rbx, %rdi
callq 0xc5a0
movq %rax, %rdi
callq 0xc300
movq 0x218(%r15), %r14
movq 0x220(%r15), %r15
cmpq %r15, %r14
je 0x42f42
movq %r14, %rdi
movq %rbx, %rsi
callq 0x45c80
addq $0xb0, %r14
jmp 0x42f29
addq $0x258, %rsp            # imm = 0x258
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xc6d0
testl %eax, %eax
jne 0x43396
leaq 0x1f080(%rip), %rsi     # 0x61fe8
leaq 0xd8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0xb8(%rsp), %rdi
movl $0x34c, %esi            # imm = 0x34C
callq 0xe2d5
leaq 0x38(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0xe26e
leaq 0x1b224(%rip), %rdx     # 0x5e1d1
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xe24f
leaq 0x1f88d(%rip), %rsi     # 0x62850
leaq 0x78(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x1b8f3(%rip), %rdx     # 0x5e8cc
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xe24f
leaq 0x1a8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0xe26e
leaq 0x1f94d(%rip), %rdx     # 0x62959
leaq 0xf8(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0xe24f
leaq 0xf8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x43396
leaq 0x1efa6(%rip), %rsi     # 0x61fe8
leaq 0xd8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0xb8(%rsp), %rdi
movl $0x315, %esi            # imm = 0x315
callq 0xe2d5
leaq 0x38(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0xe26e
leaq 0x1b14a(%rip), %rdx     # 0x5e1d1
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xe24f
leaq 0x1f7b3(%rip), %rsi     # 0x62850
leaq 0x78(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x1b819(%rip), %rdx     # 0x5e8cc
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xe24f
leaq 0x1a8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0xe26e
leaq 0x1f82b(%rip), %rdx     # 0x62911
leaq 0xf8(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0xe24f
leaq 0xf8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x43396
leaq 0x1eecc(%rip), %rsi     # 0x61fe8
leaq 0xd8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0xb8(%rsp), %rdi
movl $0x2b2, %esi            # imm = 0x2B2
callq 0xe2d5
leaq 0x38(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0xe26e
leaq 0x1b070(%rip), %rdx     # 0x5e1d1
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xe24f
leaq 0x1f6d9(%rip), %rsi     # 0x62850
leaq 0x78(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x1b73f(%rip), %rdx     # 0x5e8cc
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xe24f
leaq 0x1a8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0xe26e
leaq 0x1f6e1(%rip), %rdx     # 0x628a1
leaq 0xf8(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0xe24f
leaq 0xf8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x43396
leaq 0x1edf2(%rip), %rsi     # 0x61fe8
leaq 0xd8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0xb8(%rsp), %rdi
movl $0x2b3, %esi            # imm = 0x2B3
callq 0xe2d5
leaq 0x38(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0xe26e
leaq 0x1af96(%rip), %rdx     # 0x5e1d1
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xe24f
leaq 0x1f5ff(%rip), %rsi     # 0x62850
leaq 0x78(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x1b665(%rip), %rdx     # 0x5e8cc
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xe24f
leaq 0x1a8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0xe26e
leaq 0x1f61c(%rip), %rdx     # 0x628b6
leaq 0xf8(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0xe24f
leaq 0xf8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x43396
leaq 0x1ed18(%rip), %rsi     # 0x61fe8
leaq 0xd8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0xb8(%rsp), %rdi
movl $0x2bc, %esi            # imm = 0x2BC
callq 0xe2d5
leaq 0x38(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0xe26e
leaq 0x1aebc(%rip), %rdx     # 0x5e1d1
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xe24f
leaq 0x1f525(%rip), %rsi     # 0x62850
leaq 0x78(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x1b58b(%rip), %rdx     # 0x5e8cc
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xe24f
leaq 0x1a8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0xe26e
leaq 0x1f55b(%rip), %rdx     # 0x628cf
leaq 0xf8(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0xe24f
leaq 0xf8(%rsp), %rdi
callq 0x101d0
pushq $0x1
popq %rdi
callq 0xc6f0
jmp 0x433ca
jmp 0x433dc
jmp 0x433f6
jmp 0x433ca
jmp 0x433dc
jmp 0x433ca
jmp 0x433dc
jmp 0x43413
jmp 0x433f6
jmp 0x433f6
jmp 0x43428
jmp 0x43413
jmp 0x43413
jmp 0x4343d
jmp 0x433ca
jmp 0x433dc
jmp 0x43428
jmp 0x43428
jmp 0x4344e
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0xcbe8
jmp 0x433df
movq %rax, %rbx
leaq 0x1a8(%rsp), %rdi
callq 0xcbe8
jmp 0x433f9
jmp 0x433f6
jmp 0x4343d
jmp 0x4343d
jmp 0x43466
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0xcbe8
jmp 0x43416
jmp 0x43413
jmp 0x4344e
jmp 0x4344e
jmp 0x4349d
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xcbe8
jmp 0x4342b
jmp 0x43428
jmp 0x43466
jmp 0x43466
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xcbe8
jmp 0x43440
jmp 0x4343d
jmp 0x4349d
jmp 0x4349d
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0xcbe8
jmp 0x43451
jmp 0x4344e
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
callq 0xcbe8
jmp 0x43469
jmp 0x434a2
jmp 0x434a2
jmp 0x43466
movq %rax, %rbx
leaq 0xd8(%rsp), %rdi
jmp 0x43496
movq %rax, %rbx
leaq 0x1a8(%rsp), %rdi
callq 0xcbe8
jmp 0x4348e
jmp 0x4348b
jmp 0x4349d
jmp 0x4349d
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0xcbe8
jmp 0x434b2
movq %rax, %rbx
jmp 0x434b2
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0x460b8
movq %rbx, %rdi
callq 0xcaa0