// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/sequence_buffer_gb.c
// Function: gt_sequence_buffer_gb_advance
static int gt_sequence_buffer_gb_advance(GtSequenceBuffer *sb, GtError *err)
{
  GtUword currentoutpos = 0, currentfileadd = 0, currentfileread = 0;
  GtSequenceBufferMembers *pvt;
  GtSequenceBufferGB *sbe;
  int had_err = 0;
  gt_error_check(err);

  sbe = gt_sequence_buffer_gb_cast(sb);
  pvt = sb->pvt;

  /* open first stream */
  if (!pvt->inputstream) {
    sbe->state = GB_OUT_OF_ENTRY;
    pvt->linenum = (uint64_t) 1;
    pvt->inputstream = gt_file_xopen(gt_str_array_get(pvt->filenametab,
                                                  (GtUword) pvt->filenum),
                                        "rb");
    pvt->currentinpos = 0;
    pvt->currentfillpos = 0;
  }

  if (gt_str_length(sbe->overflowbuffer) > 0) {
    /* we still have surplus sequence from the last line, process that first */
    GtUword i;
    const char *overflowedstring;
    overflowedstring = gt_str_get_mem(sbe->overflowbuffer);
    for (i=0;i<gt_str_length(sbe->overflowbuffer);i++) {
      process_char(sb, currentoutpos, overflowedstring[i], err);
      currentoutpos++;
      currentfileadd++;
    }
    gt_str_reset(sbe->overflowbuffer);
    gt_assert(gt_str_length(sbe->overflowbuffer) == 0);
  }

  while (true) {
    if (had_err && had_err != EOF)
      break;

    if (currentoutpos >= (GtUword) OUTBUFSIZE) {
      if (pvt->filelengthtab) {
        pvt->filelengthtab[pvt->filenum].length
          += (uint64_t) currentfileread;
        pvt->filelengthtab[pvt->filenum].effectivelength
          += (uint64_t) currentfileadd;
      }
      break;
    }

    had_err = get_keyword(sb, sbe->keywordbuffer, &currentfileread);

    if (had_err && had_err != EOF)
      break;

    /* terminators may occur in any line */
    if (!had_err && strcmp(gt_str_get(sbe->keywordbuffer),
                           GB_ENTRY_TERMINATOR) == 0) {
      pvt->outbuf[currentoutpos++] = (GtUchar) GT_SEPARATOR;
      currentfileadd++;
      pvt->lastspeciallength++;
      if (!sbe->description_set && pvt->descptr)
          gt_desc_buffer_finish(pvt->descptr);
      sbe->description_set = false;
      if ((eat_line(sb, &currentfileread)) == EOF)
        break;
      sbe->state = GB_OUT_OF_ENTRY;
    }

    switch (sbe->state) {
      case GB_OUT_OF_ENTRY:
        /* eat everything */
        if (!had_err && strcmp(gt_str_get(sbe->keywordbuffer),
                               GB_LOCUS_STRING) == 0) {
          sbe->state = GB_AWAITING_DESCRIPTION;
          gt_str_reset(sbe->keywordbuffer);
          had_err = eat_whitespace(sb, &currentfileread);
          if (!had_err) {
            had_err = get_keyword(sb, sbe->keywordbuffer, &currentfileread);
          }
          if (!had_err) {
            if (sb->pvt->descptr) {
              GtUword l = 0;
              const char* b = gt_str_get(sbe->keywordbuffer);
              for (l = 0; l < gt_str_length(sbe->keywordbuffer); l++) {
                gt_desc_buffer_append_char(sb->pvt->descptr, b[l]);
              }
            }
          }
        }
        had_err = eat_line(sb, &currentfileread);
        break;
      case GB_AWAITING_DESCRIPTION:
        if (strcmp(gt_str_get(sbe->keywordbuffer),
                   GB_DEFINITION_STRING) == 0) {
          had_err = eat_whitespace(sb, &currentfileread);
          if (pvt->descptr && gt_desc_buffer_length(pvt->descptr) > 0)
            gt_desc_buffer_append_char(pvt->descptr, ' ');
          if (!had_err)
            had_err = get_description(sb, &currentfileread);
          sbe->state = GB_IN_DESCRIPTION;
        } else if (strcmp(gt_str_get(sbe->keywordbuffer),
                   GB_ORIGIN_STRING) == 0) {
          gt_warning("sequence started without prior DEFINITION line in entry "
                     "in line "GT_WU" of file %s",
                     (GtUword) pvt->linenum,
                     gt_str_array_get(pvt->filenametab,
                                     (GtUword) pvt->filenum));
          had_err = eat_line(sb, &currentfileread);
          sbe->state = GB_IN_SEQUENCE;
        } else {
          had_err = eat_line(sb, &currentfileread);
        }
        break;
      case GB_IN_DESCRIPTION:
        if (gt_str_length(sbe->keywordbuffer) == 0)
        {
          had_err = eat_whitespace(sb, &currentfileread);
          if (pvt->descptr)
            gt_desc_buffer_append_char(pvt->descptr, ' ');
          if (!had_err)
            had_err = get_description(sb, &currentfileread);
        } else {
          if (strcmp(gt_str_get(sbe->keywordbuffer),
                     GB_DEFINITION_STRING) == 0) {
            gt_error_set(err, "encountered another DEFINITION line within one "
                              "entry in line "GT_WU" of file %s",
                              (GtUword) pvt->linenum,
                              gt_str_array_get(pvt->filenametab,
                                                (GtUword) pvt->filenum));
            return -1;
          } else {
            if (pvt->descptr) {
              gt_desc_buffer_finish(pvt->descptr);
            }
            sbe->description_set = true;
            if (strcmp(gt_str_get(sbe->keywordbuffer),
                       GB_ORIGIN_STRING) == 0) {
              had_err = eat_line(sb, &currentfileread);
              sbe->state = GB_IN_SEQUENCE;
            } else {
              had_err = eat_line(sb, &currentfileread);
              sbe->state = GB_AWAITING_SEQUENCE;
            }
          }
        }
        break;
      case GB_AWAITING_SEQUENCE:
        if (strcmp(gt_str_get(sbe->keywordbuffer),
                   GB_ORIGIN_STRING) == 0) {
          had_err = eat_line(sb, &currentfileread);
          sbe->state = GB_IN_SEQUENCE;
        } else {
          had_err = eat_line(sb, &currentfileread);
        }
        break;
      case GB_IN_SEQUENCE:
        if (gt_str_length(sbe->keywordbuffer) != 0) {
          gt_error_set(err, "only terminators allowed after a "
                            "sequence section, but found '%s' instead "
                            "in line "GT_WU" of file %s",
                            gt_str_get(sbe->keywordbuffer),
                            (GtUword) pvt->linenum,
                            gt_str_array_get(pvt->filenametab,
                                                (GtUword) pvt->filenum));
          return -1;
        } else {
          had_err = eat_whitespace(sb, &currentfileread);
          if (!had_err)
            had_err = get_sequence(sb, sbe->overflowbuffer, &currentoutpos,
                                   &currentfileread, &currentfileadd, err);
        }
        break;
    }
    /* ensure that line has been read completely */
    if (!had_err)
      had_err = eat_newline(sb, &currentfileread);
    gt_str_reset(sbe->keywordbuffer);
    /* handle end of file */
    if (had_err == EOF) {
      if (pvt->filelengthtab) {
        pvt->filelengthtab[pvt->filenum].length
          += (uint64_t) currentfileread;
        pvt->filelengthtab[pvt->filenum].effectivelength
          += (uint64_t) currentfileadd;
      }
      if (pvt->filenum+1 < gt_str_array_size(pvt->filenametab)) {
        pvt->filenum++;
        /* still files left, open next one */
        gt_file_delete(pvt->inputstream);
        sbe->state = GB_OUT_OF_ENTRY;
        pvt->linenum = (uint64_t) 0;
        pvt->inputstream = gt_file_xopen(gt_str_array_get(pvt->filenametab,
                                                  (GtUword) pvt->filenum),
                                            "rb");
        if (pvt->filelengthtab) {
          pvt->filelengthtab[pvt->filenum].length = 0;
          pvt->filelengthtab[pvt->filenum].effectivelength = 0;
        }
        pvt->currentinpos = 0;
        pvt->currentfillpos = 0;
        currentfileread = currentfileadd = 0;
      } else {
        /* all files exhausted */
        pvt->complete = true;
        /* remove last separator */
        pvt->outbuf[--currentoutpos] = (GtUchar) '\0';
        if (pvt->filelengthtab) {
          pvt->filelengthtab[pvt->filenum].effectivelength--;
        }
        had_err = 0;
        break;
      }
    }
    pvt->linenum++;
  }
  pvt->nextfree = GT_MIN(currentoutpos, OUTBUFSIZE);
  return had_err;
}

// Assembly:
subq $0xc8, %rsp
movq %rdi, 0xb8(%rsp)
movq %rsi, 0xb0(%rsp)
movq $0x0, 0xa8(%rsp)
movq $0x0, 0xa0(%rsp)
movq $0x0, 0x98(%rsp)
movl $0x0, 0x84(%rsp)
cmpq $0x0, 0xb0(%rsp)
je 0xa05bc
movq 0xb0(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xa0584
jmp 0xa05bc
movq 0x113a4d(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xbdad1(%rip), %rsi     # 0x15e066
leaq 0xbe0ac(%rip), %rdx     # 0x15e648
leaq 0xd117c(%rip), %rcx     # 0x17171f
leaq 0xd1193(%rip), %r8      # 0x17173d
movl $0xd8, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xa05be
callq 0xa0510
movq %rax, %rdi
movq 0xb8(%rsp), %rsi
callq 0x9b9e0
movq %rax, 0x88(%rsp)
movq 0xb8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x90(%rsp)
movq 0x90(%rsp), %rax
cmpq $0x0, 0x28(%rax)
jne 0xa0678
movq 0x88(%rsp), %rax
movl $0x0, 0x2c(%rax)
movq 0x90(%rsp), %rax
movq $0x1, 0x8(%rax)
movq 0x90(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x90(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x1b320
movq %rax, %rdi
leaq 0xca967(%rip), %rsi     # 0x16afab
callq 0x834c0
movq %rax, %rcx
movq 0x90(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x90(%rsp), %rax
movq $0x0, 0x48(%rax)
movq 0x90(%rsp), %rax
movq $0x0, 0x40(%rax)
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x19a00
cmpq $0x0, %rax
jbe 0xa07a6
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x199b0
movq %rax, 0x70(%rsp)
movq $0x0, 0x78(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x19a00
movq %rax, %rcx
movq 0x58(%rsp), %rax
cmpq %rcx, %rax
jae 0xa0742
movq 0xb8(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0x70(%rsp), %rax
movq 0x78(%rsp), %rcx
movb (%rax,%rcx), %al
movq 0xb0(%rsp), %rcx
movzbl %al, %edx
callq 0xa14c0
movq 0xa8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa8(%rsp)
movq 0xa0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa0(%rsp)
movq 0x78(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x78(%rsp)
jmp 0xa06b2
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x19b70
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x19a00
cmpq $0x0, %rax
je 0xa07a2
movq 0x113867(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xbd8eb(%rip), %rsi     # 0x15e066
leaq 0xd0d13(%rip), %rdx     # 0x171495
leaq 0xd0f96(%rip), %rcx     # 0x17171f
leaq 0xd0fad(%rip), %r8      # 0x17173d
movl $0xf3, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xa07a4
jmp 0xa07a6
jmp 0xa07a8
cmpl $0x0, 0x84(%rsp)
je 0xa07c1
cmpl $-0x1, 0x84(%rsp)
je 0xa07c1
jmp 0xa123b
cmpq $0x2000, 0xa8(%rsp) # imm = 0x2000
jb 0xa083b
movq 0x90(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0xa0836
movq 0x98(%rsp), %rcx
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x90(%rsp), %rdx
movl (%rdx), %edx
shlq $0x4, %rdx
addq %rdx, %rax
addq (%rax), %rcx
movq %rcx, (%rax)
movq 0xa0(%rsp), %rcx
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x90(%rsp), %rdx
movl (%rdx), %edx
shlq $0x4, %rdx
addq %rdx, %rax
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
jmp 0xa123b
movq 0xb8(%rsp), %rdi
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rsi
leaq 0x98(%rsp), %rdx
callq 0xa1640
movl %eax, 0x84(%rsp)
cmpl $0x0, 0x84(%rsp)
je 0xa087c
cmpl $-0x1, 0x84(%rsp)
je 0xa087c
jmp 0xa123b
cmpl $0x0, 0x84(%rsp)
jne 0xa096a
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0xcc32a(%rip), %rsi     # 0x16cbcf
callq 0xb850
cmpl $0x0, %eax
jne 0xa096a
movq 0x90(%rsp), %rax
movq 0xa8(%rsp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0xa8(%rsp)
movb $-0x1, 0x2079(%rax,%rcx)
movq 0xa0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa0(%rsp)
movq 0x90(%rsp), %rax
movq 0x60(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x60(%rax)
movq 0x88(%rsp), %rax
testb $0x1, 0x29(%rax)
jne 0xa0930
movq 0x90(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0xa0930
movq 0x90(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xe0800
movq 0x88(%rsp), %rax
movb $0x0, 0x29(%rax)
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1750
cmpl $-0x1, %eax
jne 0xa095b
jmp 0xa123b
movq 0x88(%rsp), %rax
movl $0x0, 0x2c(%rax)
movq 0x88(%rsp), %rax
movl 0x2c(%rax), %eax
movq %rax, 0x50(%rsp)
subq $0x4, %rax
ja 0xa0fba
movq 0x50(%rsp), %rax
leaq 0xd0d74(%rip), %rcx     # 0x171704
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x0, 0x84(%rsp)
jne 0xa0aec
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0xd0d99(%rip), %rsi     # 0x17175b
callq 0xb850
cmpl $0x0, %eax
jne 0xa0aec
movq 0x88(%rsp), %rax
movl $0x1, 0x2c(%rax)
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19b70
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa17d0
movl %eax, 0x84(%rsp)
cmpl $0x0, 0x84(%rsp)
jne 0xa0a3e
movq 0xb8(%rsp), %rdi
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rsi
leaq 0x98(%rsp), %rdx
callq 0xa1640
movl %eax, 0x84(%rsp)
cmpl $0x0, 0x84(%rsp)
jne 0xa0aea
movq 0xb8(%rsp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, 0x20(%rax)
je 0xa0ae8
movq $0x0, 0x68(%rsp)
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19940
movq %rax, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19a00
movq %rax, %rcx
movq 0x48(%rsp), %rax
cmpq %rcx, %rax
jae 0xa0ae6
movq 0xb8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rdi
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
movsbl (%rax,%rcx), %esi
callq 0xe0630
movq 0x68(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x68(%rsp)
jmp 0xa0a8b
jmp 0xa0ae8
jmp 0xa0aea
jmp 0xa0aec
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1750
movl %eax, 0x84(%rsp)
jmp 0xa0fba
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0xd0c39(%rip), %rsi     # 0x171761
callq 0xb850
cmpl $0x0, %eax
jne 0xa0bc8
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa17d0
movl %eax, 0x84(%rsp)
movq 0x90(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0xa0b8e
movq 0x90(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xe08a0
cmpq $0x0, %rax
jbe 0xa0b8e
movq 0x90(%rsp), %rax
movq 0x20(%rax), %rdi
movl $0x20, %esi
callq 0xe0630
cmpl $0x0, 0x84(%rsp)
jne 0xa0bb4
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1880
movl %eax, 0x84(%rsp)
movq 0x88(%rsp), %rax
movl $0x2, 0x2c(%rax)
jmp 0xa0c7c
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0xd0b89(%rip), %rsi     # 0x17176c
callq 0xb850
cmpl $0x0, %eax
jne 0xa0c5e
movq 0x90(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x90(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x90(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x1b320
movq 0x40(%rsp), %rsi
movq %rax, %rdx
leaq 0xd0b49(%rip), %rdi     # 0x171773
movb $0x0, %al
callq 0x1c550
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1750
movl %eax, 0x84(%rsp)
movq 0x88(%rsp), %rax
movl $0x4, 0x2c(%rax)
jmp 0xa0c7a
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1750
movl %eax, 0x84(%rsp)
jmp 0xa0c7c
jmp 0xa0fba
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19a00
cmpq $0x0, %rax
jne 0xa0d04
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa17d0
movl %eax, 0x84(%rsp)
movq 0x90(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0xa0cd9
movq 0x90(%rsp), %rax
movq 0x20(%rax), %rdi
movl $0x20, %esi
callq 0xe0630
cmpl $0x0, 0x84(%rsp)
jne 0xa0cff
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1880
movl %eax, 0x84(%rsp)
jmp 0xa0e3c
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0xd0a42(%rip), %rsi     # 0x171761
callq 0xb850
cmpl $0x0, %eax
jne 0xa0d8f
movq 0xb0(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x90(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x90(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x90(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x1b320
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rdx
movq %rax, %rcx
leaq 0xd0a4a(%rip), %rsi     # 0x1717c2
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0xc4(%rsp) # imm = 0xFFFFFFFF
jmp 0xa1283
movq 0x90(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0xa0daf
movq 0x90(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xe0800
movq 0x88(%rsp), %rax
movb $0x1, 0x29(%rax)
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0xd0996(%rip), %rsi     # 0x17176c
callq 0xb850
cmpl $0x0, %eax
jne 0xa0e0d
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1750
movl %eax, 0x84(%rsp)
movq 0x88(%rsp), %rax
movl $0x4, 0x2c(%rax)
jmp 0xa0e38
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1750
movl %eax, 0x84(%rsp)
movq 0x88(%rsp), %rax
movl $0x3, 0x2c(%rax)
jmp 0xa0e3a
jmp 0xa0e3c
jmp 0xa0fba
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0xd0910(%rip), %rsi     # 0x17176c
callq 0xb850
cmpl $0x0, %eax
jne 0xa0e93
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1750
movl %eax, 0x84(%rsp)
movq 0x88(%rsp), %rax
movl $0x4, 0x2c(%rax)
jmp 0xa0eaf
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1750
movl %eax, 0x84(%rsp)
jmp 0xa0fba
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19a00
cmpq $0x0, %rax
je 0xa0f50
movq 0xb0(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19940
movq %rax, 0x20(%rsp)
movq 0x90(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x90(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x90(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x1b320
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rdx
movq 0x28(%rsp), %rcx
movq %rax, %r8
leaq 0xd08d5(%rip), %rsi     # 0x17180e
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0xc4(%rsp) # imm = 0xFFFFFFFF
jmp 0xa1283
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa17d0
movl %eax, 0x84(%rsp)
cmpl $0x0, 0x84(%rsp)
jne 0xa0fb6
movq 0xb8(%rsp), %rdi
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rsi
movq 0xb0(%rsp), %r9
leaq 0xa8(%rsp), %rdx
leaq 0x98(%rsp), %rcx
leaq 0xa0(%rsp), %r8
callq 0xa1970
movl %eax, 0x84(%rsp)
jmp 0xa0fb8
jmp 0xa0fba
cmpl $0x0, 0x84(%rsp)
jne 0xa0fe0
movq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xa1be0
movl %eax, 0x84(%rsp)
movq 0x88(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x19b70
cmpl $-0x1, 0x84(%rsp)
jne 0xa1222
movq 0x90(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0xa1066
movq 0x98(%rsp), %rcx
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x90(%rsp), %rdx
movl (%rdx), %edx
shlq $0x4, %rdx
addq %rdx, %rax
addq (%rax), %rcx
movq %rcx, (%rax)
movq 0xa0(%rsp), %rcx
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x90(%rsp), %rdx
movl (%rdx), %edx
shlq $0x4, %rdx
addq %rdx, %rax
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq 0x90(%rsp), %rax
movl (%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movq %rax, 0x10(%rsp)
movq 0x90(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x1b720
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
jae 0xa11a8
movq 0x90(%rsp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq 0x90(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x83f40
movq 0x88(%rsp), %rax
movl $0x0, 0x2c(%rax)
movq 0x90(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x90(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x90(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x1b320
movq %rax, %rdi
leaq 0xc9ea9(%rip), %rsi     # 0x16afab
callq 0x834c0
movq %rax, %rcx
movq 0x90(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x90(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0xa116e
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x90(%rsp), %rcx
movl (%rcx), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x90(%rsp), %rcx
movl (%rcx), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movq 0x90(%rsp), %rax
movq $0x0, 0x48(%rax)
movq 0x90(%rsp), %rax
movq $0x0, 0x40(%rax)
movq $0x0, 0xa0(%rsp)
movq $0x0, 0x98(%rsp)
jmp 0xa1220
movq 0x90(%rsp), %rax
movb $0x1, 0x18(%rax)
movq 0x90(%rsp), %rax
movq 0xa8(%rsp), %rcx
movq %rcx, %rdx
addq $-0x1, %rdx
movq %rdx, 0xa8(%rsp)
movb $0x0, 0x2078(%rax,%rcx)
movq 0x90(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0xa1213
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x90(%rsp), %rcx
movl (%rcx), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x8(%rax)
movl $0x0, 0x84(%rsp)
jmp 0xa123b
jmp 0xa1222
movq 0x90(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0xa07a8
cmpq $0x2000, 0xa8(%rsp) # imm = 0x2000
jae 0xa1258
movq 0xa8(%rsp), %rax
movq %rax, 0x8(%rsp)
jmp 0xa1264
movl $0x2000, %eax           # imm = 0x2000
movq %rax, 0x8(%rsp)
jmp 0xa1264
movq 0x8(%rsp), %rcx
movq 0x90(%rsp), %rax
movq %rcx, 0x58(%rax)
movl 0x84(%rsp), %eax
movl %eax, 0xc4(%rsp)
movl 0xc4(%rsp), %eax
addq $0xc8, %rsp
retq
nopw %cs:(%rax,%rax)