// File: /workspace/github_c_makefile_star2_O2/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 %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
callq 0xdc2f0
testq %rax, %rax
je 0x11b7a3
leaq 0x25f2a8(%rip), %rsi    # 0x37aa37
movq %r15, %rdi
callq 0xd9628
movq %rax, %r12
testq %rax, %rax
setne %r13b
jmp 0x11b7a9
xorl %r12d, %r12d
xorl %r13d, %r13d
movq (%r14), %rdi
callq 0xae61c
testq %rax, %rax
jne 0x11b7c8
movq 0x8(%r14), %rdi
callq 0xae61c
testq %rax, %rax
je 0x11ba00
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rdi
leaq 0x1(%rax), %rcx
movq %rax, %xmm1
punpckldq 0x1cc0ff(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1cc107(%rip), %xmm1   # 0x2e78f0
movq %rcx, 0x10(%rbx)
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
callq 0x1dbe33
movq 0x18(%rbx), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x1dc7bd
testb %r13b, %r13b
je 0x11b838
movq 0x18(%rbx), %rdi
leaq 0x25f21c(%rip), %rsi    # 0x37aa37
callq 0x1dc009
movq 0x18(%rbx), %rdi
movq %r12, %rsi
callq 0x1dc009
movq 0x18(%rbx), %rdi
pushq $-0x3
popq %rsi
callq 0x1dcb75
movq 0x18(%rbx), %rdi
leaq 0x24acf5(%rip), %rsi    # 0x366538
callq 0x1dc009
movq 0x18(%rbx), %r12
movq %r15, %rdi
callq 0xdd0b5
movq %r12, %rdi
movq %rax, %rsi
callq 0x1dc009
movq 0x18(%rbx), %rdi
pushq $-0x3
popq %rbp
movl %ebp, %esi
callq 0x1dcb75
movq 0x18(%rbx), %rdi
leaq 0x2182cc(%rip), %rsi    # 0x333b44
callq 0x1dc009
movq 0x18(%rbx), %r12
movq %r15, %rdi
callq 0xdd108
movl %eax, %eax
cvtsi2sd %rax, %xmm0
movq %r12, %rdi
callq 0x1dbe33
movq 0x18(%rbx), %rdi
movl %ebp, %esi
callq 0x1dcb75
movq 0x18(%rbx), %rdi
leaq 0x2490e9(%rip), %rsi    # 0x364997
callq 0x1dc009
movq 0x18(%rbx), %r12
movq %r15, %rdi
callq 0xdccf8
movq %r12, %rdi
movq %rax, %rsi
callq 0x12f524
movq 0x18(%rbx), %rdi
movl %ebp, %esi
callq 0x1dcb75
movq 0x18(%rbx), %rdi
leaq 0x21826f(%rip), %rsi    # 0x333b4f
callq 0x1dc009
movq 0x18(%rbx), %rdi
xorl %r15d, %r15d
xorl %esi, %esi
xorl %edx, %edx
callq 0x1dc7bd
movq (%r14), %rdi
callq 0xae61c
movq 0x18(%rbx), %rdi
cmpq %rax, %r15
jae 0x11b95a
leaq 0x1(%r15), %r13
movq %r13, %xmm1
punpckldq 0x1cbfc9(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1cbfd1(%rip), %xmm1   # 0x2e78f0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
callq 0x1dbe33
movq 0x18(%rbx), %r12
movq (%r14), %rdi
movq %r15, %rsi
callq 0xae386
movq %r12, %rdi
movq %rax, %rsi
callq 0x1dc009
movq 0x18(%rbx), %rdi
movl %ebp, %esi
callq 0x1dcb75
movq %r13, %r15
jmp 0x11b8f5
pushq $-0x3
popq %rbp
movl %ebp, %esi
callq 0x1dcb75
movq 0x18(%rbx), %rdi
leaq 0x2181f1(%rip), %rsi    # 0x333b60
callq 0x1dc009
movq 0x18(%rbx), %rdi
xorl %r15d, %r15d
xorl %esi, %esi
xorl %edx, %edx
callq 0x1dc7bd
movq 0x8(%r14), %rdi
callq 0xae61c
movq 0x18(%rbx), %rdi
cmpq %rax, %r15
jae 0x11b9eb
leaq 0x1(%r15), %r13
movq %r13, %xmm1
punpckldq 0x1cbf39(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1cbf41(%rip), %xmm1   # 0x2e78f0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
callq 0x1dbe33
movq 0x18(%rbx), %r12
movq 0x8(%r14), %rdi
movq %r15, %rsi
callq 0xae386
movq %r12, %rdi
movq %rax, %rsi
callq 0x1dc009
movq 0x18(%rbx), %rdi
movl %ebp, %esi
callq 0x1dcb75
movq %r13, %r15
jmp 0x11b984
pushq $-0x3
popq %rbp
movl %ebp, %esi
callq 0x1dcb75
movq 0x18(%rbx), %rdi
movl %ebp, %esi
callq 0x1dcb75
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax)