// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/linearalign_affinegapcost.c
// Function: firstAtabRtabcolumn
static void firstAtabRtabcolumn(GtAffinealignDPentry *Atabcolumn,
                                GtAffineAlignRtabentry *Rtabcolumn,
                                GtUword ulen,
                                GtUword gap_opening,
                                GtUword gap_extension,
                                GtAffineAlignEdge edge)
{
  GtUword rowindex;
  GtWord rdist, ddist,idist;
  firstAtabRtabentry(Atabcolumn, gap_opening, edge);

  Rtabcolumn[0].val_R.idx = 0;
  Rtabcolumn[0].val_D.idx = 0;
  Rtabcolumn[0].val_I.idx = 0;

  Rtabcolumn[0].val_R.edge = Affine_R;
  Rtabcolumn[0].val_D.edge = Affine_D;
  Rtabcolumn[0].val_I.edge = Affine_I;

  for (rowindex = 1; rowindex <= ulen; rowindex++)
  {
    Atabcolumn[rowindex].Rvalue = GT_WORD_MAX;
    rdist = add_safe_max(Atabcolumn[rowindex-1].Rvalue,
                         gap_opening + gap_extension);
    ddist = add_safe_max(Atabcolumn[rowindex-1].Dvalue, gap_extension);
    idist = add_safe_max(Atabcolumn[rowindex-1].Dvalue,
                         gap_opening + gap_extension);
    Atabcolumn[rowindex].Dvalue = GT_MIN3(rdist, ddist, idist);
    Atabcolumn[rowindex].Ivalue = GT_WORD_MAX;

    Atabcolumn[rowindex].Redge = Affine_X;
    Atabcolumn[rowindex].Dedge = gt_linearalign_affinegapcost_set_edge(rdist,
                                                                       ddist,
                                                                       idist);
    Atabcolumn[rowindex].Iedge = Affine_X;

    Rtabcolumn[rowindex].val_R.idx = rowindex;
    Rtabcolumn[rowindex].val_D.idx = rowindex;
    Rtabcolumn[rowindex].val_I.idx = rowindex;

    Rtabcolumn[rowindex].val_R.edge = Affine_R;
    Rtabcolumn[rowindex].val_D.edge = Affine_D;
    Rtabcolumn[rowindex].val_I.edge = Affine_I;
  }
}

// Assembly:
subq $0x88, %rsp
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
movq %rdx, 0x70(%rsp)
movq %rcx, 0x68(%rsp)
movq %r8, 0x60(%rsp)
movl %r9d, 0x5c(%rsp)
movq 0x80(%rsp), %rdi
movq 0x68(%rsp), %rsi
movl 0x5c(%rsp), %edx
callq 0x1a1c40
movq 0x78(%rsp), %rax
movq $0x0, (%rax)
movq 0x78(%rsp), %rax
movq $0x0, 0x10(%rax)
movq 0x78(%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x78(%rsp), %rax
movl $0x0, 0x8(%rax)
movq 0x78(%rsp), %rax
movl $0x1, 0x18(%rax)
movq 0x78(%rsp), %rax
movl $0x2, 0x28(%rax)
movq $0x1, 0x50(%rsp)
movq 0x50(%rsp), %rax
cmpq 0x70(%rsp), %rax
ja 0x1a0fed
movq 0x80(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rcx
addq %rcx, %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
movq %rcx, (%rax)
movq 0x80(%rsp), %rax
movq 0x50(%rsp), %rcx
subq $0x1, %rcx
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rcx, (%rax)
je 0x1a0d65
movq 0x80(%rsp), %rax
movq 0x50(%rsp), %rcx
subq $0x1, %rcx
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0x68(%rsp), %rcx
addq 0x60(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x30(%rsp)
jmp 0x1a0d76
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
movq %rax, 0x30(%rsp)
jmp 0x1a0d76
movq 0x30(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x80(%rsp), %rax
movq 0x50(%rsp), %rcx
subq $0x1, %rcx
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rcx, 0x8(%rax)
je 0x1a0dd0
movq 0x80(%rsp), %rax
movq 0x50(%rsp), %rcx
subq $0x1, %rcx
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
addq 0x60(%rsp), %rax
movq %rax, 0x28(%rsp)
jmp 0x1a0de1
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
movq %rax, 0x28(%rsp)
jmp 0x1a0de1
movq 0x28(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x80(%rsp), %rax
movq 0x50(%rsp), %rcx
subq $0x1, %rcx
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rcx, 0x8(%rax)
je 0x1a0e43
movq 0x80(%rsp), %rax
movq 0x50(%rsp), %rcx
subq $0x1, %rcx
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq 0x68(%rsp), %rcx
addq 0x60(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x20(%rsp)
jmp 0x1a0e54
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
movq %rax, 0x20(%rsp)
jmp 0x1a0e54
movq 0x20(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x48(%rsp), %rax
cmpq 0x40(%rsp), %rax
jge 0x1a0e98
movq 0x48(%rsp), %rax
cmpq 0x38(%rsp), %rax
jge 0x1a0e82
movq 0x48(%rsp), %rax
movq %rax, 0x18(%rsp)
jmp 0x1a0e8c
movq 0x38(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
jmp 0x1a0ec4
movq 0x40(%rsp), %rax
cmpq 0x38(%rsp), %rax
jge 0x1a0eb0
movq 0x40(%rsp), %rax
movq %rax, 0x8(%rsp)
jmp 0x1a0eba
movq 0x38(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rcx
movq 0x80(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq 0x80(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rcx
addq %rcx, %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
movq %rcx, 0x10(%rax)
movq 0x80(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rcx
addq %rcx, %rax
movl $0x3, 0x20(%rax)
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rsi
movq 0x38(%rsp), %rdx
callq 0x19e680
movl %eax, %ecx
movq 0x80(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rdx
addq %rdx, %rax
movl %ecx, 0x24(%rax)
movq 0x80(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rcx
addq %rcx, %rax
movl $0x3, 0x28(%rax)
movq 0x50(%rsp), %rcx
movq 0x78(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq 0x50(%rsp), %rcx
movq 0x78(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movq 0x50(%rsp), %rcx
movq 0x78(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rdx
addq %rdx, %rax
movq %rcx, 0x20(%rax)
movq 0x78(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rcx
addq %rcx, %rax
movl $0x0, 0x8(%rax)
movq 0x78(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rcx
addq %rcx, %rax
movl $0x1, 0x18(%rax)
movq 0x78(%rsp), %rax
imulq $0x30, 0x50(%rsp), %rcx
addq %rcx, %rax
movl $0x2, 0x28(%rax)
movq 0x50(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x50(%rsp)
jmp 0x1a0ce1
addq $0x88, %rsp
retq
nopw %cs:(%rax,%rax)