// File: ncbi[P]amr/alignment.cpp
// Function: Alignment_sp::SeqChange::setStartTarget()
void SeqChange::setStartTarget ()
{
  ASSERT (al);
  ASSERT (start < al->targetSeq. size ());
  
  start_target = al->targetStart;
  if (al->targetStrand)
  {
    FOR (size_t, i, start)
      if (al->targetSeq [i] != '-')
        start_target += al->al2target_len;
  }
  else
  {
    FOR_REV_END (size_t, i, start + len, al->targetSeq. size ())
      if (al->targetSeq [i] != '-')
        start_target += al->al2target_len;
  }  
}

// Assembly:
subq $0x278, %rsp            # imm = 0x278
movq %rdi, 0x270(%rsp)
movq 0x270(%rsp), %rax
movq %rax, 0x28(%rsp)
callq 0xd0a0
movq %rax, %rcx
movq 0x28(%rsp), %rax
movl $0x0, (%rcx)
cmpq $0x0, 0x8(%rax)
jne 0x96f31
callq 0xd8c0
cmpl $0x0, %eax
jne 0x96f27
leaq 0x1cf(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xdd50
movq 0x20(%rsp), %rdx
leaq 0x5049a(%rip), %rsi     # 0xe7170
leaq 0x1d0(%rsp), %rdi
callq 0xfae0
jmp 0x96ce5
leaq 0x198(%rsp), %rdi
movl $0x158, %esi            # imm = 0x158
callq 0x11600
jmp 0x96cf9
leaq 0x1f0(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0x11510
jmp 0x96d18
leaq 0x4c4b2(%rip), %rdx     # 0xe31d1
leaq 0x210(%rsp), %rdi
leaq 0x1f0(%rsp), %rsi
callq 0x114c0
jmp 0x96d36
leaq 0x157(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xdd50
movq 0x18(%rsp), %rdx
leaq 0x509c0(%rip), %rsi     # 0xe7714
leaq 0x158(%rsp), %rdi
callq 0xfae0
jmp 0x96d63
leaq 0x4cc3a(%rip), %rdx     # 0xe39a4
leaq 0x178(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x114c0
jmp 0x96d81
leaq 0x230(%rsp), %rdi
leaq 0x210(%rsp), %rsi
leaq 0x178(%rsp), %rdx
callq 0x11510
jmp 0x96da0
leaq 0x50dcc(%rip), %rdx     # 0xe7b73
leaq 0x250(%rsp), %rdi
leaq 0x230(%rsp), %rsi
callq 0x114c0
jmp 0x96dbe
leaq 0x250(%rsp), %rdi
callq 0x173d0
jmp 0x96dcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x96f15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x96f08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x96efb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x96eee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x96ed4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x96ec7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x96eba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x96ead
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
leaq 0x250(%rsp), %rdi
callq 0xdf08
leaq 0x230(%rsp), %rdi
callq 0xdf08
leaq 0x178(%rsp), %rdi
callq 0xdf08
leaq 0x158(%rsp), %rdi
callq 0xdf08
leaq 0x157(%rsp), %rdi
callq 0xd7a0
leaq 0x210(%rsp), %rdi
callq 0xdf08
leaq 0x1f0(%rsp), %rdi
callq 0xdf08
leaq 0x198(%rsp), %rdi
callq 0xdf08
leaq 0x1d0(%rsp), %rdi
callq 0xdf08
leaq 0x1cf(%rsp), %rdi
callq 0xd7a0
jmp 0x972d4
movl $0x1, %edi
callq 0xd8e0
callq 0xd0a0
movq %rax, %rcx
movq 0x28(%rsp), %rax
movl $0x0, (%rcx)
movq 0x18(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq 0x8(%rax), %rdi
addq $0x30, %rdi
callq 0xd520
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
jb 0x971d8
callq 0xd8c0
cmpl $0x0, %eax
jne 0x971ce
leaq 0xaf(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xdd50
movq 0x8(%rsp), %rdx
leaq 0x501d9(%rip), %rsi     # 0xe7170
leaq 0xb0(%rsp), %rdi
callq 0xfae0
jmp 0x96fa6
leaq 0x88(%rsp), %rdi
movl $0x159, %esi            # imm = 0x159
callq 0x11600
jmp 0x96fba
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x11510
jmp 0x96fd9
leaq 0x4c1f1(%rip), %rdx     # 0xe31d1
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x114c0
jmp 0x96ff7
leaq 0x47(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xdd50
movq (%rsp), %rdx
leaq 0x50704(%rip), %rsi     # 0xe7714
leaq 0x48(%rsp), %rdi
callq 0xfae0
jmp 0x9701c
leaq 0x4c981(%rip), %rdx     # 0xe39a4
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x114c0
jmp 0x97034
leaq 0x110(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x11510
jmp 0x97050
leaq 0x506ec(%rip), %rdx     # 0xe7743
leaq 0x130(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x114c0
jmp 0x9706e
leaq 0x130(%rsp), %rdi
callq 0x173d0
jmp 0x9707d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x971bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x971af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x971a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x97195
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x9717e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x97174
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x9716a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x9715d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
leaq 0x130(%rsp), %rdi
callq 0xdf08
leaq 0x110(%rsp), %rdi
callq 0xdf08
leaq 0x68(%rsp), %rdi
callq 0xdf08
leaq 0x48(%rsp), %rdi
callq 0xdf08
leaq 0x47(%rsp), %rdi
callq 0xd7a0
leaq 0xf0(%rsp), %rdi
callq 0xdf08
leaq 0xd0(%rsp), %rdi
callq 0xdf08
leaq 0x88(%rsp), %rdi
callq 0xdf08
leaq 0xb0(%rsp), %rdi
callq 0xdf08
leaq 0xaf(%rsp), %rdi
callq 0xd7a0
jmp 0x972d4
movl $0x1, %edi
callq 0xd8e0
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x50(%rcx), %rcx
movq %rcx, 0x78(%rax)
movq 0x8(%rax), %rax
testb $0x1, 0x68(%rax)
je 0x97257
movq $0x0, 0x38(%rsp)
movq 0x28(%rsp), %rcx
movq 0x38(%rsp), %rax
cmpq 0x18(%rcx), %rax
jae 0x97255
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
addq $0x30, %rdi
movq 0x38(%rsp), %rsi
callq 0xd7d0
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x97243
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x210(%rcx), %rcx
addq 0x78(%rax), %rcx
movq %rcx, 0x78(%rax)
jmp 0x97245
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x971fc
jmp 0x972cc
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
addq $0x30, %rdi
callq 0xd520
movq %rax, 0x30(%rsp)
movq 0x28(%rsp), %rdx
movq 0x30(%rsp), %rax
movq %rax, %rcx
addq $-0x1, %rcx
movq %rcx, 0x30(%rsp)
movq 0x18(%rdx), %rcx
addq 0x20(%rdx), %rcx
cmpq %rcx, %rax
jbe 0x972ca
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
addq $0x30, %rdi
movq 0x30(%rsp), %rsi
callq 0xd7d0
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x972c8
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x210(%rcx), %rcx
addq 0x78(%rax), %rcx
movq %rcx, 0x78(%rax)
jmp 0x9726e
jmp 0x972cc
addq $0x278, %rsp            # imm = 0x278
retq
movq 0x1c0(%rsp), %rdi
callq 0xdd40
nopw %cs:(%rax,%rax)