// File: ncbi[P]amr/alignment.cpp
// Function: Alignment_sp::SeqChange::setNeighborhoodMismatch(unsigned long)
void SeqChange::setNeighborhoodMismatch (size_t flankingLen) 
{ 
  ASSERT (al);
  ASSERT (start < al->targetSeq. size ())
  

  neighborhoodMismatch = 0.0;
  if (! flankingLen)
    return;
  
    
  // PD-2001
  size_t span = 0;
  size_t mismatches = 0; 
  
  size_t j = 0;  // auxiliary

  // Left flank
  if (start)
  {
    j = start - 1; 
    while (start - j <= flankingLen)
    { 
      span++;
      if (al->targetSeq [j] != al->refSeq [j])
        mismatches++;
      if (j == 0)
        break;
      j--;
    }
  }
  ASSERT (start >= j);
  const size_t missed_left = min (min (al->targetTail (true), al->refStart), flankingLen + 1 - (start - j)); 
  span       += missed_left;
  mismatches += missed_left; 
  if (verbose ())
    cout << "missed_left: " << start  << ' ' << j << ' ' << missed_left << endl;

  // Right flank
  const size_t stop = getStop ();
  for (j = stop + 1; j < al->targetSeq. size () && j - stop <= flankingLen; j++)
  { 
    span++;
    if (al->targetSeq [j] != al->refSeq [j])
      mismatches++;
  }
  ASSERT (j >= stop);
  const size_t missed_right = min (min (al->targetTail (false), al->refLen - al->refEnd), flankingLen + 1 - (j - stop));
  span       += missed_right;
  mismatches += missed_right;     
  if (verbose ())
    cout << "missed_right: " << j << ' ' << missed_right << ' ' << mismatches << ' ' << span << endl;  
    
  ASSERT (mismatches <= span);
  
  neighborhoodMismatch = (double) mismatches / (double) span;
}

// Assembly:
subq $0x648, %rsp            # imm = 0x648
movq %rdi, 0x640(%rsp)
movq %rsi, 0x638(%rsp)
movq 0x640(%rsp), %rax
movq %rax, 0x78(%rsp)
callq 0xd0a0
movq %rax, %rcx
movq 0x78(%rsp), %rax
movl $0x0, (%rcx)
cmpq $0x0, 0x8(%rax)
jne 0x975b9
callq 0xd8c0
cmpl $0x0, %eax
jne 0x975af
leaq 0x597(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0xdd50
movq 0x70(%rsp), %rdx
leaq 0x4fe12(%rip), %rsi     # 0xe7170
leaq 0x598(%rsp), %rdi
callq 0xfae0
jmp 0x9736d
leaq 0x560(%rsp), %rdi
movl $0x16e, %esi            # imm = 0x16E
callq 0x11600
jmp 0x97381
leaq 0x5b8(%rsp), %rdi
leaq 0x598(%rsp), %rsi
leaq 0x560(%rsp), %rdx
callq 0x11510
jmp 0x973a0
leaq 0x4be2a(%rip), %rdx     # 0xe31d1
leaq 0x5d8(%rsp), %rdi
leaq 0x5b8(%rsp), %rsi
callq 0x114c0
jmp 0x973be
leaq 0x51f(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0xdd50
movq 0x68(%rsp), %rdx
leaq 0x50386(%rip), %rsi     # 0xe7762
leaq 0x520(%rsp), %rdi
callq 0xfae0
jmp 0x973eb
leaq 0x4c5b2(%rip), %rdx     # 0xe39a4
leaq 0x540(%rsp), %rdi
leaq 0x520(%rsp), %rsi
callq 0x114c0
jmp 0x97409
leaq 0x5f8(%rsp), %rdi
leaq 0x5d8(%rsp), %rsi
leaq 0x540(%rsp), %rdx
callq 0x11510
jmp 0x97428
leaq 0x50744(%rip), %rdx     # 0xe7b73
leaq 0x618(%rsp), %rdi
leaq 0x5f8(%rsp), %rsi
callq 0x114c0
jmp 0x97446
leaq 0x618(%rsp), %rdi
callq 0x173d0
jmp 0x97455
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x9759d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97590
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97583
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97576
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x9755c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x9754f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97542
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97535
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
leaq 0x618(%rsp), %rdi
callq 0xdf08
leaq 0x5f8(%rsp), %rdi
callq 0xdf08
leaq 0x540(%rsp), %rdi
callq 0xdf08
leaq 0x520(%rsp), %rdi
callq 0xdf08
leaq 0x51f(%rsp), %rdi
callq 0xd7a0
leaq 0x5d8(%rsp), %rdi
callq 0xdf08
leaq 0x5b8(%rsp), %rdi
callq 0xdf08
leaq 0x560(%rsp), %rdi
callq 0xdf08
leaq 0x598(%rsp), %rdi
callq 0xdf08
leaq 0x597(%rsp), %rdi
callq 0xd7a0
jmp 0x98591
movl $0x1, %edi
callq 0xd8e0
callq 0xd0a0
movq %rax, %rcx
movq 0x78(%rsp), %rax
movl $0x0, (%rcx)
movq 0x18(%rax), %rcx
movq %rcx, 0x60(%rsp)
movq 0x8(%rax), %rdi
addq $0x30, %rdi
callq 0xd520
movq %rax, %rcx
movq 0x60(%rsp), %rax
cmpq %rcx, %rax
jb 0x9787a
callq 0xd8c0
cmpl $0x0, %eax
jne 0x97870
leaq 0x477(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xdd50
movq 0x58(%rsp), %rdx
leaq 0x4fb51(%rip), %rsi     # 0xe7170
leaq 0x478(%rsp), %rdi
callq 0xfae0
jmp 0x9762e
leaq 0x450(%rsp), %rdi
movl $0x16f, %esi            # imm = 0x16F
callq 0x11600
jmp 0x97642
leaq 0x498(%rsp), %rdi
leaq 0x478(%rsp), %rsi
leaq 0x450(%rsp), %rdx
callq 0x11510
jmp 0x97661
leaq 0x4bb69(%rip), %rdx     # 0xe31d1
leaq 0x4b8(%rsp), %rdi
leaq 0x498(%rsp), %rsi
callq 0x114c0
jmp 0x9767f
leaq 0x40f(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xdd50
movq 0x50(%rsp), %rdx
leaq 0x500c5(%rip), %rsi     # 0xe7762
leaq 0x410(%rsp), %rdi
callq 0xfae0
jmp 0x976ac
leaq 0x4c2f1(%rip), %rdx     # 0xe39a4
leaq 0x430(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x114c0
jmp 0x976ca
leaq 0x4d8(%rsp), %rdi
leaq 0x4b8(%rsp), %rsi
leaq 0x430(%rsp), %rdx
callq 0x11510
jmp 0x976e9
leaq 0x50053(%rip), %rdx     # 0xe7743
leaq 0x4f8(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
callq 0x114c0
jmp 0x97707
leaq 0x4f8(%rsp), %rdi
callq 0x173d0
jmp 0x97716
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x9785e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97851
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97844
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97837
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x9781d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97810
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x977f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
leaq 0x4f8(%rsp), %rdi
callq 0xdf08
leaq 0x4d8(%rsp), %rdi
callq 0xdf08
leaq 0x430(%rsp), %rdi
callq 0xdf08
leaq 0x410(%rsp), %rdi
callq 0xdf08
leaq 0x40f(%rsp), %rdi
callq 0xd7a0
leaq 0x4b8(%rsp), %rdi
callq 0xdf08
leaq 0x498(%rsp), %rdi
callq 0xdf08
leaq 0x450(%rsp), %rdi
callq 0xdf08
leaq 0x478(%rsp), %rdi
callq 0xdf08
leaq 0x477(%rsp), %rdi
callq 0xd7a0
jmp 0x98591
movl $0x1, %edi
callq 0xd8e0
movq 0x78(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x80(%rax)
cmpq $0x0, 0x638(%rsp)
jne 0x9789a
jmp 0x98589
movq 0x78(%rsp), %rax
movq $0x0, 0x400(%rsp)
movq $0x0, 0x3f8(%rsp)
movq $0x0, 0x3f0(%rsp)
cmpq $0x0, 0x18(%rax)
je 0x979a1
movq 0x78(%rsp), %rax
movq 0x18(%rax), %rax
subq $0x1, %rax
movq %rax, 0x3f0(%rsp)
movq 0x78(%rsp), %rax
movq 0x18(%rax), %rax
subq 0x3f0(%rsp), %rax
cmpq 0x638(%rsp), %rax
ja 0x9799f
movq 0x78(%rsp), %rax
movq 0x400(%rsp), %rcx
addq $0x1, %rcx
movq %rcx, 0x400(%rsp)
movq 0x8(%rax), %rdi
addq $0x30, %rdi
movq 0x3f0(%rsp), %rsi
callq 0xd7d0
movq %rax, %rcx
movq 0x78(%rsp), %rax
movsbl (%rcx), %ecx
movl %ecx, 0x4c(%rsp)
movq 0x8(%rax), %rdi
addq $0x98, %rdi
movq 0x3f0(%rsp), %rsi
callq 0xd7d0
movq %rax, %rcx
movl 0x4c(%rsp), %eax
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x97979
movq 0x3f8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x3f8(%rsp)
cmpq $0x0, 0x3f0(%rsp)
jne 0x97986
jmp 0x9799f
movq 0x3f0(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x3f0(%rsp)
jmp 0x978e3
jmp 0x979a1
callq 0xd0a0
movq %rax, %rcx
movq 0x78(%rsp), %rax
movl $0x0, (%rcx)
movq 0x18(%rax), %rax
cmpq 0x3f0(%rsp), %rax
jae 0x97c4d
callq 0xd8c0
cmpl $0x0, %eax
jne 0x97c43
leaq 0x34f(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xdd50
movq 0x40(%rsp), %rdx
leaq 0x4f77e(%rip), %rsi     # 0xe7170
leaq 0x350(%rsp), %rdi
callq 0xfae0
jmp 0x97a01
leaq 0x328(%rsp), %rdi
movl $0x18b, %esi            # imm = 0x18B
callq 0x11600
jmp 0x97a15
leaq 0x370(%rsp), %rdi
leaq 0x350(%rsp), %rsi
leaq 0x328(%rsp), %rdx
callq 0x11510
jmp 0x97a34
leaq 0x4b796(%rip), %rdx     # 0xe31d1
leaq 0x390(%rsp), %rdi
leaq 0x370(%rsp), %rsi
callq 0x114c0
jmp 0x97a52
leaq 0x2e7(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xdd50
movq 0x38(%rsp), %rdx
leaq 0x4fcf2(%rip), %rsi     # 0xe7762
leaq 0x2e8(%rsp), %rdi
callq 0xfae0
jmp 0x97a7f
leaq 0x4bf1e(%rip), %rdx     # 0xe39a4
leaq 0x308(%rsp), %rdi
leaq 0x2e8(%rsp), %rsi
callq 0x114c0
jmp 0x97a9d
leaq 0x3b0(%rsp), %rdi
leaq 0x390(%rsp), %rsi
leaq 0x308(%rsp), %rdx
callq 0x11510
jmp 0x97abc
leaq 0x4fcdd(%rip), %rdx     # 0xe77a0
leaq 0x3d0(%rsp), %rdi
leaq 0x3b0(%rsp), %rsi
callq 0x114c0
jmp 0x97ada
leaq 0x3d0(%rsp), %rdi
callq 0x173d0
jmp 0x97ae9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97c31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97c24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97c17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97c0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97bf0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97be3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97bd6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x97bc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
leaq 0x3d0(%rsp), %rdi
callq 0xdf08
leaq 0x3b0(%rsp), %rdi
callq 0xdf08
leaq 0x308(%rsp), %rdi
callq 0xdf08
leaq 0x2e8(%rsp), %rdi
callq 0xdf08
leaq 0x2e7(%rsp), %rdi
callq 0xd7a0
leaq 0x390(%rsp), %rdi
callq 0xdf08
leaq 0x370(%rsp), %rdi
callq 0xdf08
leaq 0x328(%rsp), %rdi
callq 0xdf08
leaq 0x350(%rsp), %rdi
callq 0xdf08
leaq 0x34f(%rsp), %rdi
callq 0xd7a0
jmp 0x98591
movl $0x1, %edi
callq 0xd8e0
movq 0x78(%rsp), %rax
movq 0x8(%rax), %rdi
movl $0x1, %esi
callq 0xa4160
movq %rax, %rcx
movq 0x78(%rsp), %rax
movq %rcx, 0x2d0(%rsp)
movq 0x8(%rax), %rsi
addq $0xb8, %rsi
leaq 0x2d0(%rsp), %rdi
callq 0x14880
movq 0x78(%rsp), %rcx
movq %rax, %rdi
movq 0x638(%rsp), %rax
addq $0x1, %rax
movq 0x18(%rcx), %rcx
subq 0x3f0(%rsp), %rcx
subq %rcx, %rax
movq %rax, 0x2c8(%rsp)
leaq 0x2c8(%rsp), %rsi
callq 0x14880
movq (%rax), %rax
movq %rax, 0x2d8(%rsp)
movq 0x2d8(%rsp), %rax
addq 0x400(%rsp), %rax
movq %rax, 0x400(%rsp)
movq 0x2d8(%rsp), %rax
addq 0x3f8(%rsp), %rax
movq %rax, 0x3f8(%rsp)
xorl %edi, %edi
callq 0x23220
testb $0x1, %al
jne 0x97d08
jmp 0x97d75
movq 0x88281(%rip), %rdi     # 0x11ff90
leaq 0x4fa95(%rip), %rsi     # 0xe77ab
callq 0xd6f0
movq %rax, %rdi
movq 0x78(%rsp), %rax
movq 0x18(%rax), %rsi
callq 0xd180
movq %rax, %rdi
movl $0x20, %esi
callq 0xd870
movq %rax, %rdi
movq 0x3f0(%rsp), %rsi
callq 0xd180
movq %rax, %rdi
movl $0x20, %esi
callq 0xd870
movq %rax, %rdi
movq 0x2d8(%rsp), %rsi
callq 0xd180
movq %rax, %rdi
movq 0x881e0(%rip), %rsi     # 0x11ff50
callq 0xd760
movq 0x78(%rsp), %rdi
callq 0xa41c0
movq %rax, 0x2c0(%rsp)
movq 0x2c0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x3f0(%rsp)
movq 0x78(%rsp), %rax
movq 0x3f0(%rsp), %rcx
movq %rcx, 0x28(%rsp)
movq 0x8(%rax), %rdi
addq $0x30, %rdi
callq 0xd520
movq 0x28(%rsp), %rcx
movq %rax, %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, 0x37(%rsp)
jae 0x97dec
movq 0x3f0(%rsp), %rax
subq 0x2c0(%rsp), %rax
cmpq 0x638(%rsp), %rax
setbe %al
movb %al, 0x37(%rsp)
movb 0x37(%rsp), %al
testb $0x1, %al
jne 0x97df9
jmp 0x97e8b
movq 0x78(%rsp), %rax
movq 0x400(%rsp), %rcx
addq $0x1, %rcx
movq %rcx, 0x400(%rsp)
movq 0x8(%rax), %rdi
addq $0x30, %rdi
movq 0x3f0(%rsp), %rsi
callq 0xd7d0
movq %rax, %rcx
movq 0x78(%rsp), %rax
movsbl (%rcx), %ecx
movl %ecx, 0x24(%rsp)
movq 0x8(%rax), %rdi
addq $0x98, %rdi
movq 0x3f0(%rsp), %rsi
callq 0xd7d0
movq %rax, %rcx
movl 0x24(%rsp), %eax
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x97e70
movq 0x3f8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x3f8(%rsp)
jmp 0x97e72
movq 0x3f0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x3f0(%rsp)
jmp 0x97d9b
callq 0xd0a0
movl $0x0, (%rax)
movq 0x3f0(%rsp), %rax
cmpq 0x2c0(%rsp), %rax
jae 0x98133
callq 0xd8c0
cmpl $0x0, %eax
jne 0x98129
leaq 0x21f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xdd50
movq 0x18(%rsp), %rdx
leaq 0x4f298(%rip), %rsi     # 0xe7170
leaq 0x220(%rsp), %rdi
callq 0xfae0
jmp 0x97ee7
leaq 0x1f8(%rsp), %rdi
movl $0x19a, %esi            # imm = 0x19A
callq 0x11600
jmp 0x97efb
leaq 0x240(%rsp), %rdi
leaq 0x220(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x11510
jmp 0x97f1a
leaq 0x4b2b0(%rip), %rdx     # 0xe31d1
leaq 0x260(%rsp), %rdi
leaq 0x240(%rsp), %rsi
callq 0x114c0
jmp 0x97f38
leaq 0x1b7(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xdd50
movq 0x10(%rsp), %rdx
leaq 0x4f80c(%rip), %rsi     # 0xe7762
leaq 0x1b8(%rsp), %rdi
callq 0xfae0
jmp 0x97f65
leaq 0x4ba38(%rip), %rdx     # 0xe39a4
leaq 0x1d8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x114c0
jmp 0x97f83
leaq 0x280(%rsp), %rdi
leaq 0x260(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0x11510
jmp 0x97fa2
leaq 0x4f810(%rip), %rdx     # 0xe77b9
leaq 0x2a0(%rsp), %rdi
leaq 0x280(%rsp), %rsi
callq 0x114c0
jmp 0x97fc0
leaq 0x2a0(%rsp), %rdi
callq 0x173d0
jmp 0x97fcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x98117
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x9810a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x980fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x980f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x980d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x980c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x980bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x980af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
leaq 0x2a0(%rsp), %rdi
callq 0xdf08
leaq 0x280(%rsp), %rdi
callq 0xdf08
leaq 0x1d8(%rsp), %rdi
callq 0xdf08
leaq 0x1b8(%rsp), %rdi
callq 0xdf08
leaq 0x1b7(%rsp), %rdi
callq 0xd7a0
leaq 0x260(%rsp), %rdi
callq 0xdf08
leaq 0x240(%rsp), %rdi
callq 0xdf08
leaq 0x1f8(%rsp), %rdi
callq 0xdf08
leaq 0x220(%rsp), %rdi
callq 0xdf08
leaq 0x21f(%rsp), %rdi
callq 0xd7a0
jmp 0x98591
movl $0x1, %edi
callq 0xd8e0
movq 0x78(%rsp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0xa4160
movq 0x78(%rsp), %rcx
movq %rax, 0x1a0(%rsp)
movq 0x8(%rcx), %rax
movq 0xc8(%rax), %rax
movq 0x8(%rcx), %rcx
subq 0xc0(%rcx), %rax
movq %rax, 0x198(%rsp)
leaq 0x1a0(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x14880
movq %rax, %rdi
movq 0x638(%rsp), %rax
addq $0x1, %rax
movq 0x3f0(%rsp), %rcx
subq 0x2c0(%rsp), %rcx
subq %rcx, %rax
movq %rax, 0x190(%rsp)
leaq 0x190(%rsp), %rsi
callq 0x14880
movq (%rax), %rax
movq %rax, 0x1a8(%rsp)
movq 0x1a8(%rsp), %rax
addq 0x400(%rsp), %rax
movq %rax, 0x400(%rsp)
movq 0x1a8(%rsp), %rax
addq 0x3f8(%rsp), %rax
movq %rax, 0x3f8(%rsp)
xorl %edi, %edi
callq 0x23220
testb $0x1, %al
jne 0x98205
jmp 0x9828e
movq 0x87d84(%rip), %rdi     # 0x11ff90
leaq 0x4f5b0(%rip), %rsi     # 0xe77c3
callq 0xd6f0
movq %rax, %rdi
movq 0x3f0(%rsp), %rsi
callq 0xd180
movq %rax, %rdi
movl $0x20, %esi
callq 0xd870
movq %rax, %rdi
movq 0x1a8(%rsp), %rsi
callq 0xd180
movq %rax, %rdi
movl $0x20, %esi
callq 0xd870
movq %rax, %rdi
movq 0x3f8(%rsp), %rsi
callq 0xd180
movq %rax, %rdi
movl $0x20, %esi
callq 0xd870
movq %rax, %rdi
movq 0x400(%rsp), %rsi
callq 0xd180
movq %rax, %rdi
movq 0x87cc7(%rip), %rsi     # 0x11ff50
callq 0xd760
callq 0xd0a0
movl $0x0, (%rax)
movq 0x3f8(%rsp), %rax
cmpq 0x400(%rsp), %rax
jbe 0x98531
callq 0xd8c0
cmpl $0x0, %eax
jne 0x98527
leaq 0xef(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xdd50
movq 0x8(%rsp), %rdx
leaq 0x4ee95(%rip), %rsi     # 0xe7170
leaq 0xf0(%rsp), %rdi
callq 0xfae0
jmp 0x982ea
leaq 0xc8(%rsp), %rdi
movl $0x1a1, %esi            # imm = 0x1A1
callq 0x11600
jmp 0x982fe
leaq 0x110(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x11510
jmp 0x9831d
leaq 0x4aead(%rip), %rdx     # 0xe31d1
leaq 0x130(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x114c0
jmp 0x9833b
leaq 0x87(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xdd50
movq (%rsp), %rdx
leaq 0x4f40b(%rip), %rsi     # 0xe7762
leaq 0x88(%rsp), %rdi
callq 0xfae0
jmp 0x98366
leaq 0x4b637(%rip), %rdx     # 0xe39a4
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x114c0
jmp 0x98384
leaq 0x150(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x11510
jmp 0x983a3
leaq 0x4f428(%rip), %rdx     # 0xe77d2
leaq 0x170(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x114c0
jmp 0x983c1
leaq 0x170(%rsp), %rdi
callq 0x173d0
jmp 0x983d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x98518
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x9850b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x984fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x984f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x984d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x984ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x984bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
jmp 0x984b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x588(%rsp)
movl %eax, 0x584(%rsp)
leaq 0x170(%rsp), %rdi
callq 0xdf08
leaq 0x150(%rsp), %rdi
callq 0xdf08
leaq 0xa8(%rsp), %rdi
callq 0xdf08
leaq 0x88(%rsp), %rdi
callq 0xdf08
leaq 0x87(%rsp), %rdi
callq 0xd7a0
leaq 0x130(%rsp), %rdi
callq 0xdf08
leaq 0x110(%rsp), %rdi
callq 0xdf08
leaq 0xc8(%rsp), %rdi
callq 0xdf08
leaq 0xf0(%rsp), %rdi
callq 0xdf08
leaq 0xef(%rsp), %rdi
callq 0xd7a0
jmp 0x98591
movl $0x1, %edi
callq 0xd8e0
movq 0x78(%rsp), %rax
movq 0x3f8(%rsp), %xmm0
movaps 0x4eb4a(%rip), %xmm3    # 0xe7090
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x4eb4e(%rip), %xmm2    # 0xe70a0
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq 0x400(%rsp), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x80(%rax)
addq $0x648, %rsp            # imm = 0x648
retq
movq 0x588(%rsp), %rdi
callq 0xdd40
nop