// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/spec_results.c
// Function: gt_spec_aspect_make_node_model
static int gt_spec_aspect_make_node_model(void *key, void *value, void *data,
                                          GT_UNUSED GtError *err)
{
  GtGenomeNode *gn = (GtGenomeNode*) key;
  GtSpecAspectNodeResult *sanr = (GtSpecAspectNodeResult*) value;
  GtSpecResultsReportInfo *info = (GtSpecResultsReportInfo*) data;
  const char *tmp = NULL;
  bool has_id = false;
  GtUword i = 0;

  if (gt_feature_node_try_cast(gn)) {
    if ((tmp = gt_feature_node_get_attribute((GtFeatureNode*) gn, "ID"))) {
      has_id = true;
    }
  }
  if (gt_str_array_size(sanr->failure_messages) > 0
        || gt_str_array_size(sanr->runtime_error_messages) > 0) {
    lua_pushnumber(info->L, info->node_i++);
    lua_newtable(info->L);
    if (has_id) {
      lua_pushstring(info->L, "ID");
      lua_pushstring(info->L, tmp);
      lua_rawset(info->L, -3);
    }
    lua_pushstring(info->L, "filename");
    lua_pushstring(info->L, gt_genome_node_get_filename(gn));
    lua_rawset(info->L, -3);
    lua_pushstring(info->L, "linenumber");
    lua_pushnumber(info->L, gt_genome_node_get_line_number(gn));
    lua_rawset(info->L, -3);
    lua_pushstring(info->L, "node");
    gt_lua_genome_node_push(info->L, gt_genome_node_ref(gn));
    lua_rawset(info->L, -3);
    lua_pushstring(info->L, "failure_messages");
    lua_newtable(info->L);
    for (i = 0; i < gt_str_array_size(sanr->failure_messages); i++) {
      lua_pushnumber(info->L, i+1);
      lua_pushstring(info->L, gt_str_array_get(sanr->failure_messages, i));
      lua_rawset(info->L, -3);
    }
    lua_rawset(info->L, -3);
    lua_pushstring(info->L, "runtime_error_messages");
    lua_newtable(info->L);
    for (i = 0; i < gt_str_array_size(sanr->runtime_error_messages); i++) {
      lua_pushnumber(info->L, i+1);
      lua_pushstring(info->L, gt_str_array_get(sanr->runtime_error_messages,
                                               i));
      lua_rawset(info->L, -3);
    }
    lua_rawset(info->L, -3);
    lua_rawset(info->L, -3);
  }
  return 0;
}

// Assembly:
subq $0x88, %rsp
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
movq %rdx, 0x70(%rsp)
movq %rcx, 0x68(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x50(%rsp)
movq $0x0, 0x48(%rsp)
movb $0x0, 0x47(%rsp)
movq $0x0, 0x38(%rsp)
movq 0x60(%rsp), %rdi
callq 0x170450
cmpq $0x0, %rax
je 0x1dc139
movq 0x60(%rsp), %rdi
leaq 0x3d398b(%rip), %rsi    # 0x5afaad
callq 0x16c040
movq %rax, 0x48(%rsp)
cmpq $0x0, %rax
je 0x1dc137
movb $0x1, 0x47(%rsp)
jmp 0x1dc139
movq 0x58(%rsp), %rax
movq (%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
ja 0x1dc164
movq 0x58(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
jbe 0x1dc4ef
movq 0x50(%rsp), %rcx
movq 0x10(%rcx), %rax
movq 0x18(%rcx), %rdi
movq %rax, %rdx
incq %rdx
movq %rdx, 0x10(%rcx)
movq %rax, %xmm0
movaps 0x33c7a9(%rip), %xmm1   # 0x518930
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x33c7ad(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
callq 0x3354a0
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x336790
testb $0x1, 0x47(%rsp)
je 0x1dc1fb
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
leaq 0x3d38dd(%rip), %rsi    # 0x5afaad
callq 0x335740
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x48(%rsp), %rsi
callq 0x335740
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336e40
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
leaq 0x3bd2b5(%rip), %rsi    # 0x5994c0
callq 0x335740
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x60(%rsp), %rdi
callq 0x171a90
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x335740
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336e40
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
leaq 0x389eed(%rip), %rsi    # 0x566145
callq 0x335740
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x60(%rsp), %rdi
callq 0x171b20
movq 0x28(%rsp), %rdi
movl %eax, %eax
cvtsi2sd %rax, %xmm0
callq 0x3354a0
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336e40
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
leaq 0x3bb678(%rip), %rsi    # 0x597921
callq 0x335740
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x60(%rsp), %rdi
callq 0x171410
movq 0x30(%rsp), %rdi
movq %rax, %rsi
callq 0x1fbf90
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336e40
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
leaq 0x389e5a(%rip), %rsi    # 0x566150
callq 0x335740
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x336790
movq $0x0, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x58(%rsp), %rax
movq (%rax), %rdi
callq 0x11fcc0
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
jae 0x1dc3ce
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x38(%rsp), %rax
incq %rax
movq %rax, %xmm0
movaps 0x33c5d5(%rip), %xmm1   # 0x518930
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x33c5d9(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
callq 0x3354a0
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x58(%rsp), %rax
movq (%rax), %rdi
movq 0x38(%rsp), %rsi
callq 0x11f8c0
movq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x335740
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336e40
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x1dc316
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336e40
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
leaq 0x389d70(%rip), %rsi    # 0x566161
callq 0x335740
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x336790
movq $0x0, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x58(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11fcc0
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x1dc4c9
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x38(%rsp), %rax
incq %rax
movq %rax, %xmm0
movaps 0x33c4d9(%rip), %xmm1   # 0x518930
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x33c4dd(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
callq 0x3354a0
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, (%rsp)
movq 0x58(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x38(%rsp), %rsi
callq 0x11f8c0
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x335740
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336e40
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x1dc411
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336e40
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336e40
xorl %eax, %eax
addq $0x88, %rsp
retq
nopl (%rax)