// File: /workspace/github_c_makefile_star2_O3/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:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
callq 0x143cab
testq %rax, %rax
je 0x176c9c
leaq 0x26398f(%rip), %rsi    # 0x3da617
movq %r15, %rdi
callq 0x141f50
movq %rax, %r12
testq %rax, %rax
setne %r13b
jmp 0x176ca2
xorl %r12d, %r12d
xorl %r13d, %r13d
movq (%r14), %rdi
callq 0x11c131
testq %rax, %rax
jne 0x176cc1
movq 0x8(%r14), %rdi
callq 0x11c131
testq %rax, %rax
je 0x176f2c
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rdi
leaq 0x1(%rax), %rcx
movq %rax, %xmm1
punpckldq 0x1d0c06(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1d0c0e(%rip), %xmm1   # 0x3478f0
movq %rcx, 0x10(%rbx)
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
callq 0x2241c8
movq 0x18(%rbx), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x224be0
testb %r13b, %r13b
je 0x176d33
movq 0x18(%rbx), %rdi
leaq 0x263903(%rip), %rsi    # 0x3da617
callq 0x2243ba
movq 0x18(%rbx), %rdi
movq %r12, %rsi
callq 0x2243ba
movq 0x18(%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x224fd4
movq 0x18(%rbx), %rdi
leaq 0x24f3ea(%rip), %rsi    # 0x3c6128
callq 0x2243ba
movq 0x18(%rbx), %r12
movq %r15, %rdi
callq 0x144606
movq %r12, %rdi
movq %rax, %rsi
callq 0x2243ba
movq 0x18(%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x224fd4
movq 0x18(%rbx), %rdi
leaq 0x21ca78(%rip), %rsi    # 0x3937eb
callq 0x2243ba
movq 0x18(%rbx), %r12
movq %r15, %rdi
callq 0x144626
movl %eax, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movq %r12, %rdi
callq 0x2241c8
movq 0x18(%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x224fd4
movq 0x18(%rbx), %rdi
leaq 0x24d7d8(%rip), %rsi    # 0x3c4587
callq 0x2243ba
movq 0x18(%rbx), %r12
movq %r15, %rdi
callq 0x1443a0
movq %r12, %rdi
movq %rax, %rsi
callq 0x186e7d
movq 0x18(%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x224fd4
movq 0x18(%rbx), %rdi
leaq 0x21ca12(%rip), %rsi    # 0x3937f6
callq 0x2243ba
movq 0x18(%rbx), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x224be0
movq (%r14), %rdi
callq 0x11c131
testq %rax, %rax
je 0x176e6c
xorl %r15d, %r15d
movq 0x18(%rbx), %rdi
leaq 0x1(%r15), %r13
movq %r13, %xmm1
punpckldq 0x1d0ac5(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1d0acd(%rip), %xmm1   # 0x3478f0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
callq 0x2241c8
movq 0x18(%rbx), %r12
movq (%r14), %rdi
movq %r15, %rsi
callq 0x11bfb3
movq %r12, %rdi
movq %rax, %rsi
callq 0x2243ba
movq 0x18(%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x224fd4
movq (%r14), %rdi
callq 0x11c131
movq %r13, %r15
cmpq %rax, %r13
jb 0x176e06
movq 0x18(%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x224fd4
movq 0x18(%rbx), %rdi
leaq 0x21c982(%rip), %rsi    # 0x393807
callq 0x2243ba
movq 0x18(%rbx), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x224be0
movq 0x8(%r14), %rdi
callq 0x11c131
testq %rax, %rax
je 0x176f10
xorl %r15d, %r15d
movq 0x18(%rbx), %rdi
leaq 0x1(%r15), %r13
movq %r13, %xmm1
punpckldq 0x1d0a23(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1d0a2b(%rip), %xmm1   # 0x3478f0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
callq 0x2241c8
movq 0x18(%rbx), %r12
movq 0x8(%r14), %rdi
movq %r15, %rsi
callq 0x11bfb3
movq %r12, %rdi
movq %rax, %rsi
callq 0x2243ba
movq 0x18(%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x224fd4
movq 0x8(%r14), %rdi
callq 0x11c131
movq %r13, %r15
cmpq %rax, %r13
jb 0x176ea8
movq 0x18(%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x224fd4
movq 0x18(%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x224fd4
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq