// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrharvest_tabout_visitor.c
// Function: gt_ltrharvest_tabout_visitor_feature_node
static int gt_ltrharvest_tabout_visitor_feature_node(GtNodeVisitor *nv,
                                                     GtFeatureNode *fn,
                                                     GT_UNUSED GtError *err)
{
  GtLTRharvestTaboutVisitor *lv;
  GtFeatureNodeIterator *fni;
  GtFeatureNode *curnode = NULL,
                *leftltr = NULL,
                *rightltr = NULL,
                *ltr_retrotrans = NULL,
                *lefttsd = NULL,
                *righttsd = NULL,
                *leftmotif_5 = NULL,
                *leftmotif_3 = NULL,
                *rightmotif_5 = NULL,
                *rightmotif_3 = NULL;
  int had_err = 0,
      added_motifs = 0,
      added_tsd = 0,
      added_ltr = 0;
  GtStr *line;
  GtRange rng;
  bool no_element = false;
  GtUword seqnum = 0;
  const char *fnt;
  char buf[BUFSIZ];
  lv = gt_ltrharvest_tabout_visitor_cast(nv);
  gt_assert(lv);
  gt_error_check(err);

  line = gt_str_new();
  /* traverse annotation subgraph and collect info */
  fni = gt_feature_node_iterator_new(fn);
  while (!had_err && (curnode = gt_feature_node_iterator_next(fni))) {
    fnt = gt_feature_node_get_type(curnode);

    if (strcmp(fnt, gt_ft_LTR_retrotransposon) == 0)
    {
      const char *val;
      ltr_retrotrans = curnode;
      val = gt_feature_node_get_attribute(curnode, "seq_number");
      if (val == NULL) {
        gt_error_set(err, "missing attribute \"seq_number\"");
        had_err = -1;
      }
      if (!had_err) {
        (void) gt_parse_uword(&seqnum, val);
      }
    }
    if (strcmp(fnt, gt_ft_long_terminal_repeat) == 0)
    {
      switch (added_ltr) {
        case 0:
          leftltr = curnode;
          break;
        case 1:
          rightltr = curnode;
          break;
        default:
          gt_error_set(err,
                       "invalid number of LTR annotations: more than 2");
          had_err = -1;
      }
      added_ltr++;
    }
    if (strcmp(fnt, gt_ft_inverted_repeat) == 0)
    {
      switch (added_motifs) {
        case 0:
          leftmotif_5 = curnode;
          break;
        case 1:
          leftmotif_3 = curnode;
          break;
        case 2:
          rightmotif_5 = curnode;
          break;
        case 3:
          rightmotif_3 = curnode;
          break;
        default:
          gt_error_set(err,
                       "invalid number of motif annotations: more than 4");
          had_err = -1;
          break;
      }
      added_motifs++;
    }
    if (strcmp(fnt, gt_ft_target_site_duplication) == 0)
    {
      switch (added_tsd) {
        case 0:
          lefttsd = curnode;
          break;
        case 1:
          righttsd = curnode;
          break;
        default:
          gt_error_set(err,
                       "invalid number of TSD annotations: more than 2");
          had_err = -1;
      }
      added_tsd++;
    }
  }
  gt_feature_node_iterator_delete(fni);

  /* check for invalid annotations */
  if (!had_err && (!leftltr || !rightltr)) {
    gt_error_set(err, "missing LTR annotations");
    had_err = -1;
  }
  if (lv->longoutput) {
    if (!had_err && added_motifs > 0 && added_motifs != 4) {
      gt_error_set(err, "invalid number of motif annotations, != 4");
      had_err = -1;
    }
    if (!had_err && added_tsd > 0 && added_tsd != 2) {
      gt_error_set(err, "invalid number of TSD annotations, != 2");
      had_err = -1;
    }
  }

  /* output in tabular format */
  if (!had_err) {
    if (ltr_retrotrans != NULL) {
      /* whole element */
      rng = gt_genome_node_get_range((GtGenomeNode*) ltr_retrotrans);
      (void) snprintf(buf, BUFSIZ-1, ""GT_WU"  "GT_WU"  "GT_WU"  ", rng.start,
                      rng.end, gt_range_length(&rng));
      gt_str_append_cstr(line, buf);
    } else {
      no_element = true;
    }
  }

  if (!had_err && !no_element) {
    /* left LTR */
    rng = gt_genome_node_get_range((GtGenomeNode*) leftltr);
    (void) snprintf(buf, BUFSIZ-1, ""GT_WU"  "GT_WU"  "GT_WU"  ", rng.start,
                    rng.end, gt_range_length(&rng));
    gt_str_append_cstr(line, buf);
    /* left TSD */
    if (lv->longoutput && added_tsd > 0 ) {
      gt_assert(lefttsd);
      gt_ltrharvest_tabout_visitor_seq4feat(lv, lefttsd, line, seqnum);
      gt_str_append_cstr(line, "  ");
      rng = gt_genome_node_get_range((GtGenomeNode*) lefttsd);
      gt_str_append_uword(line, gt_range_length(&rng));
      gt_str_append_cstr(line, "  ");
    }
    /* left motif */
    if (lv->longoutput && added_motifs > 0 ) {
      gt_assert(leftmotif_5 && leftmotif_3);
      gt_ltrharvest_tabout_visitor_seq4feat(lv, leftmotif_5, line, seqnum);
      gt_str_append_cstr(line, "..");
      gt_ltrharvest_tabout_visitor_seq4feat(lv, leftmotif_3, line, seqnum);
      gt_str_append_cstr(line, "  ");
    }

    /* right LTR */
    rng = gt_genome_node_get_range((GtGenomeNode*) rightltr);
    (void) snprintf(buf, BUFSIZ-1, ""GT_WU"  "GT_WU"  "GT_WU"  ", rng.start,
                    rng.end, gt_range_length(&rng));
    gt_str_append_cstr(line, buf);
    /* right TSD */
    if (lv->longoutput && added_tsd > 0 ) {
      gt_assert(righttsd);
      gt_ltrharvest_tabout_visitor_seq4feat(lv, righttsd, line, seqnum);
      gt_str_append_cstr(line, "  ");
      rng = gt_genome_node_get_range((GtGenomeNode*) righttsd);
      gt_str_append_uword(line, gt_range_length(&rng));
      gt_str_append_cstr(line, "  ");
    }
    /* right motif */
    if (lv->longoutput && added_motifs > 0 ) {
      gt_assert(rightmotif_5 && rightmotif_3);
      gt_ltrharvest_tabout_visitor_seq4feat(lv, rightmotif_5, line, seqnum);
      gt_str_append_cstr(line, "..");
      gt_ltrharvest_tabout_visitor_seq4feat(lv, rightmotif_3, line, seqnum);
      gt_str_append_cstr(line, "  ");
    }

    gt_str_append_cstr(line, gt_feature_node_get_attribute(ltr_retrotrans,
                                                           "ltr_similarity"));
    gt_str_append_cstr(line, "  ");
    gt_str_append_uword(line, seqnum);
    printf("%s\n", gt_str_get(line));
  }
  gt_str_delete(line);
  return had_err;
}

// Assembly:
subq $0x2188, %rsp           # imm = 0x2188
movq %rdi, 0x2180(%rsp)
movq %rsi, 0x2178(%rsp)
movq %rdx, 0x2170(%rsp)
movq $0x0, 0x2158(%rsp)
movq $0x0, 0x2150(%rsp)
movq $0x0, 0x2148(%rsp)
movq $0x0, 0x2140(%rsp)
movq $0x0, 0x2138(%rsp)
movq $0x0, 0x2130(%rsp)
movq $0x0, 0x2128(%rsp)
movq $0x0, 0x2120(%rsp)
movq $0x0, 0x2118(%rsp)
movq $0x0, 0x2110(%rsp)
movl $0x0, 0x210c(%rsp)
movl $0x0, 0x2108(%rsp)
movl $0x0, 0x2104(%rsp)
movl $0x0, 0x2100(%rsp)
movb $0x0, 0x20e7(%rsp)
movq $0x0, 0x20d8(%rsp)
callq 0x3134b0
movq %rax, %rdi
movq 0x2180(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x2168(%rsp)
cmpq $0x0, 0x2168(%rsp)
jne 0x313637
movq 0x32899a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x202a03(%rip), %rsi    # 0x516013
leaq 0x27fa6b(%rip), %rdx    # 0x593082
leaq 0x2812df(%rip), %rcx    # 0x5948fd
leaq 0x281288(%rip), %r8     # 0x5948ad
movl $0x59, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x313639
jmp 0x31363b
cmpq $0x0, 0x2170(%rsp)
je 0x313691
movq 0x2170(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x313659
jmp 0x313691
movq 0x328940(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2029a9(%rip), %rsi    # 0x516013
leaq 0x202b4e(%rip), %rdx    # 0x5161bf
leaq 0x281285(%rip), %rcx    # 0x5948fd
leaq 0x28122e(%rip), %r8     # 0x5948ad
movl $0x5a, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x313693
callq 0x11d4a0
movq %rax, 0x20f8(%rsp)
movq 0x2178(%rsp), %rdi
callq 0x170b00
movq %rax, 0x2160(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x210c(%rsp)
movb %al, 0x77(%rsp)
jne 0x3136e5
movq 0x2160(%rsp), %rdi
callq 0x170e30
movq %rax, 0x2158(%rsp)
cmpq $0x0, %rax
setne %al
movb %al, 0x77(%rsp)
movb 0x77(%rsp), %al
testb $0x1, %al
jne 0x3136f2
jmp 0x313972
movq 0x2158(%rsp), %rdi
callq 0x16d430
movq %rax, 0x20d0(%rsp)
movq 0x20d0(%rsp), %rdi
leaq 0x253e26(%rip), %rsi    # 0x56753c
callq 0x19980
cmpl $0x0, %eax
jne 0x313799
movq 0x2158(%rsp), %rax
movq %rax, 0x2140(%rsp)
movq 0x2158(%rsp), %rdi
leaq 0x2809cd(%rip), %rsi    # 0x59410c
callq 0x16c040
movq %rax, 0xc8(%rsp)
cmpq $0x0, 0xc8(%rsp)
jne 0x313778
movq 0x2170(%rsp), %rdi
leaq 0x2809b1(%rip), %rsi    # 0x594117
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x210c(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x210c(%rsp)
jne 0x313797
movq 0xc8(%rsp), %rsi
leaq 0x20d8(%rsp), %rdi
callq 0xf86d0
jmp 0x313799
movq 0x20d0(%rsp), %rdi
leaq 0x25670e(%rip), %rsi    # 0x569eb6
callq 0x19980
cmpl $0x0, %eax
jne 0x313824
movl 0x2100(%rsp), %eax
movl %eax, 0x70(%rsp)
testl %eax, %eax
je 0x3137ce
jmp 0x3137c3
movl 0x70(%rsp), %eax
subl $0x1, %eax
je 0x3137e0
jmp 0x3137f2
movq 0x2158(%rsp), %rax
movq %rax, 0x2150(%rsp)
jmp 0x313813
movq 0x2158(%rsp), %rax
movq %rax, 0x2148(%rsp)
jmp 0x313813
movq 0x2170(%rsp), %rdi
leaq 0x280935(%rip), %rsi    # 0x594136
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x210c(%rsp) # imm = 0xFFFFFFFF
movl 0x2100(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2100(%rsp)
movq 0x20d0(%rsp), %rdi
leaq 0x255b15(%rip), %rsi    # 0x569348
callq 0x19980
cmpl $0x0, %eax
jne 0x3138e2
movl 0x2108(%rsp), %eax
movq %rax, 0x68(%rsp)
subq $0x3, %rax
ja 0x3138b0
movq 0x68(%rsp), %rax
leaq 0x28101d(%rip), %rcx    # 0x59487c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x2158(%rsp), %rax
movq %rax, 0x2128(%rsp)
jmp 0x3138d1
movq 0x2158(%rsp), %rax
movq %rax, 0x2120(%rsp)
jmp 0x3138d1
movq 0x2158(%rsp), %rax
movq %rax, 0x2118(%rsp)
jmp 0x3138d1
movq 0x2158(%rsp), %rax
movq %rax, 0x2110(%rsp)
jmp 0x3138d1
movq 0x2170(%rsp), %rdi
leaq 0x281068(%rip), %rsi    # 0x594927
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x210c(%rsp) # imm = 0xFFFFFFFF
movl 0x2108(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2108(%rsp)
movq 0x20d0(%rsp), %rdi
leaq 0x255a27(%rip), %rsi    # 0x569318
callq 0x19980
cmpl $0x0, %eax
jne 0x31396d
movl 0x2104(%rsp), %eax
movl %eax, 0x64(%rsp)
testl %eax, %eax
je 0x313917
jmp 0x31390c
movl 0x64(%rsp), %eax
subl $0x1, %eax
je 0x313929
jmp 0x31393b
movq 0x2158(%rsp), %rax
movq %rax, 0x2138(%rsp)
jmp 0x31395c
movq 0x2158(%rsp), %rax
movq %rax, 0x2130(%rsp)
jmp 0x31395c
movq 0x2170(%rsp), %rdi
leaq 0x28100e(%rip), %rsi    # 0x594958
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x210c(%rsp) # imm = 0xFFFFFFFF
movl 0x2104(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2104(%rsp)
jmp 0x3136b5
movq 0x2160(%rsp), %rdi
callq 0x170f50
cmpl $0x0, 0x210c(%rsp)
jne 0x3139c0
cmpq $0x0, 0x2150(%rsp)
je 0x31399f
cmpq $0x0, 0x2148(%rsp)
jne 0x3139c0
movq 0x2170(%rsp), %rdi
leaq 0x2807b7(%rip), %rsi    # 0x594165
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x210c(%rsp) # imm = 0xFFFFFFFF
movq 0x2168(%rsp), %rax
testb $0x1, 0x10(%rax)
je 0x313a52
cmpl $0x0, 0x210c(%rsp)
jne 0x313a11
cmpl $0x0, 0x2108(%rsp)
jle 0x313a11
cmpl $0x4, 0x2108(%rsp)
je 0x313a11
movq 0x2170(%rsp), %rdi
leaq 0x280f88(%rip), %rsi    # 0x594987
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x210c(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x210c(%rsp)
jne 0x313a50
cmpl $0x0, 0x2104(%rsp)
jle 0x313a50
cmpl $0x2, 0x2104(%rsp)
je 0x313a50
movq 0x2170(%rsp), %rdi
leaq 0x280f73(%rip), %rsi    # 0x5949b1
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x210c(%rsp) # imm = 0xFFFFFFFF
jmp 0x313a52
cmpl $0x0, 0x210c(%rsp)
jne 0x313b26
cmpq $0x0, 0x2140(%rsp)
je 0x313b1c
movq 0x2140(%rsp), %rdi
callq 0x171cc0
movq %rax, 0xb8(%rsp)
movq %rdx, 0xc0(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x20e8(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0x20f0(%rsp)
leaq 0xd0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x20e8(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x20f0(%rsp), %rax
movq %rax, 0x58(%rsp)
leaq 0x20e8(%rsp), %rdi
callq 0x107320
movq 0x48(%rsp), %rdi
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %r8
movq %rax, %r9
movl $0x1fff, %esi           # imm = 0x1FFF
leaq 0x280edb(%rip), %rdx    # 0x5949d9
movb $0x0, %al
callq 0x19b90
movq 0x20f8(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x11d550
jmp 0x313b24
movb $0x1, 0x20e7(%rsp)
jmp 0x313b26
cmpl $0x0, 0x210c(%rsp)
jne 0x3140fd
testb $0x1, 0x20e7(%rsp)
jne 0x3140fd
movq 0x2150(%rsp), %rdi
callq 0x171cc0
movq %rax, 0xa8(%rsp)
movq %rdx, 0xb0(%rsp)
movq 0xa8(%rsp), %rax
movq %rax, 0x20e8(%rsp)
movq 0xb0(%rsp), %rax
movq %rax, 0x20f0(%rsp)
leaq 0xd0(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x20e8(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x20f0(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0x20e8(%rsp), %rdi
callq 0x107320
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rcx
movq 0x40(%rsp), %r8
movq %rax, %r9
movl $0x1fff, %esi           # imm = 0x1FFF
leaq 0x280e08(%rip), %rdx    # 0x5949d9
movb $0x0, %al
callq 0x19b90
movq 0x20f8(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x11d550
movq 0x2168(%rsp), %rax
testb $0x1, 0x10(%rax)
je 0x313d05
cmpl $0x0, 0x2104(%rsp)
jle 0x313d05
jmp 0x313c0f
cmpq $0x0, 0x2138(%rsp)
jne 0x313c52
movq 0x32837f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2023e8(%rip), %rsi    # 0x516013
leaq 0x280db7(%rip), %rdx    # 0x5949e9
leaq 0x280cc4(%rip), %rcx    # 0x5948fd
leaq 0x280c6d(%rip), %r8     # 0x5948ad
movl $0xce, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x313c54
movq 0x2168(%rsp), %rdi
movq 0x2138(%rsp), %rsi
movq 0x20f8(%rsp), %rdx
movq 0x20d8(%rsp), %rcx
callq 0x314290
movq 0x20f8(%rsp), %rdi
leaq 0x2998ee(%rip), %rsi    # 0x5ad576
callq 0x11d550
movq 0x2138(%rsp), %rdi
callq 0x171cc0
movq %rax, 0x98(%rsp)
movq %rdx, 0xa0(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0x20e8(%rsp)
movq 0xa0(%rsp), %rax
movq %rax, 0x20f0(%rsp)
movq 0x20f8(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x20e8(%rsp), %rdi
callq 0x107320
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x11d930
movq 0x20f8(%rsp), %rdi
leaq 0x299876(%rip), %rsi    # 0x5ad576
callq 0x11d550
movq 0x2168(%rsp), %rax
testb $0x1, 0x10(%rax)
je 0x313de9
cmpl $0x0, 0x2108(%rsp)
jle 0x313de9
jmp 0x313d27
cmpq $0x0, 0x2128(%rsp)
je 0x313d3d
cmpq $0x0, 0x2120(%rsp)
jne 0x313d75
movq 0x32825c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2022c5(%rip), %rsi    # 0x516013
leaq 0x280c9c(%rip), %rdx    # 0x5949f1
leaq 0x280ba1(%rip), %rcx    # 0x5948fd
leaq 0x280b4a(%rip), %r8     # 0x5948ad
movl $0xd7, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x313d77
movq 0x2168(%rsp), %rdi
movq 0x2128(%rsp), %rsi
movq 0x20f8(%rsp), %rdx
movq 0x20d8(%rsp), %rcx
callq 0x314290
movq 0x20f8(%rsp), %rdi
leaq 0x28802f(%rip), %rsi    # 0x59bdda
callq 0x11d550
movq 0x2168(%rsp), %rdi
movq 0x2120(%rsp), %rsi
movq 0x20f8(%rsp), %rdx
movq 0x20d8(%rsp), %rcx
callq 0x314290
movq 0x20f8(%rsp), %rdi
leaq 0x299792(%rip), %rsi    # 0x5ad576
callq 0x11d550
movq 0x2148(%rsp), %rdi
callq 0x171cc0
movq %rax, 0x88(%rsp)
movq %rdx, 0x90(%rsp)
movq 0x88(%rsp), %rax
movq %rax, 0x20e8(%rsp)
movq 0x90(%rsp), %rax
movq %rax, 0x20f0(%rsp)
leaq 0xd0(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x20e8(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x20f0(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x20e8(%rsp), %rdi
callq 0x107320
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %r8
movq %rax, %r9
movl $0x1fff, %esi           # imm = 0x1FFF
leaq 0x280b61(%rip), %rdx    # 0x5949d9
movb $0x0, %al
callq 0x19b90
movq 0x20f8(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x11d550
movq 0x2168(%rsp), %rax
testb $0x1, 0x10(%rax)
je 0x313fa6
cmpl $0x0, 0x2104(%rsp)
jle 0x313fa6
jmp 0x313eb6
cmpq $0x0, 0x2130(%rsp)
jne 0x313ef9
movq 0x3280d8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x202141(%rip), %rsi    # 0x516013
leaq 0x280b33(%rip), %rdx    # 0x594a0c
leaq 0x280a1d(%rip), %rcx    # 0x5948fd
leaq 0x2809c6(%rip), %r8     # 0x5948ad
movl $0xe5, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x313efb
movq 0x2168(%rsp), %rdi
movq 0x2130(%rsp), %rsi
movq 0x20f8(%rsp), %rdx
movq 0x20d8(%rsp), %rcx
callq 0x314290
movq 0x20f8(%rsp), %rdi
leaq 0x299647(%rip), %rsi    # 0x5ad576
callq 0x11d550
movq 0x2130(%rsp), %rdi
callq 0x171cc0
movq %rax, 0x78(%rsp)
movq %rdx, 0x80(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x20e8(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x20f0(%rsp)
movq 0x20f8(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x20e8(%rsp), %rdi
callq 0x107320
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x11d930
movq 0x20f8(%rsp), %rdi
leaq 0x2995d5(%rip), %rsi    # 0x5ad576
callq 0x11d550
movq 0x2168(%rsp), %rax
testb $0x1, 0x10(%rax)
je 0x31408a
cmpl $0x0, 0x2108(%rsp)
jle 0x31408a
jmp 0x313fc8
cmpq $0x0, 0x2118(%rsp)
je 0x313fde
cmpq $0x0, 0x2110(%rsp)
jne 0x314016
movq 0x327fbb(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x202024(%rip), %rsi    # 0x516013
leaq 0x280a1f(%rip), %rdx    # 0x594a15
leaq 0x280900(%rip), %rcx    # 0x5948fd
leaq 0x2808a9(%rip), %r8     # 0x5948ad
movl $0xee, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x314018
movq 0x2168(%rsp), %rdi
movq 0x2118(%rsp), %rsi
movq 0x20f8(%rsp), %rdx
movq 0x20d8(%rsp), %rcx
callq 0x314290
movq 0x20f8(%rsp), %rdi
leaq 0x287d8e(%rip), %rsi    # 0x59bdda
callq 0x11d550
movq 0x2168(%rsp), %rdi
movq 0x2110(%rsp), %rsi
movq 0x20f8(%rsp), %rdx
movq 0x20d8(%rsp), %rcx
callq 0x314290
movq 0x20f8(%rsp), %rdi
leaq 0x2994f1(%rip), %rsi    # 0x5ad576
callq 0x11d550
movq 0x20f8(%rsp), %rax
movq %rax, (%rsp)
movq 0x2140(%rsp), %rdi
leaq 0x2802f6(%rip), %rsi    # 0x59439b
callq 0x16c040
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x11d550
movq 0x20f8(%rsp), %rdi
leaq 0x2994b1(%rip), %rsi    # 0x5ad576
callq 0x11d550
movq 0x20f8(%rsp), %rdi
movq 0x20d8(%rsp), %rsi
callq 0x11d930
movq 0x20f8(%rsp), %rdi
callq 0x11dee0
movq %rax, %rsi
leaq 0x212df6(%rip), %rdi    # 0x526eec
movb $0x0, %al
callq 0x19070
movq 0x20f8(%rsp), %rdi
callq 0x11f560
movl 0x210c(%rsp), %eax
addq $0x2188, %rsp           # imm = 0x2188
retq
nopl (%rax)