// File: 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:
subq $0xa58, %rsp            # imm = 0xA58
movq %rdi, 0xa50(%rsp)
movq %rsi, 0xa48(%rsp)
movq %rdx, 0xa40(%rsp)
movq 0xa50(%rsp), %rax
movq %rax, 0xf8(%rsp)
callq 0xd0a0
movq 0xf8(%rsp), %rdi
movl $0x0, (%rax)
addq $0x218, %rdi            # imm = 0x218
callq 0xa43a0
testb $0x1, %al
jne 0x9bde9
callq 0xd8c0
cmpl $0x0, %eax
jne 0x9bddf
leaq 0x99f(%rsp), %rdi
movq %rdi, 0xf0(%rsp)
callq 0xdd50
movq 0xf0(%rsp), %rdx
leaq 0x4b5e8(%rip), %rsi     # 0xe7170
leaq 0x9a0(%rsp), %rdi
callq 0xfae0
jmp 0x9bb97
leaq 0x968(%rsp), %rdi
movl $0x2b2, %esi            # imm = 0x2B2
callq 0x11600
jmp 0x9bbab
leaq 0x9c0(%rsp), %rdi
leaq 0x9a0(%rsp), %rsi
leaq 0x968(%rsp), %rdx
callq 0x11510
jmp 0x9bbca
leaq 0x47600(%rip), %rdx     # 0xe31d1
leaq 0x9e0(%rsp), %rdi
leaq 0x9c0(%rsp), %rsi
callq 0x114c0
jmp 0x9bbe8
leaq 0x927(%rsp), %rdi
movq %rdi, 0xe8(%rsp)
callq 0xdd50
movq 0xe8(%rsp), %rdx
leaq 0x4bdcc(%rip), %rsi     # 0xe79d8
leaq 0x928(%rsp), %rdi
callq 0xfae0
jmp 0x9bc1b
leaq 0x47d82(%rip), %rdx     # 0xe39a4
leaq 0x948(%rsp), %rdi
leaq 0x928(%rsp), %rsi
callq 0x114c0
jmp 0x9bc39
leaq 0xa00(%rsp), %rdi
leaq 0x9e0(%rsp), %rsi
leaq 0x948(%rsp), %rdx
callq 0x11510
jmp 0x9bc58
leaq 0x4bdca(%rip), %rdx     # 0xe7a29
leaq 0xa20(%rsp), %rdi
leaq 0xa00(%rsp), %rsi
callq 0x114c0
jmp 0x9bc76
leaq 0xa20(%rsp), %rdi
callq 0x173d0
jmp 0x9bc85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9bdcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9bdc0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9bdb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9bda6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9bd8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9bd7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9bd72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9bd65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
leaq 0xa20(%rsp), %rdi
callq 0xdf08
leaq 0xa00(%rsp), %rdi
callq 0xdf08
leaq 0x948(%rsp), %rdi
callq 0xdf08
leaq 0x928(%rsp), %rdi
callq 0xdf08
leaq 0x927(%rsp), %rdi
callq 0xd7a0
leaq 0x9e0(%rsp), %rdi
callq 0xdf08
leaq 0x9c0(%rsp), %rdi
callq 0xdf08
leaq 0x968(%rsp), %rdi
callq 0xdf08
leaq 0x9a0(%rsp), %rdi
callq 0xdf08
leaq 0x99f(%rsp), %rdi
callq 0xd7a0
jmp 0x9d752
movl $0x1, %edi
callq 0xd8e0
callq 0xd0a0
movl $0x0, (%rax)
movq 0xa48(%rsp), %rdi
callq 0xa43f0
testb $0x1, %al
jne 0x9be0a
jmp 0x9c09d
callq 0xd8c0
cmpl $0x0, %eax
jne 0x9c093
leaq 0x87f(%rsp), %rdi
movq %rdi, 0xe0(%rsp)
callq 0xdd50
movq 0xe0(%rsp), %rdx
leaq 0x4b334(%rip), %rsi     # 0xe7170
leaq 0x880(%rsp), %rdi
callq 0xfae0
jmp 0x9be4b
leaq 0x858(%rsp), %rdi
movl $0x2b3, %esi            # imm = 0x2B3
callq 0x11600
jmp 0x9be5f
leaq 0x8a0(%rsp), %rdi
leaq 0x880(%rsp), %rsi
leaq 0x858(%rsp), %rdx
callq 0x11510
jmp 0x9be7e
leaq 0x4734c(%rip), %rdx     # 0xe31d1
leaq 0x8c0(%rsp), %rdi
leaq 0x8a0(%rsp), %rsi
callq 0x114c0
jmp 0x9be9c
leaq 0x817(%rsp), %rdi
movq %rdi, 0xd8(%rsp)
callq 0xdd50
movq 0xd8(%rsp), %rdx
leaq 0x4bb18(%rip), %rsi     # 0xe79d8
leaq 0x818(%rsp), %rdi
callq 0xfae0
jmp 0x9becf
leaq 0x47ace(%rip), %rdx     # 0xe39a4
leaq 0x838(%rsp), %rdi
leaq 0x818(%rsp), %rsi
callq 0x114c0
jmp 0x9beed
leaq 0x8e0(%rsp), %rdi
leaq 0x8c0(%rsp), %rsi
leaq 0x838(%rsp), %rdx
callq 0x11510
jmp 0x9bf0c
leaq 0x4bb2b(%rip), %rdx     # 0xe7a3e
leaq 0x900(%rsp), %rdi
leaq 0x8e0(%rsp), %rsi
callq 0x114c0
jmp 0x9bf2a
leaq 0x900(%rsp), %rdi
callq 0x173d0
jmp 0x9bf39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c081
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c074
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c067
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c05a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c040
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c033
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c026
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c019
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
leaq 0x900(%rsp), %rdi
callq 0xdf08
leaq 0x8e0(%rsp), %rdi
callq 0xdf08
leaq 0x838(%rsp), %rdi
callq 0xdf08
leaq 0x818(%rsp), %rdi
callq 0xdf08
leaq 0x817(%rsp), %rdi
callq 0xd7a0
leaq 0x8c0(%rsp), %rdi
callq 0xdf08
leaq 0x8a0(%rsp), %rdi
callq 0xdf08
leaq 0x858(%rsp), %rdi
callq 0xdf08
leaq 0x880(%rsp), %rdi
callq 0xdf08
leaq 0x87f(%rsp), %rdi
callq 0xd7a0
jmp 0x9d752
movl $0x1, %edi
callq 0xd8e0
movq 0xf8(%rsp), %rdi
addq $0xd0, %rdi
callq 0xa3be0
testb $0x1, %al
jne 0x9c663
movq 0xf8(%rsp), %rax
cmpq $-0x1, 0x168(%rax)
je 0x9c0ec
movq 0xf8(%rsp), %rax
testb $0x1, 0x70(%rax)
je 0x9c0e7
movq 0xf8(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x9c0ec
jmp 0x9d74a
movq 0xf8(%rsp), %rsi
movq 0xa48(%rsp), %rdi
addq $0xd0, %rsi
callq 0xa4440
movq %rax, 0x808(%rsp)
callq 0xd0a0
movl $0x0, (%rax)
cmpq $-0x1, 0x808(%rsp)
jne 0x9c3bd
callq 0xd8c0
cmpl $0x0, %eax
jne 0x9c3b3
leaq 0x767(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0xdd50
movq 0xd0(%rsp), %rdx
leaq 0x4b014(%rip), %rsi     # 0xe7170
leaq 0x768(%rsp), %rdi
callq 0xfae0
jmp 0x9c16b
leaq 0x740(%rsp), %rdi
movl $0x2bc, %esi            # imm = 0x2BC
callq 0x11600
jmp 0x9c17f
leaq 0x788(%rsp), %rdi
leaq 0x768(%rsp), %rsi
leaq 0x740(%rsp), %rdx
callq 0x11510
jmp 0x9c19e
leaq 0x4702c(%rip), %rdx     # 0xe31d1
leaq 0x7a8(%rsp), %rdi
leaq 0x788(%rsp), %rsi
callq 0x114c0
jmp 0x9c1bc
leaq 0x6ff(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq 0xdd50
movq 0xc8(%rsp), %rdx
leaq 0x4b7f8(%rip), %rsi     # 0xe79d8
leaq 0x700(%rsp), %rdi
callq 0xfae0
jmp 0x9c1ef
leaq 0x477ae(%rip), %rdx     # 0xe39a4
leaq 0x720(%rsp), %rdi
leaq 0x700(%rsp), %rsi
callq 0x114c0
jmp 0x9c20d
leaq 0x7c8(%rsp), %rdi
leaq 0x7a8(%rsp), %rsi
leaq 0x720(%rsp), %rdx
callq 0x11510
jmp 0x9c22c
leaq 0x4b824(%rip), %rdx     # 0xe7a57
leaq 0x7e8(%rsp), %rdi
leaq 0x7c8(%rsp), %rsi
callq 0x114c0
jmp 0x9c24a
leaq 0x7e8(%rsp), %rdi
callq 0x173d0
jmp 0x9c259
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c3a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c394
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c387
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c37a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c360
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c353
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c346
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9c339
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
leaq 0x7e8(%rsp), %rdi
callq 0xdf08
leaq 0x7c8(%rsp), %rdi
callq 0xdf08
leaq 0x720(%rsp), %rdi
callq 0xdf08
leaq 0x700(%rsp), %rdi
callq 0xdf08
leaq 0x6ff(%rsp), %rdi
callq 0xd7a0
leaq 0x7a8(%rsp), %rdi
callq 0xdf08
leaq 0x788(%rsp), %rdi
callq 0xdf08
leaq 0x740(%rsp), %rdi
callq 0xdf08
leaq 0x768(%rsp), %rdi
callq 0xdf08
leaq 0x767(%rsp), %rdi
callq 0xd7a0
jmp 0x9d752
movl $0x1, %edi
callq 0xd8e0
movq 0xa48(%rsp), %rdi
movq 0x808(%rsp), %rsi
callq 0xa4500
movq 0xf8(%rsp), %rdi
movq %rax, %rsi
addq $0xd0, %rdi
callq 0xa45c0
movq 0xf8(%rsp), %rdi
callq 0x9d760
movq %rax, 0x6f0(%rsp)
cmpq $-0x1, 0x6f0(%rsp)
je 0x9c52b
movq 0xf8(%rsp), %rsi
leaq 0x640(%rsp), %rdi
movl $0x1, %edx
callq 0xa46f0
movq 0xf8(%rsp), %rdi
movq 0x6f0(%rsp), %rax
movq %rax, 0x658(%rsp)
addq $0x120, %rdi            # imm = 0x120
callq 0xd520
movq 0xf8(%rsp), %rsi
movq %rax, 0x660(%rsp)
addq $0x100, %rsi            # imm = 0x100
leaq 0x668(%rsp), %rdi
callq 0xd090
jmp 0x9c471
movq 0xf8(%rsp), %rsi
addq $0x120, %rsi            # imm = 0x120
leaq 0x688(%rsp), %rdi
callq 0xd090
jmp 0x9c48f
movq 0xa40(%rsp), %rsi
leaq 0x640(%rsp), %rdi
callq 0x962d0
movb %al, 0xc7(%rsp)
jmp 0x9c4ad
movb 0xc7(%rsp), %al
testb $0x1, %al
jne 0x9c4ba
jmp 0x9c51e
movq 0xf8(%rsp), %rsi
leaq 0x6c8(%rsp), %rdi
addq $0xd0, %rsi
callq 0xa47b0
jmp 0x9c4d8
movq 0xf8(%rsp), %rdi
addq $0x218, %rdi            # imm = 0x218
leaq 0x640(%rsp), %rsi
callq 0xa47e0
jmp 0x9c4f6
jmp 0x9c51e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
leaq 0x640(%rsp), %rdi
callq 0xa4820
jmp 0x9d752
leaq 0x640(%rsp), %rdi
callq 0xa4820
xorl %edi, %edi
callq 0x23220
testb $0x1, %al
jne 0x9c53b
jmp 0x9c65e
movq 0x83a4e(%rip), %rdi     # 0x11ff90
movq 0x83a07(%rip), %rsi     # 0x11ff50
callq 0xd760
movq 0xf8(%rsp), %rsi
addq $0x10, %rsi
movq 0x83a2f(%rip), %rdi     # 0x11ff90
callq 0xd680
movq %rax, %rdi
leaq 0x4b4f9(%rip), %rsi     # 0xe7a69
callq 0xd6f0
movq 0xf8(%rsp), %rsi
movq %rax, %rdi
addq $0x78, %rsi
callq 0xd680
movq %rax, %rdi
leaq 0x4b4f0(%rip), %rsi     # 0xe7a83
callq 0xd6f0
movq %rax, %rdi
movq 0x839ae(%rip), %rsi     # 0x11ff50
callq 0xd760
movq 0x839e2(%rip), %rdi     # 0x11ff90
leaq 0x4b4ba(%rip), %rsi     # 0xe7a6f
callq 0xd6f0
movq %rax, %rdi
movq 0x8398c(%rip), %rsi     # 0x11ff50
callq 0xd760
movq 0xf8(%rsp), %rax
addq $0x218, %rax            # imm = 0x218
movq %rax, 0x638(%rsp)
movq 0x638(%rsp), %rdi
callq 0xa4870
movq %rax, 0x630(%rsp)
movq 0x638(%rsp), %rdi
callq 0xa48a0
movq %rax, 0x628(%rsp)
leaq 0x630(%rsp), %rdi
leaq 0x628(%rsp), %rsi
callq 0xa48d0
testb $0x1, %al
jne 0x9c624
jmp 0x9c65c
leaq 0x630(%rsp), %rdi
callq 0xa4910
movq %rax, 0x620(%rsp)
movq 0x620(%rsp), %rdi
movq 0x83948(%rip), %rsi     # 0x11ff90
callq 0xa3e70
leaq 0x630(%rsp), %rdi
callq 0xa4920
jmp 0x9c609
jmp 0x9c65e
jmp 0x9d74a
movq 0xf8(%rsp), %rsi
leaq 0x570(%rsp), %rdi
xorl %edx, %edx
callq 0xa46f0
movq 0xf8(%rsp), %rdi
movb $0x0, 0x56f(%rsp)
movq $0x0, 0x560(%rsp)
addq $0x98, %rdi
callq 0xd520
addq $0x1, %rax
movq %rax, 0x558(%rsp)
movq 0x560(%rsp), %rax
cmpq 0x558(%rsp), %rax
jae 0x9c8d7
testb $0x1, 0x56f(%rsp)
je 0x9c825
movq 0xf8(%rsp), %rdi
addq $0x30, %rdi
movq 0x560(%rsp), %rsi
callq 0xdec0
movq %rax, 0xb8(%rsp)
jmp 0x9c6f5
movq 0xf8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movsbl (%rax), %eax
movl %eax, 0xac(%rsp)
addq $0x98, %rdi
movq 0x560(%rsp), %rsi
callq 0xdec0
movq %rax, 0xb0(%rsp)
jmp 0x9c72d
movl 0xac(%rsp), %eax
movq 0xb0(%rsp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x9c80c
movq 0xf8(%rsp), %rsi
addq $0x98, %rsi
movq 0xa40(%rsp), %rdx
leaq 0x570(%rsp), %rdi
callq 0x94690
movb %al, 0xab(%rsp)
jmp 0x9c774
movb 0xab(%rsp), %al
testb $0x1, %al
jne 0x9c781
jmp 0x9c7c7
movq 0xf8(%rsp), %rdi
addq $0x218, %rdi            # imm = 0x218
leaq 0x570(%rsp), %rsi
callq 0xa47e0
jmp 0x9c79f
jmp 0x9c7c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
leaq 0x570(%rsp), %rdi
callq 0xa4820
jmp 0x9d752
movq 0xf8(%rsp), %rsi
leaq 0x4a8(%rsp), %rdi
xorl %edx, %edx
callq 0xa46f0
jmp 0x9c7e0
leaq 0x570(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
callq 0xa4940
leaq 0x4a8(%rsp), %rdi
callq 0xa4820
movb $0x0, 0x56f(%rsp)
jmp 0x9c820
movq 0x590(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x590(%rsp)
jmp 0x9c8bc
movq 0xf8(%rsp), %rdi
addq $0x30, %rdi
movq 0x560(%rsp), %rsi
callq 0xdec0
movq %rax, 0xa0(%rsp)
jmp 0x9c848
movq 0xf8(%rsp), %rdi
movq 0xa0(%rsp), %rax
movsbl (%rax), %eax
movl %eax, 0x94(%rsp)
addq $0x98, %rdi
movq 0x560(%rsp), %rsi
callq 0xdec0
movq %rax, 0x98(%rsp)
jmp 0x9c880
movl 0x94(%rsp), %eax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x9c8ba
movq 0x560(%rsp), %rax
movq %rax, 0x588(%rsp)
movq $0x1, 0x590(%rsp)
movb $0x1, 0x56f(%rsp)
jmp 0x9c8bc
jmp 0x9c8be
movq 0x560(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x560(%rsp)
jmp 0x9c6ae
leaq 0x570(%rsp), %rdi
callq 0xa4820
xorl %edi, %edi
callq 0x23220
testb $0x1, %al
jne 0x9c8f1
jmp 0x9c95e
movq 0x83698(%rip), %rdi     # 0x11ff90
callq 0xa4a20
movq 0x8368c(%rip), %rdi     # 0x11ff90
leaq 0x4b17a(%rip), %rsi     # 0xe7a85
callq 0xd6f0
movq %rax, %rdi
leaq 0x4976b(%rip), %rsi     # 0xe6085
callq 0xd6f0
movq 0xf8(%rsp), %rdi
movq %rax, 0x88(%rsp)
addq $0x218, %rdi            # imm = 0x218
callq 0xa4ae0
movq 0x88(%rsp), %rdi
movq %rax, %rsi
callq 0xd180
movq 0x8363e(%rip), %rdi     # 0x11ff90
movq 0x835f7(%rip), %rsi     # 0x11ff50
callq 0xd760
movq $0x0, 0x4a0(%rsp)
movq 0x4a0(%rsp), %rax
movq %rax, 0x78(%rsp)
movq 0xa48(%rsp), %rdi
callq 0x147a0
movq 0x78(%rsp), %rcx
movq %rax, %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, 0x87(%rsp)
jae 0x9c9cc
movq 0xa48(%rsp), %rdi
movq 0x4a0(%rsp), %rsi
callq 0xa4500
movq 0xf8(%rsp), %rcx
movq 0x8(%rax), %rax
cmpq 0xb8(%rcx), %rax
setb %al
movb %al, 0x87(%rsp)
movb 0x87(%rsp), %al
testb $0x1, %al
jne 0x9c9d9
jmp 0x9c9f2
movq 0x4a0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x4a0(%rsp)
jmp 0x9c96a
movq 0xf8(%rsp), %rax
movq $-0x1, 0x498(%rsp)
addq $0x218, %rax            # imm = 0x218
movq %rax, 0x490(%rsp)
movq 0x490(%rsp), %rdi
callq 0xa4870
movq %rax, 0x488(%rsp)
movq 0x490(%rsp), %rdi
callq 0xa48a0
movq %rax, 0x480(%rsp)
leaq 0x488(%rsp), %rdi
leaq 0x480(%rsp), %rsi
callq 0xa48d0
testb $0x1, %al
jne 0x9ca5c
jmp 0x9cecb
leaq 0x488(%rsp), %rdi
callq 0xa4910
movq %rax, 0x478(%rsp)
movq 0x478(%rsp), %rdi
callq 0x91320
xorl %edi, %edi
callq 0x23220
testb $0x1, %al
jne 0x9ca8b
jmp 0x9ca9f
movq 0x478(%rsp), %rdi
movq 0x834f6(%rip), %rsi     # 0x11ff90
callq 0xa3e70
cmpq $-0x1, 0x498(%rsp)
je 0x9cd5c
callq 0xd0a0
movl $0x0, (%rax)
movq 0x498(%rsp), %rax
movq 0x478(%rsp), %rcx
cmpq 0x68(%rcx), %rax
jbe 0x9cd5a
callq 0xd8c0
cmpl $0x0, %eax
jne 0x9cd50
leaq 0x3d7(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0xdd50
movq 0x70(%rsp), %rdx
leaq 0x4a671(%rip), %rsi     # 0xe7170
leaq 0x3d8(%rsp), %rdi
callq 0xfae0
jmp 0x9cb0e
leaq 0x3b0(%rsp), %rdi
movl $0x315, %esi            # imm = 0x315
callq 0x11600
jmp 0x9cb22
leaq 0x3f8(%rsp), %rdi
leaq 0x3d8(%rsp), %rsi
leaq 0x3b0(%rsp), %rdx
callq 0x11510
jmp 0x9cb41
leaq 0x46689(%rip), %rdx     # 0xe31d1
leaq 0x418(%rsp), %rdi
leaq 0x3f8(%rsp), %rsi
callq 0x114c0
jmp 0x9cb5f
leaq 0x36f(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0xdd50
movq 0x68(%rsp), %rdx
leaq 0x4ae5b(%rip), %rsi     # 0xe79d8
leaq 0x370(%rsp), %rdi
callq 0xfae0
jmp 0x9cb8c
leaq 0x46e11(%rip), %rdx     # 0xe39a4
leaq 0x390(%rsp), %rdi
leaq 0x370(%rsp), %rsi
callq 0x114c0
jmp 0x9cbaa
leaq 0x438(%rsp), %rdi
leaq 0x418(%rsp), %rsi
leaq 0x390(%rsp), %rdx
callq 0x11510
jmp 0x9cbc9
leaq 0x4aec9(%rip), %rdx     # 0xe7a99
leaq 0x458(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0x114c0
jmp 0x9cbe7
leaq 0x458(%rsp), %rdi
callq 0x173d0
jmp 0x9cbf6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9cd3e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9cd31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9cd24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9cd17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9ccfd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9ccf0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9cce3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9ccd6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
leaq 0x458(%rsp), %rdi
callq 0xdf08
leaq 0x438(%rsp), %rdi
callq 0xdf08
leaq 0x390(%rsp), %rdi
callq 0xdf08
leaq 0x370(%rsp), %rdi
callq 0xdf08
leaq 0x36f(%rsp), %rdi
callq 0xd7a0
leaq 0x418(%rsp), %rdi
callq 0xdf08
leaq 0x3f8(%rsp), %rdi
callq 0xdf08
leaq 0x3b0(%rsp), %rdi
callq 0xdf08
leaq 0x3d8(%rsp), %rdi
callq 0xdf08
leaq 0x3d7(%rsp), %rdi
callq 0xd7a0
jmp 0x9d752
movl $0x1, %edi
callq 0xd8e0
jmp 0x9cd5c
jmp 0x9cd5e
movq 0x4a0(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0xa48(%rsp), %rdi
callq 0x147a0
movq %rax, %rcx
movq 0x60(%rsp), %rax
cmpq %rcx, %rax
jae 0x9cea5
movq 0xa48(%rsp), %rdi
movq 0x4a0(%rsp), %rsi
callq 0xa4500
movq %rax, 0x360(%rsp)
xorl %edi, %edi
callq 0x23220
testb $0x1, %al
jne 0x9cdb3
jmp 0x9cded
movq 0x831d6(%rip), %rdi     # 0x11ff90
leaq 0x4acff(%rip), %rsi     # 0xe7ac0
callq 0xd6f0
movq 0x360(%rsp), %rdi
movq 0x831bb(%rip), %rsi     # 0x11ff90
callq 0xa4b00
movq 0x831af(%rip), %rdi     # 0x11ff90
movq 0x83168(%rip), %rsi     # 0x11ff50
callq 0xd760
movq 0x360(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x478(%rsp), %rcx
cmpq 0x70(%rcx), %rax
jb 0x9ce0c
jmp 0x9cea5
movq 0x478(%rsp), %rdi
movq 0x360(%rsp), %rsi
callq 0x985a0
testb $0x1, %al
jne 0x9ce27
jmp 0x9ce8c
movq 0x478(%rsp), %rdi
addq $0x88, %rdi
movq 0x360(%rsp), %rsi
callq 0xa47b0
xorl %edi, %edi
callq 0x23220
testb $0x1, %al
jne 0x9ce50
jmp 0x9ce8a
movq 0x83139(%rip), %rdi     # 0x11ff90
leaq 0x4ac7b(%rip), %rsi     # 0xe7ad9
callq 0xd6f0
movq 0x360(%rsp), %rdi
movq 0x8311e(%rip), %rsi     # 0x11ff90
callq 0xa4b00
movq 0x83112(%rip), %rdi     # 0x11ff90
movq 0x830cb(%rip), %rsi     # 0x11ff50
callq 0xd760
jmp 0x9ce8c
movq 0x4a0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x4a0(%rsp)
jmp 0x9cd5e
movq 0x478(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, 0x498(%rsp)
leaq 0x488(%rsp), %rdi
callq 0xa4920
jmp 0x9ca3e
movq 0xf8(%rsp), %rax
movq 0xb8(%rax), %rax
movq %rax, 0x358(%rsp)
movq $0x0, 0x350(%rsp)
movq 0xa48(%rsp), %rax
movq %rax, 0x348(%rsp)
movq 0x348(%rsp), %rdi
callq 0x11c10
movq %rax, 0x340(%rsp)
movq 0x348(%rsp), %rdi
callq 0x11c40
movq %rax, 0x338(%rsp)
leaq 0x340(%rsp), %rdi
leaq 0x338(%rsp), %rsi
callq 0x11c70
testb $0x1, %al
jne 0x9cf46
jmp 0x9d603
leaq 0x340(%rsp), %rdi
callq 0x11cb0
movq %rax, 0x330(%rsp)
movq 0x358(%rsp), %rax
movq 0x330(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x9d2b9
callq 0xd0a0
movq 0xf8(%rsp), %rdi
movl $0x0, (%rax)
addq $0x98, %rdi
movq 0x350(%rsp), %rsi
callq 0xdec0
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x9d22f
callq 0xd8c0
cmpl $0x0, %eax
jne 0x9d225
leaq 0x28f(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xdd50
movq 0x58(%rsp), %rdx
leaq 0x4a19c(%rip), %rsi     # 0xe7170
leaq 0x290(%rsp), %rdi
callq 0xfae0
jmp 0x9cfe3
leaq 0x268(%rsp), %rdi
movl $0x34c, %esi            # imm = 0x34C
callq 0x11600
jmp 0x9cff7
leaq 0x2b0(%rsp), %rdi
leaq 0x290(%rsp), %rsi
leaq 0x268(%rsp), %rdx
callq 0x11510
jmp 0x9d016
leaq 0x461b4(%rip), %rdx     # 0xe31d1
leaq 0x2d0(%rsp), %rdi
leaq 0x2b0(%rsp), %rsi
callq 0x114c0
jmp 0x9d034
leaq 0x227(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xdd50
movq 0x50(%rsp), %rdx
leaq 0x4a986(%rip), %rsi     # 0xe79d8
leaq 0x228(%rsp), %rdi
callq 0xfae0
jmp 0x9d061
leaq 0x4693c(%rip), %rdx     # 0xe39a4
leaq 0x248(%rsp), %rdi
leaq 0x228(%rsp), %rsi
callq 0x114c0
jmp 0x9d07f
leaq 0x2f0(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
leaq 0x248(%rsp), %rdx
callq 0x11510
jmp 0x9d09e
leaq 0x4aa3c(%rip), %rdx     # 0xe7ae1
leaq 0x310(%rsp), %rdi
leaq 0x2f0(%rsp), %rsi
callq 0x114c0
jmp 0x9d0bc
leaq 0x310(%rsp), %rdi
callq 0x173d0
jmp 0x9d0cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d213
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d206
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d1f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d1ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d1d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d1c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d1b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d1ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
leaq 0x310(%rsp), %rdi
callq 0xdf08
leaq 0x2f0(%rsp), %rdi
callq 0xdf08
leaq 0x248(%rsp), %rdi
callq 0xdf08
leaq 0x228(%rsp), %rdi
callq 0xdf08
leaq 0x227(%rsp), %rdi
callq 0xd7a0
leaq 0x2d0(%rsp), %rdi
callq 0xdf08
leaq 0x2b0(%rsp), %rdi
callq 0xdf08
leaq 0x268(%rsp), %rdi
callq 0xdf08
leaq 0x290(%rsp), %rdi
callq 0xdf08
leaq 0x28f(%rsp), %rdi
callq 0xd7a0
jmp 0x9d752
movl $0x1, %edi
callq 0xd8e0
movq 0x350(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x350(%rsp)
movq 0xf8(%rsp), %rdi
addq $0x98, %rdi
movq 0x350(%rsp), %rsi
callq 0xdec0
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x9d27d
movq 0x350(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x350(%rsp)
jmp 0x9d243
movq 0xf8(%rsp), %rdi
addq $0x98, %rdi
movq 0x350(%rsp), %rsi
callq 0xdec0
cmpb $0x0, (%rax)
jne 0x9d2a0
jmp 0x9d2b9
movq 0x358(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x358(%rsp)
jmp 0x9cf5b
movq 0xf8(%rsp), %rdi
addq $0x98, %rdi
movq 0x350(%rsp), %rsi
callq 0xdec0
cmpb $0x0, (%rax)
jne 0x9d2df
jmp 0x9d603
movq 0x358(%rsp), %rcx
movq 0x330(%rsp), %rax
movq 0x8(%rax), %rdx
movb $0x0, 0x1fe(%rsp)
movb $0x0, 0x1fd(%rsp)
movb $0x0, 0x1d6(%rsp)
movb $0x0, 0x1d5(%rsp)
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, 0x4f(%rsp)
jne 0x9d435
movq 0xf8(%rsp), %rdi
addq $0x98, %rdi
movq 0x350(%rsp), %rsi
callq 0xdec0
movq %rax, 0x38(%rsp)
leaq 0x1ff(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xdd50
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movb $0x1, 0x1fe(%rsp)
leaq 0x200(%rsp), %rdi
callq 0xfae0
jmp 0x9d376
movb $0x1, 0x1fd(%rsp)
movq 0x330(%rsp), %rsi
addq $0x30, %rsi
leaq 0x200(%rsp), %rdi
callq 0x4bfd0
movb %al, 0x37(%rsp)
jmp 0x9d39d
movb 0x37(%rsp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x4f(%rsp)
jne 0x9d3b1
jmp 0x9d435
movq 0xf8(%rsp), %rdi
addq $0x30, %rdi
movq 0x350(%rsp), %rsi
callq 0xdec0
movq %rax, 0x28(%rsp)
jmp 0x9d3d1
leaq 0x1d7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xdd50
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
movb $0x1, 0x1d6(%rsp)
leaq 0x1d8(%rsp), %rdi
callq 0xfae0
jmp 0x9d404
movb $0x1, 0x1d5(%rsp)
movq 0x330(%rsp), %rsi
addq $0x30, %rsi
leaq 0x1d8(%rsp), %rdi
callq 0x4bfd0
movb %al, 0x1f(%rsp)
jmp 0x9d42b
movb 0x1f(%rsp), %al
movb %al, 0x4f(%rsp)
jmp 0x9d435
movb 0x4f(%rsp), %al
movb %al, 0x1e(%rsp)
testb $0x1, 0x1d5(%rsp)
jne 0x9d449
jmp 0x9d456
leaq 0x1d8(%rsp), %rdi
callq 0xdf08
testb $0x1, 0x1d6(%rsp)
jne 0x9d462
jmp 0x9d46f
leaq 0x1d7(%rsp), %rdi
callq 0xd7a0
testb $0x1, 0x1fd(%rsp)
jne 0x9d47b
jmp 0x9d488
leaq 0x200(%rsp), %rdi
callq 0xdf08
testb $0x1, 0x1fe(%rsp)
jne 0x9d494
jmp 0x9d4a1
leaq 0x1ff(%rsp), %rdi
callq 0xd7a0
movb 0x1e(%rsp), %al
testb $0x1, %al
jne 0x9d4ae
jmp 0x9d5ef
movq 0xf8(%rsp), %rsi
movq %rsi, %rax
addq $0x218, %rax            # imm = 0x218
movq %rax, 0x8(%rsp)
movq 0x330(%rsp), %rdx
leaq 0x120(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xa4bb0
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xa47e0
jmp 0x9d4ef
leaq 0x120(%rsp), %rdi
callq 0xa4820
jmp 0x9d5ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d5ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d590
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
jmp 0x9d575
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
testb $0x1, 0x1d5(%rsp)
jne 0x9d566
jmp 0x9d573
leaq 0x1d8(%rsp), %rdi
callq 0xdf08
jmp 0x9d575
testb $0x1, 0x1d6(%rsp)
jne 0x9d581
jmp 0x9d58e
leaq 0x1d7(%rsp), %rdi
callq 0xd7a0
jmp 0x9d590
testb $0x1, 0x1fd(%rsp)
jne 0x9d59c
jmp 0x9d5a9
leaq 0x200(%rsp), %rdi
callq 0xdf08
jmp 0x9d5ab
testb $0x1, 0x1fe(%rsp)
jne 0x9d5b7
jmp 0x9d5c4
leaq 0x1ff(%rsp), %rdi
callq 0xd7a0
jmp 0x9d752
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x990(%rsp)
movl %eax, 0x98c(%rsp)
leaq 0x120(%rsp), %rdi
callq 0xa4820
jmp 0x9d752
jmp 0x9d5f1
leaq 0x340(%rsp), %rdi
callq 0x12410
jmp 0x9cf28
movq 0xf8(%rsp), %rdi
addq $0x218, %rdi            # imm = 0x218
callq 0xa4ce0
xorl %edi, %edi
callq 0x23220
testb $0x1, %al
jne 0x9d627
jmp 0x9d74a
movq 0x82962(%rip), %rdi     # 0x11ff90
movq 0x8291b(%rip), %rsi     # 0x11ff50
callq 0xd760
movq 0xf8(%rsp), %rsi
addq $0x10, %rsi
movq 0x82943(%rip), %rdi     # 0x11ff90
callq 0xd680
movq %rax, %rdi
leaq 0x4a40d(%rip), %rsi     # 0xe7a69
callq 0xd6f0
movq 0xf8(%rsp), %rsi
movq %rax, %rdi
addq $0x78, %rsi
callq 0xd680
movq %rax, %rdi
leaq 0x4a404(%rip), %rsi     # 0xe7a83
callq 0xd6f0
movq %rax, %rdi
movq 0x828c2(%rip), %rsi     # 0x11ff50
callq 0xd760
movq 0x828f6(%rip), %rdi     # 0x11ff90
leaq 0x4a452(%rip), %rsi     # 0xe7af3
callq 0xd6f0
movq %rax, %rdi
movq 0x828a0(%rip), %rsi     # 0x11ff50
callq 0xd760
movq 0xf8(%rsp), %rax
addq $0x218, %rax            # imm = 0x218
movq %rax, 0x118(%rsp)
movq 0x118(%rsp), %rdi
callq 0xa4870
movq %rax, 0x110(%rsp)
movq 0x118(%rsp), %rdi
callq 0xa48a0
movq %rax, 0x108(%rsp)
leaq 0x110(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0xa48d0
testb $0x1, %al
jne 0x9d710
jmp 0x9d748
leaq 0x110(%rsp), %rdi
callq 0xa4910
movq %rax, 0x100(%rsp)
movq 0x100(%rsp), %rdi
movq 0x8285c(%rip), %rsi     # 0x11ff90
callq 0xa3e70
leaq 0x110(%rsp), %rdi
callq 0xa4920
jmp 0x9d6f5
jmp 0x9d74a
addq $0xa58, %rsp            # imm = 0xA58
retq
movq 0x990(%rsp), %rdi
callq 0xdd40
nop