// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gff3_parser.c
// Function: parse_meta_gff3_line
static int parse_meta_gff3_line(GtGFF3Parser *parser, GtQueue *genome_nodes,
                                char *line, size_t line_length,
                                GtStr *filenamestr, unsigned int line_number,
                                GtError *err)
{
  char *tmpline, *tmplineend, *seqstart, *seqid = NULL;
  GtGenomeNode *gn;
  GtStr *changed_seqid = NULL;
  SimpleSequenceRegion *ssr = NULL;
  GtRange range;
  const char *filename;
  int had_err = 0;

  gt_error_check(err);
  gt_assert(line[0] == '#');

  filename = gt_str_get(filenamestr);

  if (line_length == 1 || line[1] != '#') {
    /* storing comment */
    gn = gt_comment_node_new(line+1);
    gt_genome_node_set_origin(gn, filenamestr, line_number);
    gt_queue_add(genome_nodes, gn);
  }
  else if (strcmp(line, GT_GFF_FASTA_DIRECTIVE) == 0)
    parser->fasta_parsing = true;
  else if ((strncmp(line, GT_GFF_SEQUENCE_REGION,
                    strlen(GT_GFF_SEQUENCE_REGION)) == 0)) {
    /* we are in a line starting with "##sequence-region" */
    tmpline = line + strlen(GT_GFF_SEQUENCE_REGION);
    tmplineend = line + line_length - 1;

    /* skip blanks */
    while (tmpline[0] == ' ' || tmpline[0] == '\t')
      tmpline++;
    if (tmpline > tmplineend) {
      gt_error_set(err, "missing sequence region name on line %u in file "
                        "\"%s\"", line_number, filename);
      had_err = -1;
    }
    if (!had_err) {
      seqid = tmpline; /* save seqid */
      /* skip non-blanks */
      while (tmpline < tmplineend && !(tmpline[0] == ' ' || tmpline[0] == '\t'))
        tmpline++;
      /* terminate seqid */
      *tmpline++ = '\0';
      /* skip blanks */
      while (tmpline < tmplineend && (tmpline[0] == ' ' || tmpline[0] == '\t'))
        tmpline++;
      if (tmpline > tmplineend) {
        gt_error_set(err, "missing sequence region start on line %u in file "
                          "\"%s\"", line_number, filename);
        had_err = -1;
      }
      else
        seqstart = tmpline;
    }

    if (!had_err) {
      /* skip non-blanks */
      while (tmpline <= tmplineend &&
             !(tmpline[0] == ' ' || tmpline[0] == '\t')) {
        tmpline++;
      }
      /* terminate seqstart */
      *tmpline++ = '\0';
      /* skip blanks */
      while (tmpline < tmplineend && (tmpline[0] == ' ' || tmpline[0] == '\t'))
        tmpline++;
      if (tmpline > tmplineend) {
        gt_error_set(err, "missing sequence region end on line %u in file "
                     "\"%s\"", line_number, filename);
        had_err = -1;
      }
    }
    if (!had_err) {
      if (parser->strict) {
        had_err = gt_parse_range(&range, seqstart, tmpline, line_number,
                                 filename, err);
      }
      else if (parser->tidy) {
        had_err = gt_parse_range_tidy(&range, seqstart, tmpline, line_number,
                                      filename, err);
      }
      else {
        had_err = gt_parse_range_correct_neg(&range, seqstart, tmpline,
                                             line_number, filename, err);
      }
    }
    if (!had_err && range.start == 0) {
      gt_error_set(err, "illegal region start 0 on line %u in file \"%s\" "
                   "(GFF3 files are 1-based)", line_number, filename);
      had_err = -1;
    }
    if (!had_err) {
      had_err = add_offset_if_necessary(&range, parser, seqid, filename,
                                        line_number, err);
    }
    if (!had_err) {
      /* now we can create a sequence region node */
      gt_assert(seqid);
      ssr = gt_hashmap_get(parser->seqid_to_ssr_mapping, seqid);
      if (ssr) {
        if (!ssr->pseudo) {
          gt_error_set(err, "the sequence region \"%s\" on line %u in file "
                       "\"%s\" has already been defined",
                       gt_str_get(ssr->seqid_str), line_number, filename);
          had_err = -1;
        }
        else {
          ssr->range = range;
          ssr->line_number = line_number;
          ssr->pseudo = false;
        }
      }
      else {
        ssr = simple_sequence_region_new(seqid, range, line_number);
        gt_hashmap_add(parser->seqid_to_ssr_mapping, gt_str_get(ssr->seqid_str),
                       ssr);
      }
    }
    if (!had_err)
      had_err = verify_seqid(ssr->seqid_str, filename, line_number, err);
    if (!had_err) {
      gt_assert(ssr);
      gn = gt_region_node_new(ssr->seqid_str, range.start, range.end);
      gt_genome_node_set_origin(gn, filenamestr, line_number);
      gt_queue_add(genome_nodes, gn);
    }
  }
  else if (strncmp(line, GT_GFF_TERMINATOR,
                   strlen(GT_GFF_TERMINATOR)) == 0) { /* terminator */
    if (line_length > strlen(GT_GFF_TERMINATOR)) {
      gt_warning("superfluous information after terminator in line %u of file "
                 "\"%s\": %s", line_number, filename, line);
    }
    /* now all nodes are complete */
    if (!parser->strict) {
      had_err = process_orphans(parser->orphanage, parser->feature_info,
                                parser->strict, parser->last_terminator,
                                parser->type_checker, genome_nodes, err);
    }
    parser->incomplete_node = false;
    if (!parser->checkids)
      gt_feature_info_reset(parser->feature_info);
    parser->last_terminator = line_number;
  }
  else if (strncmp(line, GT_GFF_VERSION_PREFIX,
                   strlen(GT_GFF_VERSION_PREFIX)) == 0) {
    if (parser->tidy) {
      gt_warning("skipping illegal GFF version pragma in line %u of file "
                 "\"%s\": %s (merge multiple GFF3 files with `gt gff3 -sort` "
                 "and do not concatenate them manually)", line_number, filename,
                 line);
    }
    else {
      gt_error_set(err, "illegal GFF version pragma in line %u of file \"%s\": "
                   "%s (merge multiple GFF3 files with `gt gff3 -sort` and do "
                   "not concatenate them manually)", line_number, filename,
                   line);
      had_err = -1;
    }
  }
  else if (strncmp(line, GT_GVF_VERSION_PREFIX,
                   strlen(GT_GVF_VERSION_PREFIX)) == 0) {
    char *data;
    bool make_node = false;

    if (parser->gvf_mode) {
      if (parser->tidy) {
        gt_warning("skipping illegal GVF version pragma in line %u of file "
                   "\"%s\": %s", line_number, filename, line);
      }
      else {
        gt_error_set(err, "illegal GVF version pragma in line %u of file "
                          "\"%s\": %s", line_number, filename, line);
        had_err = -1;
      }
    } else make_node = true;

    if (make_node) {
      if (!had_err) {
        data = strchr(line+2, ' ');
        if (!data)
          data = strchr(line+2, '\t');
        if (data) {
          data[0] = '\0';
          data++;
        } else {
          gt_error_set(err, "meta-directive encountered in line %u in file "
                            "\"%s\" does not have data: %s", line_number,
                            filename, line);
          had_err = -1;
        }
      }
      if (!had_err) {
        parser->gvf_mode = true;
        gn = gt_meta_node_new(line+2, data);
        gt_genome_node_set_origin(gn, filenamestr, line_number);
        gt_queue_add(genome_nodes, gn);
      }
    }
  }
  else {
    char *data;
    bool invalid;
    if (parser->gvf_mode)
      invalid = invalid_gff3_pragma(line) && invalid_gvf_pragma(line);
    else
      invalid = invalid_gff3_pragma(line);
    if (invalid) {
      gt_warning("unknown meta-directive encountered in line %u in file "
                 "\"%s\", keep anyway: %s", line_number, filename, line);
    }
    data = strchr(line+2, ' ');
    if (data) {
      data[0] = '\0';
      data++;
    }
    if (!had_err) {
      /* storing meta node */
      gn = gt_meta_node_new(line+2, data);
      gt_genome_node_set_origin(gn, filenamestr, line_number);
      gt_queue_add(genome_nodes, gn);
    }
  }
  gt_str_delete(changed_seqid);
  return had_err;
}

// Assembly:
subq $0xd8, %rsp
movq 0xe0(%rsp), %rax
movq %rdi, 0xd0(%rsp)
movq %rsi, 0xc8(%rsp)
movq %rdx, 0xc0(%rsp)
movq %rcx, 0xb8(%rsp)
movq %r8, 0xb0(%rsp)
movl %r9d, 0xac(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0x78(%rsp)
movq $0x0, 0x70(%rsp)
movl $0x0, 0x54(%rsp)
cmpq $0x0, 0xe0(%rsp)
je 0x2a24b
movq 0xe0(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x2a213
jmp 0x2a24b
movq 0x189dbe(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x133e42(%rip), %rsi    # 0x15e066
leaq 0x13441d(%rip), %rdx    # 0x15e648
leaq 0x139a63(%rip), %rcx    # 0x163c95
leaq 0x139372(%rip), %r8     # 0x1635ab
movl $0x775, %r9d            # imm = 0x775
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x2a24d
jmp 0x2a24f
movq 0xc0(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
je 0x2a297
movq 0x189d72(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x133df6(%rip), %rsi    # 0x15e066
leaq 0x139a33(%rip), %rdx    # 0x163caa
leaq 0x139a17(%rip), %rcx    # 0x163c95
leaq 0x139326(%rip), %r8     # 0x1635ab
movl $0x776, %r9d            # imm = 0x776
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x2a299
movq 0xb0(%rsp), %rdi
callq 0x19940
movq %rax, 0x58(%rsp)
cmpq $0x1, 0xb8(%rsp)
je 0x2a2c7
movq 0xc0(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x23, %eax
je 0x2a316
movq 0xc0(%rsp), %rdi
addq $0x1, %rdi
callq 0xa5d40
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rdi
movq 0xb0(%rsp), %rsi
movl 0xac(%rsp), %edx
callq 0x25610
movq 0xc8(%rsp), %rdi
movq 0x80(%rsp), %rsi
callq 0x909d0
jmp 0x2ae60
movq 0xc0(%rsp), %rdi
leaq 0x139994(%rip), %rsi    # 0x163cb9
callq 0xb850
cmpl $0x0, %eax
jne 0x2a340
movq 0xd0(%rsp), %rax
movb $0x1, 0x1d(%rax)
jmp 0x2ae5e
movq 0xc0(%rsp), %rdi
leaq 0x139972(%rip), %rsi    # 0x163cc1
movl $0x11, %edx
callq 0xb280
cmpl $0x0, %eax
jne 0x2aa10
movq 0xc0(%rsp), %rax
addq $0x11, %rax
movq %rax, 0xa0(%rsp)
movq 0xc0(%rsp), %rax
addq 0xb8(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x98(%rsp)
movq 0xa0(%rsp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, 0x36(%rsp)
je 0x2a3bd
movq 0xa0(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, 0x36(%rsp)
movb 0x36(%rsp), %al
testb $0x1, %al
jne 0x2a3c7
jmp 0x2a3dd
movq 0xa0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa0(%rsp)
jmp 0x2a392
movq 0xa0(%rsp), %rax
cmpq 0x98(%rsp), %rax
jbe 0x2a419
movq 0xe0(%rsp), %rdi
movl 0xac(%rsp), %edx
movq 0x58(%rsp), %rcx
leaq 0x1398c9(%rip), %rsi    # 0x163cd3
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x54(%rsp)
jne 0x2a576
movq 0xa0(%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0xa0(%rsp), %rcx
xorl %eax, %eax
cmpq 0x98(%rsp), %rcx
movb %al, 0x35(%rsp)
jae 0x2a481
movq 0xa0(%rsp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, 0x34(%rsp)
je 0x2a477
movq 0xa0(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, 0x34(%rsp)
movb 0x34(%rsp), %al
xorb $-0x1, %al
movb %al, 0x35(%rsp)
movb 0x35(%rsp), %al
testb $0x1, %al
jne 0x2a48b
jmp 0x2a4a1
movq 0xa0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa0(%rsp)
jmp 0x2a434
movq 0xa0(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0xa0(%rsp)
movb $0x0, (%rax)
movq 0xa0(%rsp), %rcx
xorl %eax, %eax
cmpq 0x98(%rsp), %rcx
movb %al, 0x33(%rsp)
jae 0x2a506
movq 0xa0(%rsp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, 0x32(%rsp)
je 0x2a4fe
movq 0xa0(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, 0x32(%rsp)
movb 0x32(%rsp), %al
movb %al, 0x33(%rsp)
movb 0x33(%rsp), %al
testb $0x1, %al
jne 0x2a510
jmp 0x2a526
movq 0xa0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa0(%rsp)
jmp 0x2a4bb
movq 0xa0(%rsp), %rax
cmpq 0x98(%rsp), %rax
jbe 0x2a564
movq 0xe0(%rsp), %rdi
movl 0xac(%rsp), %edx
movq 0x58(%rsp), %rcx
leaq 0x1397b5(%rip), %rsi    # 0x163d08
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
jmp 0x2a574
movq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x2a576
cmpl $0x0, 0x54(%rsp)
jne 0x2a6b3
jmp 0x2a583
movq 0xa0(%rsp), %rcx
xorl %eax, %eax
cmpq 0x98(%rsp), %rcx
movb %al, 0x31(%rsp)
ja 0x2a5d0
movq 0xa0(%rsp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, 0x30(%rsp)
je 0x2a5c6
movq 0xa0(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, 0x30(%rsp)
movb 0x30(%rsp), %al
xorb $-0x1, %al
movb %al, 0x31(%rsp)
movb 0x31(%rsp), %al
testb $0x1, %al
jne 0x2a5da
jmp 0x2a5f0
movq 0xa0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa0(%rsp)
jmp 0x2a583
movq 0xa0(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0xa0(%rsp)
movb $0x0, (%rax)
movq 0xa0(%rsp), %rcx
xorl %eax, %eax
cmpq 0x98(%rsp), %rcx
movb %al, 0x2f(%rsp)
jae 0x2a655
movq 0xa0(%rsp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, 0x2e(%rsp)
je 0x2a64d
movq 0xa0(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, 0x2e(%rsp)
movb 0x2e(%rsp), %al
movb %al, 0x2f(%rsp)
movb 0x2f(%rsp), %al
testb $0x1, %al
jne 0x2a65f
jmp 0x2a675
movq 0xa0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa0(%rsp)
jmp 0x2a60a
movq 0xa0(%rsp), %rax
cmpq 0x98(%rsp), %rax
jbe 0x2a6b1
movq 0xe0(%rsp), %rdi
movl 0xac(%rsp), %edx
movq 0x58(%rsp), %rcx
leaq 0x13969c(%rip), %rsi    # 0x163d3e
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
jmp 0x2a6b3
cmpl $0x0, 0x54(%rsp)
jne 0x2a778
movq 0xd0(%rsp), %rax
testb $0x1, 0x1b(%rax)
je 0x2a700
movq 0x90(%rsp), %rsi
movq 0xa0(%rsp), %rdx
movl 0xac(%rsp), %ecx
movq 0x58(%rsp), %r8
movq 0xe0(%rsp), %r9
leaq 0x60(%rsp), %rdi
callq 0x15770
movl %eax, 0x54(%rsp)
jmp 0x2a776
movq 0xd0(%rsp), %rax
testb $0x1, 0x1c(%rax)
je 0x2a742
movq 0x90(%rsp), %rsi
movq 0xa0(%rsp), %rdx
movl 0xac(%rsp), %ecx
movq 0x58(%rsp), %r8
movq 0xe0(%rsp), %r9
leaq 0x60(%rsp), %rdi
callq 0x15c90
movl %eax, 0x54(%rsp)
jmp 0x2a774
movq 0x90(%rsp), %rsi
movq 0xa0(%rsp), %rdx
movl 0xac(%rsp), %ecx
movq 0x58(%rsp), %r8
movq 0xe0(%rsp), %r9
leaq 0x60(%rsp), %rdi
callq 0x15cf0
movl %eax, 0x54(%rsp)
jmp 0x2a776
jmp 0x2a778
cmpl $0x0, 0x54(%rsp)
jne 0x2a7b1
cmpq $0x0, 0x60(%rsp)
jne 0x2a7b1
movq 0xe0(%rsp), %rdi
movl 0xac(%rsp), %edx
movq 0x58(%rsp), %rcx
leaq 0x1395d0(%rip), %rsi    # 0x163d72
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x54(%rsp)
jne 0x2a7ed
movq 0xd0(%rsp), %rsi
movq 0x88(%rsp), %rdx
movq 0x58(%rsp), %rcx
movl 0xac(%rsp), %eax
movl %eax, %r8d
movq 0xe0(%rsp), %r9
leaq 0x60(%rsp), %rdi
callq 0x2c1e0
movl %eax, 0x54(%rsp)
cmpl $0x0, 0x54(%rsp)
jne 0x2a940
jmp 0x2a7fa
cmpq $0x0, 0x88(%rsp)
jne 0x2a83d
movq 0x1897cc(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x133850(%rip), %rsi    # 0x15e066
leaq 0x15a153(%rip), %rdx    # 0x184970
leaq 0x139471(%rip), %rcx    # 0x163c95
leaq 0x138d80(%rip), %r8     # 0x1635ab
movl $0x7cd, %r9d            # imm = 0x7CD
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x2a83f
movq 0xd0(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x88(%rsp), %rsi
callq 0x86470
movq %rax, 0x70(%rsp)
cmpq $0x0, 0x70(%rsp)
je 0x2a8eb
movq 0x70(%rsp), %rax
testb $0x1, 0x1c(%rax)
jne 0x2a8ba
movq 0xe0(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x70(%rsp), %rax
movq (%rax), %rdi
callq 0x19940
movq 0x20(%rsp), %rdi
movq %rax, %rdx
movl 0xac(%rsp), %ecx
movq 0x58(%rsp), %r8
leaq 0x139511(%rip), %rsi    # 0x163dba
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
jmp 0x2a8e9
movq 0x70(%rsp), %rax
movq 0x60(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq 0x68(%rsp), %rcx
movq %rcx, 0x10(%rax)
movl 0xac(%rsp), %ecx
movq 0x70(%rsp), %rax
movl %ecx, 0x18(%rax)
movq 0x70(%rsp), %rax
movb $0x0, 0x1c(%rax)
jmp 0x2a93e
movq 0x88(%rsp), %rdi
movl 0xac(%rsp), %ecx
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
callq 0x2c3a0
movq %rax, 0x70(%rsp)
movq 0xd0(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x70(%rsp), %rax
movq (%rax), %rdi
callq 0x19940
movq 0x18(%rsp), %rdi
movq %rax, %rsi
movq 0x70(%rsp), %rdx
callq 0x86510
jmp 0x2a940
cmpl $0x0, 0x54(%rsp)
jne 0x2a96c
movq 0x70(%rsp), %rax
movq (%rax), %rdi
movq 0x58(%rsp), %rsi
movl 0xac(%rsp), %edx
movq 0xe0(%rsp), %rcx
callq 0x2bfe0
movl %eax, 0x54(%rsp)
cmpl $0x0, 0x54(%rsp)
jne 0x2aa0b
jmp 0x2a979
cmpq $0x0, 0x70(%rsp)
jne 0x2a9b9
movq 0x189650(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x1336d4(%rip), %rsi    # 0x15e066
leaq 0x13946b(%rip), %rdx    # 0x163e04
leaq 0x1392f5(%rip), %rcx    # 0x163c95
leaq 0x138c04(%rip), %r8     # 0x1635ab
movl $0x7e5, %r9d            # imm = 0x7E5
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x2a9bb
movq 0x70(%rsp), %rax
movq (%rax), %rdi
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
callq 0x35c30
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rdi
movq 0xb0(%rsp), %rsi
movl 0xac(%rsp), %edx
callq 0x25610
movq 0xc8(%rsp), %rdi
movq 0x80(%rsp), %rsi
callq 0x909d0
jmp 0x2ae5c
movq 0xc0(%rsp), %rdi
leaq 0x1393e9(%rip), %rsi    # 0x163e08
movl $0x3, %edx
callq 0xb280
cmpl $0x0, %eax
jne 0x2ab0a
cmpq $0x3, 0xb8(%rsp)
jbe 0x2aa5f
movl 0xac(%rsp), %esi
movq 0x58(%rsp), %rdx
movq 0xc0(%rsp), %rcx
leaq 0x1393b4(%rip), %rdi    # 0x163e0c
movb $0x0, %al
callq 0x1c550
movq 0xd0(%rsp), %rax
testb $0x1, 0x1b(%rax)
jne 0x2aac9
movq 0xd0(%rsp), %rax
movq 0x38(%rax), %rdi
movq 0xd0(%rsp), %rax
movq (%rax), %rsi
movq 0xd0(%rsp), %rax
movb 0x1b(%rax), %dl
movq 0xd0(%rsp), %rax
movl 0x50(%rax), %ecx
movq 0xd0(%rsp), %rax
movq 0x40(%rax), %r8
movq 0xc8(%rsp), %r9
movq 0xe0(%rsp), %rax
andb $0x1, %dl
movzbl %dl, %edx
movq %rax, (%rsp)
callq 0x2b620
movl %eax, 0x54(%rsp)
movq 0xd0(%rsp), %rax
movb $0x0, 0x18(%rax)
movq 0xd0(%rsp), %rax
testb $0x1, 0x19(%rax)
jne 0x2aaf3
movq 0xd0(%rsp), %rax
movq (%rax), %rdi
callq 0xa61b0
movl 0xac(%rsp), %ecx
movq 0xd0(%rsp), %rax
movl %ecx, 0x50(%rax)
jmp 0x2ae5a
movq 0xc0(%rsp), %rdi
leaq 0x138f91(%rip), %rsi    # 0x163aaa
movl $0xd, %edx
callq 0xb280
cmpl $0x0, %eax
jne 0x2ab91
movq 0xd0(%rsp), %rax
testb $0x1, 0x1c(%rax)
je 0x2ab5a
movl 0xac(%rsp), %esi
movq 0x58(%rsp), %rdx
movq 0xc0(%rsp), %rcx
leaq 0x139300(%rip), %rdi    # 0x163e51
movb $0x0, %al
callq 0x1c550
jmp 0x2ab8c
movq 0xe0(%rsp), %rdi
movl 0xac(%rsp), %edx
movq 0x58(%rsp), %rcx
movq 0xc0(%rsp), %r8
leaq 0x1392dd(%rip), %rsi    # 0x163e5a
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
jmp 0x2ae58
movq 0xc0(%rsp), %rdi
leaq 0x138f18(%rip), %rsi    # 0x163ab8
movl $0xd, %edx
callq 0xb280
cmpl $0x0, %eax
jne 0x2ad42
movb $0x0, 0x47(%rsp)
movq 0xd0(%rsp), %rax
testb $0x1, 0x1f(%rax)
je 0x2ac2c
movq 0xd0(%rsp), %rax
testb $0x1, 0x1c(%rax)
je 0x2abf8
movl 0xac(%rsp), %esi
movq 0x58(%rsp), %rdx
movq 0xc0(%rsp), %rcx
leaq 0x1392f8(%rip), %rdi    # 0x163ee7
movb $0x0, %al
callq 0x1c550
jmp 0x2ac2a
movq 0xe0(%rsp), %rdi
movl 0xac(%rsp), %edx
movq 0x58(%rsp), %rcx
movq 0xc0(%rsp), %r8
leaq 0x1392d5(%rip), %rsi    # 0x163ef0
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
jmp 0x2ac31
movb $0x1, 0x47(%rsp)
testb $0x1, 0x47(%rsp)
je 0x2ad3d
cmpl $0x0, 0x54(%rsp)
jne 0x2acd9
movq 0xc0(%rsp), %rdi
addq $0x2, %rdi
movl $0x20, %esi
callq 0xb1f0
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x48(%rsp)
jne 0x2ac85
movq 0xc0(%rsp), %rdi
addq $0x2, %rdi
movl $0x9, %esi
callq 0xb1f0
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x48(%rsp)
je 0x2aca5
movq 0x48(%rsp), %rax
movb $0x0, (%rax)
movq 0x48(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x48(%rsp)
jmp 0x2acd7
movq 0xe0(%rsp), %rdi
movl 0xac(%rsp), %edx
movq 0x58(%rsp), %rcx
movq 0xc0(%rsp), %r8
leaq 0x13925f(%rip), %rsi    # 0x163f27
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
jmp 0x2acd9
cmpl $0x0, 0x54(%rsp)
jne 0x2ad3b
movq 0xd0(%rsp), %rax
movb $0x1, 0x1f(%rax)
movq 0xc0(%rsp), %rdi
addq $0x2, %rdi
movq 0x48(%rsp), %rsi
callq 0x33fc0
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rdi
movq 0xb0(%rsp), %rsi
movl 0xac(%rsp), %edx
callq 0x25610
movq 0xc8(%rsp), %rdi
movq 0x80(%rsp), %rsi
callq 0x909d0
jmp 0x2ad3d
jmp 0x2ae56
movq 0xd0(%rsp), %rax
testb $0x1, 0x1f(%rax)
je 0x2ad89
movq 0xc0(%rsp), %rdi
callq 0x2c420
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x17(%rsp)
jne 0x2ad6c
jmp 0x2ad7d
movq 0xc0(%rsp), %rdi
callq 0x2c4f0
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x2ad9c
movq 0xc0(%rsp), %rdi
callq 0x2c420
andb $0x1, %al
movb %al, 0x37(%rsp)
testb $0x1, 0x37(%rsp)
je 0x2adc5
movl 0xac(%rsp), %esi
movq 0x58(%rsp), %rdx
movq 0xc0(%rsp), %rcx
leaq 0x1391b3(%rip), %rdi    # 0x163f71
movb $0x0, %al
callq 0x1c550
movq 0xc0(%rsp), %rdi
addq $0x2, %rdi
movl $0x20, %esi
callq 0xb1f0
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x38(%rsp)
je 0x2adfe
movq 0x38(%rsp), %rax
movb $0x0, (%rax)
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
cmpl $0x0, 0x54(%rsp)
jne 0x2ae54
movq 0xc0(%rsp), %rdi
addq $0x2, %rdi
movq 0x38(%rsp), %rsi
callq 0x33fc0
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rdi
movq 0xb0(%rsp), %rsi
movl 0xac(%rsp), %edx
callq 0x25610
movq 0xc8(%rsp), %rdi
movq 0x80(%rsp), %rsi
callq 0x909d0
jmp 0x2ae56
jmp 0x2ae58
jmp 0x2ae5a
jmp 0x2ae5c
jmp 0x2ae5e
jmp 0x2ae60
movq 0x78(%rsp), %rdi
callq 0x1afc0
movl 0x54(%rsp), %eax
addq $0xd8, %rsp
retq
nopw %cs:(%rax,%rax)