// File: /workspace/github_c_makefile_star2_O0/thegenemyers[P]DASCRUBBER/align.c
// Function: Alignment_Cartoon
void Alignment_Cartoon(FILE *file, Alignment *align, int indent, int coord)
{ int   alen = align->alen;
  int   blen = align->blen;
  Path *path = align->path;
  int   comp = COMP(align->flags);
  int   w;

  fprintf(file,"%*s",indent,"");
  if (path->abpos > 0)
    fprintf(file,"    %*d ",coord,path->abpos);
  else
    fprintf(file,"%*s",coord+5,"");
  if (path->aepos < alen)
    fprintf(file,"%*s%d",coord+8,"",alen-path->aepos);
  fprintf(file,"\n");

  fprintf(file,"%*s",indent,"");
  if (path->abpos > 0)
    { fprintf(file,"A ");
      w = Number_Digits((int64) path->abpos);
      repchar(file,' ',coord-w);
      repchar(file,'=',w+3);
      fputc('+',file);
      repchar(file,'-',coord+5);
    }
  else
    { fprintf(file,"A %*s",coord+4,"");
      repchar(file,'-',coord+5);
    }

  if (path->aepos < alen)
    { fputc('+',file);
      w = Number_Digits((int64) (alen-path->aepos));
      repchar(file,'=',w+2);
      fputc('>',file);
      repchar(file,' ',w);
    }
  else
    { fputc('>',file);
      repchar(file,' ',coord+3);
    }

  { int asub, bsub;

    asub = path->aepos - path->abpos;
    bsub = path->bepos - path->bbpos;
    fprintf(file,"   dif/(len1+len2) = %d/(%d+%d) = %5.2f%%\n",
                 path->diffs,asub,bsub,(200.*path->diffs)/(asub+bsub));
  }

  { int   sym1e, sym2e;
    int   sym1p, sym2p;

    if (comp > 0)
      { sym1p = '<'; sym2p = '-'; sym1e = '<'; sym2e = '='; }
    else
      { sym1p = '-'; sym2p = '>'; sym1e = '='; sym2e = '>'; }

    fprintf(file,"%*s",indent,"");
    if (path->bbpos > 0)
      { fprintf(file,"B ");
        w = Number_Digits((int64) path->bbpos);
        repchar(file,' ',coord-w);
        fputc(sym1e,file);
        repchar(file,'=',w+2);
        fputc('+',file);
        repchar(file,'-',coord+5);
      }
    else
      { fprintf(file,"B ");
        repchar(file,' ',coord+3);
        fputc(sym1p,file);
        repchar(file,'-',coord+5);
      }
    if (path->bepos < blen)
      { fprintf(file,"+");
        w = Number_Digits((int64) (blen-path->bepos));
        repchar(file,'=',w+2);
        fprintf(file,"%c\n",sym2e);
      }
    else
      fprintf(file,"%c\n",sym2p);
  }

  fprintf(file,"%*s",indent,"");
  if (path->bbpos > 0)
    fprintf(file,"    %*d ",coord,path->bbpos);
  else
    fprintf(file,"%*s",coord+5,"");
  if (path->bepos < blen)
    fprintf(file,"%*s%d",coord+8,"",blen-path->bepos);
  fprintf(file,"\n");

  fflush(file);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movl 0x24(%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq 0x117ae(%rip), %rsi     # 0x2656e
leaq 0x12063(%rip), %rcx     # 0x26e2a
movb $0x0, %al
callq 0x2190
movq -0x28(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jle 0x14df6
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0x1180d(%rip), %rsi     # 0x265fa
movb $0x0, %al
callq 0x2190
jmp 0x14e15
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x5, %edx
leaq 0x11767(%rip), %rsi     # 0x2656e
leaq 0x1201c(%rip), %rcx     # 0x26e2a
movb $0x0, %al
callq 0x2190
movq -0x28(%rbp), %rax
movl 0x18(%rax), %eax
cmpl -0x1c(%rbp), %eax
jge 0x14e4c
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x8, %edx
movl -0x1c(%rbp), %r8d
movq -0x28(%rbp), %rax
subl 0x18(%rax), %r8d
leaq 0x117c5(%rip), %rsi     # 0x26603
leaq 0x11fe5(%rip), %rcx     # 0x26e2a
movb $0x0, %al
callq 0x2190
movq -0x8(%rbp), %rdi
leaq 0x11fd2(%rip), %rsi     # 0x26e29
movb $0x0, %al
callq 0x2190
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq 0x11702(%rip), %rsi     # 0x2656e
leaq 0x11fb7(%rip), %rcx     # 0x26e2a
movb $0x0, %al
callq 0x2190
movq -0x28(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jle 0x14ef2
movq -0x8(%rbp), %rdi
leaq 0x1177a(%rip), %rsi     # 0x26609
movb $0x0, %al
callq 0x2190
movq -0x28(%rbp), %rax
movslq 0x10(%rax), %rdi
callq 0x1b510
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
subl -0x30(%rbp), %edx
movl $0x20, %esi
callq 0x15270
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %edx
addl $0x3, %edx
movl $0x3d, %esi
callq 0x15270
movq -0x8(%rbp), %rsi
movl $0x2b, %edi
callq 0x2160
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x5, %edx
movl $0x2d, %esi
callq 0x15270
jmp 0x14f25
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x4, %edx
leaq 0x11709(%rip), %rsi     # 0x2660c
leaq 0x11f20(%rip), %rcx     # 0x26e2a
movb $0x0, %al
callq 0x2190
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x5, %edx
movl $0x2d, %esi
callq 0x15270
movq -0x28(%rbp), %rax
movl 0x18(%rax), %eax
cmpl -0x1c(%rbp), %eax
jge 0x14f89
movq -0x8(%rbp), %rsi
movl $0x2b, %edi
callq 0x2160
movl -0x1c(%rbp), %eax
movq -0x28(%rbp), %rcx
subl 0x18(%rcx), %eax
movslq %eax, %rdi
callq 0x1b510
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %edx
addl $0x2, %edx
movl $0x3d, %esi
callq 0x15270
movq -0x8(%rbp), %rsi
movl $0x3e, %edi
callq 0x2160
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %edx
movl $0x20, %esi
callq 0x15270
jmp 0x14fab
movq -0x8(%rbp), %rsi
movl $0x3e, %edi
callq 0x2160
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x3, %edx
movl $0x20, %esi
callq 0x15270
movq -0x28(%rbp), %rax
movl 0x18(%rax), %eax
movq -0x28(%rbp), %rcx
subl 0x10(%rcx), %eax
movl %eax, -0x34(%rbp)
movq -0x28(%rbp), %rax
movl 0x1c(%rax), %eax
movq -0x28(%rbp), %rcx
subl 0x14(%rcx), %eax
movl %eax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rax
movl 0xc(%rax), %edx
movl -0x34(%rbp), %ecx
movl -0x38(%rbp), %r8d
movq -0x28(%rbp), %rax
cvtsi2sdl 0xc(%rax), %xmm1
movsd 0x11440(%rip), %xmm0    # 0x26430
mulsd %xmm1, %xmm0
movl -0x34(%rbp), %eax
addl -0x38(%rbp), %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
leaq 0x11609(%rip), %rsi     # 0x26612
movb $0x1, %al
callq 0x2190
cmpl $0x0, -0x2c(%rbp)
jle 0x15034
movl $0x3c, -0x44(%rbp)
movl $0x2d, -0x48(%rbp)
movl $0x3c, -0x3c(%rbp)
movl $0x3d, -0x40(%rbp)
jmp 0x15050
movl $0x2d, -0x44(%rbp)
movl $0x3e, -0x48(%rbp)
movl $0x3d, -0x3c(%rbp)
movl $0x3e, -0x40(%rbp)
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq 0x11510(%rip), %rsi     # 0x2656e
leaq 0x11dc5(%rip), %rcx     # 0x26e2a
movb $0x0, %al
callq 0x2190
movq -0x28(%rbp), %rax
cmpl $0x0, 0x14(%rax)
jle 0x150f0
movq -0x8(%rbp), %rdi
leaq 0x115bc(%rip), %rsi     # 0x2663d
movb $0x0, %al
callq 0x2190
movq -0x28(%rbp), %rax
movslq 0x14(%rax), %rdi
callq 0x1b510
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
subl -0x30(%rbp), %edx
movl $0x20, %esi
callq 0x15270
movl -0x3c(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x2160
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %edx
addl $0x2, %edx
movl $0x3d, %esi
callq 0x15270
movq -0x8(%rbp), %rsi
movl $0x2b, %edi
callq 0x2160
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x5, %edx
movl $0x2d, %esi
callq 0x15270
jmp 0x15136
movq -0x8(%rbp), %rdi
leaq 0x11542(%rip), %rsi     # 0x2663d
movb $0x0, %al
callq 0x2190
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x3, %edx
movl $0x20, %esi
callq 0x15270
movl -0x44(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x2160
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x5, %edx
movl $0x2d, %esi
callq 0x15270
movq -0x28(%rbp), %rax
movl 0x1c(%rax), %eax
cmpl -0x20(%rbp), %eax
jge 0x15194
movq -0x8(%rbp), %rdi
leaq 0x114f3(%rip), %rsi     # 0x26640
movb $0x0, %al
callq 0x2190
movl -0x20(%rbp), %eax
movq -0x28(%rbp), %rcx
subl 0x1c(%rcx), %eax
movslq %eax, %rdi
callq 0x1b510
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %edx
addl $0x2, %edx
movl $0x3d, %esi
callq 0x15270
movq -0x8(%rbp), %rdi
movl -0x40(%rbp), %edx
leaq 0x114b7(%rip), %rsi     # 0x26642
movb $0x0, %al
callq 0x2190
jmp 0x151a9
movq -0x8(%rbp), %rdi
movl -0x48(%rbp), %edx
leaq 0x114a0(%rip), %rsi     # 0x26642
movb $0x0, %al
callq 0x2190
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq 0x113b7(%rip), %rsi     # 0x2656e
leaq 0x11c6c(%rip), %rcx     # 0x26e2a
movb $0x0, %al
callq 0x2190
movq -0x28(%rbp), %rax
cmpl $0x0, 0x14(%rax)
jle 0x151ed
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x14(%rax), %ecx
leaq 0x11416(%rip), %rsi     # 0x265fa
movb $0x0, %al
callq 0x2190
jmp 0x1520c
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x5, %edx
leaq 0x11370(%rip), %rsi     # 0x2656e
leaq 0x11c25(%rip), %rcx     # 0x26e2a
movb $0x0, %al
callq 0x2190
movq -0x28(%rbp), %rax
movl 0x1c(%rax), %eax
cmpl -0x20(%rbp), %eax
jge 0x15243
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %edx
addl $0x8, %edx
movl -0x20(%rbp), %r8d
movq -0x28(%rbp), %rax
subl 0x1c(%rax), %r8d
leaq 0x113ce(%rip), %rsi     # 0x26603
leaq 0x11bee(%rip), %rcx     # 0x26e2a
movb $0x0, %al
callq 0x2190
movq -0x8(%rbp), %rdi
leaq 0x11bdb(%rip), %rsi     # 0x26e29
movb $0x0, %al
callq 0x2190
movq -0x8(%rbp), %rdi
callq 0x2200
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)