// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/mgth/mg_combinedscore.c
// Function: fill_matrix
static void fill_matrix(CombinedScoreMatrixEntry **combinedscore_matrix,
                        char *hit_amino,
                        char *query_amino,
                        short current_row_fct,
                        GtUword position_contig,
                        GtUword position_hit,
                        GtUword hit_len,
                        GtUword contig_len,
                        GtUword hit_number,
                        ParseStruct *parsestruct_ptr,
                        double *matrix_row,
                        GtUword *count_row_fct,
                        char *contig_seq,
                        char *hit_seq, HitInformation *hit_information)
{
  GtUword j = 0,
    nr_of_strings = 0;
  unsigned short k = 0;

  GtUword query_from;
  GtUword query_to;

  query_from = LONG_VALUE(MATRIXSTRUCT(query_from), hit_number) - 1;
  query_to = LONG_VALUE(MATRIXSTRUCT(query_to), hit_number) - 1;

  /* das Ende von Blast-Hits innerhalb der Query-Sequenz wird mit -10
     bewertet */
  if (position_hit == hit_len - 3
      && *(GtWord *) MATRIXSTRUCT(query_to) != contig_len && k == 3)
  {
    /* Wenn der Leserahmen negativ ist, muessen die Combined-Scores von
       Rechts nach Links in die Combined-Score Matrix eingetragen werden -
       also ausgehend vom Query-to Wert */
    if (current_row_fct > 3)
    {
      matrix_row[POSITION
                 (MATRIXSTRUCT(query_to), hit_number, -position_contig,
                  -k + 1)] += ARGUMENTSSTRUCT(blasthit_end_value);
    }
    else
    {
      matrix_row[POSITION
                 (MATRIXSTRUCT(query_from), hit_number, position_contig,
                  k - 1)] += ARGUMENTSSTRUCT(blasthit_end_value);
    }
  }
  /* Stop-Codon in der Query-Sequenz, kein Stop-Codon in der Hit-Sequenz */
  else if (*hit_amino != '*' && *query_amino == '*')
  {
    /* Berechnung der Combined-Scores immer fuer die 3 DNA-Basen des
       Triplets Stop-Codon in der Query-Sequnez wird mit -2.0 bestraft;
       Anzahl der beteiligten Hits am Combined-Score um 1 erhoeht */
    for (k = 0; k < 3; k++)
    {
      add_scores(parsestruct_ptr, matrix_row, count_row_fct,
                 current_row_fct, hit_number, position_contig, k,
                 ARGUMENTSSTRUCT(stopcodon_hitseq));
    }
  }
  /* Stop-Codon in der Hit-Sequnez, kein Stop-Codon in der Query-Sequenz */
  else if (*hit_amino == '*' || *query_amino == '*')
  {
    /* Berechnung der Combined-Scores immer fuer die 3 DNA-Basen des
       Triplets Stop-Codon in der Hit-Sequnez wird mit -5.0 bestraft;
       Anzahl der beteiligten Hits am Combined-Score um 1 erhoeht */
    for (k = 0; k < 3; k++)
    {
      add_scores(parsestruct_ptr, matrix_row, count_row_fct,
                 current_row_fct, hit_number, position_contig, k,
                 ARGUMENTSSTRUCT(stopcodon_queryseq));
    }
  }
  /* AS von Hit und Query sind identisch */
  else if (*hit_amino == *query_amino)
  {
    /* Berechnung der Combined-Scores immer fuer die 3 DNA-Basen des
       Triplets */
    for (k = 0; k < 3; k++)
    {
      if (!ARGUMENTSSTRUCT(homology_mode))
      {
        /* DNA-Basen stimmen nicht ueberein - synonymer Austausch; hit_seq
           ist Zeiger auf die erste DNA-Base der Sequenz position ist die
           aktuelle Position in der DNA-Sequenz und k die Position im
           aktuellen Triplet */
        if (tolower(hit_seq[position_hit + k]) !=
            tolower(contig_seq[position_contig + k]))
        {
          /* Bei Uebereinstimmung der AS und keiner Basen-Uebereinstimmung
             wird der Zaheler der Synonymen Basen-Austausche erhoeht, der
             aktuellen Position in der Combined-Score-Matrix der Wert 1
             hinzuaddiert und gleichzeitig die Anzahl der beteiligten Hits
             ebenfalls um 1 erhoeht */
          add_scores(parsestruct_ptr, matrix_row, count_row_fct,
                     current_row_fct, hit_number, position_contig, k,
                     ARGUMENTSSTRUCT(synonomic_value));
          parsestruct_ptr->syn++;
        }
      }
      else
      {
        /* Experimenteller Status - Suche nach Homologien statt
           Orieentierung an Synonymen-Basenaustauschen */
        if (tolower(hit_seq[position_hit + k]) ==
            tolower(contig_seq[position_contig + k]))
        {
          /* Bei Uebereinstimmung der AS und keiner Basen-Uebereinstimmung
             wird der Zaheler der Synonymen Basen-Austausche erhoeht, der
             aktuellen Position in der Combined-Score-Matrix der Wert 1
             hinzuaddiert und gleichzeitig die Anzahl der beteiligten Hits
             ebenfalls um 1 erhoeht */
          add_scores(parsestruct_ptr, matrix_row, count_row_fct,
                     current_row_fct, hit_number, position_contig, k,
                     ARGUMENTSSTRUCT(synonomic_value));
          parsestruct_ptr->syn++;
        }
      }
    }
  }
  /* AS stimmen nicht ueberein - nicht synonymer Base-Austausch */
  else if (*hit_amino != *query_amino)
  {
    /* Berechnung der Combined-Scores immer fuer die 3 DNA-Basen des
       Triplets */
    for (k = 0; k < 3; k++)
    {
      /* DNA-Basen stimmen nicht ueberein - nicht-synonymer Austausch;
         hit_seq ist Zeiger auf die erste DNA-Base der Sequenz position
         ist die aktuelle Position in der DNA-Sequenz und k die Position
         im aktuellen Triplet */
      if (tolower(hit_seq[position_hit + k]) !=
          tolower(contig_seq[position_contig + k]))
      {
        /* Bei Nicht-Uebereinstimmung der AS und keiner
           Basen-Uebereinstimmung wird der Zaheler der Nicht-Synonymen
           Basen-Austausche erhoeht, vom Wert der aktuellen Position in
           der Combined-Score-Matrix der Wert 1 subtrahiert und
           gleichzeitig die Anzahl der beteiligten Hits ebenfalls um 1
           erhoeht */
        add_scores(parsestruct_ptr, matrix_row, count_row_fct,
                   current_row_fct, hit_number, position_contig, k,
                   ARGUMENTSSTRUCT(nonsynonomic_value));
        parsestruct_ptr->non_syn++;
      }
    }
  }
  /* Sequenzende und damit Ende der Bearbeitung des aktuellen Hits
     erreicht */
  if (hit_len - 3 == position_hit)
  {
    /* Falls die Non-Syn Anzahl 0 ist wird sie auf 1 gesetzt, um eine
       Division durch 0 zu vermeiden */
    if (parsestruct_ptr->non_syn == 0.0)
      parsestruct_ptr->non_syn = 1.0;
    /* Falls die Rate von Syn zu Non-Syn Austauschen kleiner als 1 ist,
       werden die Ergebnisse nicht betrachtet, da mit hoher WS keine
       codierende Sequenz vorliegt */
    if (parsestruct_ptr->syn / parsestruct_ptr->non_syn < 1.0)
    {
      parsestruct_ptr->syn = 0.0;
      parsestruct_ptr->non_syn = 0.0;
    }
    /* codierende Sequenz liegt mit hoher WS vor, da syn/non_syn >=1 */
    else
    {
      /* Abspeichern der Hit-Informationen */
      gt_str_array_add_cstr(hit_information->hit_gi,
                        gt_str_array_get(MATRIXSTRUCT(hit_gi_nr), hit_number));
      gt_str_array_add_cstr(hit_information->hit_def,
                        gt_str_array_get(MATRIXSTRUCT(hit_gi_def),
                                     hit_number));
      gt_str_array_add_cstr(hit_information->hit_hsp_nr,
                        gt_str_array_get(MATRIXSTRUCT(hit_num), hit_number));
      gt_str_array_add_cstr(hit_information->hit_from,
                        gt_str_array_get(MATRIXSTRUCT(hit_from), hit_number));
      gt_str_array_add_cstr(hit_information->hit_to,
                        gt_str_array_get(MATRIXSTRUCT(hit_to), hit_number));

      nr_of_strings = gt_str_array_size(hit_information->hit_def) - 1;

      /* Uebertragen der Ergebnisse des aktuellen Hits in die
         Combined-Score Matrix */
      for (j = query_from; j < query_to + 1; j++)
      {
        combinedscore_matrix[current_row_fct][j].matrix_score +=
          matrix_row[j];
        combinedscore_matrix[current_row_fct][j].count += count_row_fct[j];
        gt_array_add(combinedscore_matrix[current_row_fct][j].hit_number,
                  nr_of_strings);
      }
      parsestruct_ptr->syn = 0.0;
      parsestruct_ptr->non_syn = 0.0;
    }
  }
}

// Assembly:
subq $0xb8, %rsp
movw %cx, %ax
movq 0x100(%rsp), %rcx
movq 0xf8(%rsp), %rcx
movq 0xf0(%rsp), %rcx
movq 0xe8(%rsp), %rcx
movq 0xe0(%rsp), %rcx
movq 0xd8(%rsp), %rcx
movq 0xd0(%rsp), %rcx
movq 0xc8(%rsp), %rcx
movq 0xc0(%rsp), %rcx
movq %rdi, 0xb0(%rsp)
movq %rsi, 0xa8(%rsp)
movq %rdx, 0xa0(%rsp)
movw %ax, 0x9e(%rsp)
movq %r8, 0x90(%rsp)
movq %r9, 0x88(%rsp)
movq $0x0, 0x80(%rsp)
movq $0x0, 0x78(%rsp)
movw $0x0, 0x76(%rsp)
movq 0xd8(%rsp), %rax
movq 0x110(%rax), %rdi
movq 0xd0(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
subq $0x1, %rax
movq %rax, 0x68(%rsp)
movq 0xd8(%rsp), %rax
movq 0x118(%rax), %rdi
movq 0xd0(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
subq $0x1, %rax
movq %rax, 0x60(%rsp)
movq 0x88(%rsp), %rax
movq 0xc0(%rsp), %rcx
subq $0x3, %rcx
cmpq %rcx, %rax
jne 0x4eb12e
movq 0xd8(%rsp), %rax
movq 0x118(%rax), %rax
movq (%rax), %rax
cmpq 0xc8(%rsp), %rax
je 0x4eb12e
movzwl 0x76(%rsp), %eax
cmpl $0x3, %eax
jne 0x4eb12e
movswl 0x9e(%rsp), %eax
cmpl $0x3, %eax
jle 0x4eb0b5
movq 0xd8(%rsp), %rax
movsd 0x190(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
movq 0xe0(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0xd8(%rsp), %rax
movq 0x118(%rax), %rdi
movq 0xd0(%rsp), %rsi
callq 0x80b60
movsd 0x50(%rsp), %xmm0
movq %rax, %rcx
movq 0x58(%rsp), %rax
movq (%rcx), %rcx
xorl %edx, %edx
subq 0x90(%rsp), %rdx
addq %rdx, %rcx
movzwl 0x76(%rsp), %esi
xorl %edx, %edx
subl %esi, %edx
addl $0x1, %edx
movslq %edx, %rdx
addq %rdx, %rcx
subq $0x1, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x4eb129
movq 0xd8(%rsp), %rax
movsd 0x190(%rax), %xmm0
movsd %xmm0, 0x40(%rsp)
movq 0xe0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0xd8(%rsp), %rax
movq 0x110(%rax), %rdi
movq 0xd0(%rsp), %rsi
callq 0x80b60
movsd 0x40(%rsp), %xmm0
movq %rax, %rcx
movq 0x48(%rsp), %rax
movq (%rcx), %rcx
addq 0x90(%rsp), %rcx
movzwl 0x76(%rsp), %edx
subl $0x1, %edx
movslq %edx, %rdx
addq %rdx, %rcx
subq $0x1, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x4eb56d
movq 0xa8(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
je 0x4eb1cc
movq 0xa0(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
jne 0x4eb1cc
movw $0x0, 0x76(%rsp)
movzwl 0x76(%rsp), %eax
cmpl $0x3, %eax
jge 0x4eb1c7
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rsi
movq 0xe8(%rsp), %rdx
movw 0x9e(%rsp), %cx
movq 0xd0(%rsp), %r8
movq 0x90(%rsp), %r9
movw 0x76(%rsp), %ax
movq 0xd8(%rsp), %r10
movsd 0x1a0(%r10), %xmm0
movswl %cx, %ecx
movzwl %ax, %eax
movl %eax, (%rsp)
callq 0x4eb8d0
movw 0x76(%rsp), %ax
addw $0x1, %ax
movw %ax, 0x76(%rsp)
jmp 0x4eb159
jmp 0x4eb56b
movq 0xa8(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
je 0x4eb1ec
movq 0xa0(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
jne 0x4eb266
movw $0x0, 0x76(%rsp)
movzwl 0x76(%rsp), %eax
cmpl $0x3, %eax
jge 0x4eb261
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rsi
movq 0xe8(%rsp), %rdx
movw 0x9e(%rsp), %cx
movq 0xd0(%rsp), %r8
movq 0x90(%rsp), %r9
movw 0x76(%rsp), %ax
movq 0xd8(%rsp), %r10
movsd 0x198(%r10), %xmm0
movswl %cx, %ecx
movzwl %ax, %eax
movl %eax, (%rsp)
callq 0x4eb8d0
movw 0x76(%rsp), %ax
addw $0x1, %ax
movw %ax, 0x76(%rsp)
jmp 0x4eb1f3
jmp 0x4eb569
movq 0xa8(%rsp), %rax
movsbl (%rax), %eax
movq 0xa0(%rsp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4eb457
movw $0x0, 0x76(%rsp)
movzwl 0x76(%rsp), %eax
cmpl $0x3, %eax
jge 0x4eb452
movq 0xd8(%rsp), %rax
testb $0x1, 0x1e9(%rax)
jne 0x4eb377
movq 0xf8(%rsp), %rax
movq 0x88(%rsp), %rcx
movzwl 0x76(%rsp), %edx
addq %rdx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x19a20
movl %eax, 0x3c(%rsp)
movq 0xf0(%rsp), %rax
movq 0x90(%rsp), %rcx
movzwl 0x76(%rsp), %edx
addq %rdx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x19a20
movl %eax, %ecx
movl 0x3c(%rsp), %eax
cmpl %ecx, %eax
je 0x4eb372
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rsi
movq 0xe8(%rsp), %rdx
movw 0x9e(%rsp), %cx
movq 0xd0(%rsp), %r8
movq 0x90(%rsp), %r9
movw 0x76(%rsp), %ax
movq 0xd8(%rsp), %r10
movsd 0x180(%r10), %xmm0
movswl %cx, %ecx
movzwl %ax, %eax
movl %eax, (%rsp)
callq 0x4eb8d0
movq 0xd8(%rsp), %rax
movsd 0x2bede(%rip), %xmm0    # 0x517240
addsd 0xf0(%rax), %xmm0
movsd %xmm0, 0xf0(%rax)
jmp 0x4eb43d
movq 0xf8(%rsp), %rax
movq 0x88(%rsp), %rcx
movzwl 0x76(%rsp), %edx
addq %rdx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x19a20
movl %eax, 0x38(%rsp)
movq 0xf0(%rsp), %rax
movq 0x90(%rsp), %rcx
movzwl 0x76(%rsp), %edx
addq %rdx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x19a20
movl %eax, %ecx
movl 0x38(%rsp), %eax
cmpl %ecx, %eax
jne 0x4eb43b
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rsi
movq 0xe8(%rsp), %rdx
movw 0x9e(%rsp), %cx
movq 0xd0(%rsp), %r8
movq 0x90(%rsp), %r9
movw 0x76(%rsp), %ax
movq 0xd8(%rsp), %r10
movsd 0x180(%r10), %xmm0
movswl %cx, %ecx
movzwl %ax, %eax
movl %eax, (%rsp)
callq 0x4eb8d0
movq 0xd8(%rsp), %rax
movsd 0x2be15(%rip), %xmm0    # 0x517240
addsd 0xf0(%rax), %xmm0
movsd %xmm0, 0xf0(%rax)
jmp 0x4eb43d
jmp 0x4eb43f
movw 0x76(%rsp), %ax
addw $0x1, %ax
movw %ax, 0x76(%rsp)
jmp 0x4eb28b
jmp 0x4eb567
movq 0xa8(%rsp), %rax
movsbl (%rax), %eax
movq 0xa0(%rsp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x4eb565
movw $0x0, 0x76(%rsp)
movzwl 0x76(%rsp), %eax
cmpl $0x3, %eax
jge 0x4eb563
movq 0xf8(%rsp), %rax
movq 0x88(%rsp), %rcx
movzwl 0x76(%rsp), %edx
addq %rdx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x19a20
movl %eax, 0x34(%rsp)
movq 0xf0(%rsp), %rax
movq 0x90(%rsp), %rcx
movzwl 0x76(%rsp), %edx
addq %rdx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x19a20
movl %eax, %ecx
movl 0x34(%rsp), %eax
cmpl %ecx, %eax
je 0x4eb54e
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rsi
movq 0xe8(%rsp), %rdx
movw 0x9e(%rsp), %cx
movq 0xd0(%rsp), %r8
movq 0x90(%rsp), %r9
movw 0x76(%rsp), %ax
movq 0xd8(%rsp), %r10
movsd 0x188(%r10), %xmm0
movswl %cx, %ecx
movzwl %ax, %eax
movl %eax, (%rsp)
callq 0x4eb8d0
movq 0xd8(%rsp), %rax
movsd 0x2bd02(%rip), %xmm0    # 0x517240
addsd 0xf8(%rax), %xmm0
movsd %xmm0, 0xf8(%rax)
jmp 0x4eb550
movw 0x76(%rsp), %ax
addw $0x1, %ax
movw %ax, 0x76(%rsp)
jmp 0x4eb47c
jmp 0x4eb565
jmp 0x4eb567
jmp 0x4eb569
jmp 0x4eb56b
jmp 0x4eb56d
movq 0xc0(%rsp), %rax
subq $0x3, %rax
cmpq 0x88(%rsp), %rax
jne 0x4eb865
movq 0xd8(%rsp), %rax
movsd 0xf8(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x4eb5ba
jp 0x4eb5ba
movq 0xd8(%rsp), %rax
movsd 0x2bc8e(%rip), %xmm0    # 0x517240
movsd %xmm0, 0xf8(%rax)
movq 0xd8(%rsp), %rax
movsd 0xf0(%rax), %xmm1
movq 0xd8(%rsp), %rax
divsd 0xf8(%rax), %xmm1
movsd 0x2bc5e(%rip), %xmm0    # 0x517240
ucomisd %xmm1, %xmm0
jbe 0x4eb613
movq 0xd8(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xf0(%rax)
movq 0xd8(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xf8(%rax)
jmp 0x4eb863
movq 0x100(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0xd8(%rsp), %rax
movq 0x130(%rax), %rdi
movq 0xd0(%rsp), %rsi
callq 0x11f8c0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x11f720
movq 0x100(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0xd8(%rsp), %rax
movq 0x140(%rax), %rdi
movq 0xd0(%rsp), %rsi
callq 0x11f8c0
movq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x11f720
movq 0x100(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0xd8(%rsp), %rax
movq 0x138(%rax), %rdi
movq 0xd0(%rsp), %rsi
callq 0x11f8c0
movq 0x18(%rsp), %rdi
movq %rax, %rsi
callq 0x11f720
movq 0x100(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0xd8(%rsp), %rax
movq 0x158(%rax), %rdi
movq 0xd0(%rsp), %rsi
callq 0x11f8c0
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x11f720
movq 0x100(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0xd8(%rsp), %rax
movq 0x160(%rax), %rdi
movq 0xd0(%rsp), %rsi
callq 0x11f8c0
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x11f720
movq 0x100(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11fcc0
subq $0x1, %rax
movq %rax, 0x78(%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
movq 0x60(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jae 0x4eb83d
movq 0xe0(%rsp), %rax
movq 0x80(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0xb0(%rsp), %rax
movswq 0x9e(%rsp), %rcx
movq (%rax,%rcx,8), %rax
imulq $0x18, 0x80(%rsp), %rcx
addq %rcx, %rax
addsd (%rax), %xmm0
movsd %xmm0, (%rax)
movq 0xe8(%rsp), %rax
movq 0x80(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0xb0(%rsp), %rax
movswq 0x9e(%rsp), %rdx
movq (%rax,%rdx,8), %rax
imulq $0x18, 0x80(%rsp), %rdx
addq %rdx, %rax
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq 0xb0(%rsp), %rax
movswq 0x9e(%rsp), %rcx
movq (%rax,%rcx,8), %rax
imulq $0x18, 0x80(%rsp), %rcx
addq %rcx, %rax
movq 0x10(%rax), %rdi
leaq 0x78(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
jmp 0x4eb75b
movq 0xd8(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xf0(%rax)
movq 0xd8(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xf8(%rax)
jmp 0x4eb865
addq $0xb8, %rsp
retq
nopl (%rax)