// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/core/sequence_buffer_embl.c
// Function: gt_sequence_buffer_embl_advance
static int gt_sequence_buffer_embl_advance(GtSequenceBuffer *sb, GtError *err)
{
  GtUword currentoutpos = 0, currentfileadd = 0, currentfileread = 0,
                linelen = 0;
  GtSequenceBufferMembers *pvt;
  GtSequenceBufferEMBL *sbe;
  GtEMBLParserLineCode lc = OTHER;
  const char *line = "";
  int had_err = 0;

  gt_error_check(err);

  sbe = gt_sequence_buffer_embl_cast(sb);
  pvt = sb->pvt;
  /* open first stream */
  if (!pvt->inputstream) {
    sbe->firstentryinfile = true;
    sbe->state = EMBL_UNDEFINED;
    pvt->linenum = (uint64_t) 0;
    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, len;
    const char *overflowedstring;
    overflowedstring = gt_str_get_mem(sbe->overflowbuffer);
    len = gt_str_length(sbe->overflowbuffer);
    for (i=0;i<len;i++)
    {
      process_char(sb, currentoutpos, overflowedstring[i], err);
      currentoutpos++;
      currentfileadd++;
    }
    gt_str_reset(sbe->overflowbuffer);
    gt_assert(gt_str_length(sbe->overflowbuffer) == 0);
  }

  /* parse file line-by-line */
  while (true) {
    had_err = parse_next_line(sb, &lc, sbe->overflowbuffer, &line, &linelen,
                              &currentfileread, &currentfileadd, &currentoutpos,
                              err);

    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;
      }
      pvt->nextfree = GT_MIN(currentoutpos, OUTBUFSIZE);
      return 0; /* buffer full, finished */
    }
    if (lc == TERMINATOR) {
      pvt->outbuf[currentoutpos++] = (GtUchar) GT_SEPARATOR;
      currentfileadd++;
      pvt->lastspeciallength++;
      sbe->state = EMBL_UNDEFINED;
      sbe->desc_spacer_was_set = false;
      if (!sbe->description_set && pvt->descptr)
          gt_desc_buffer_finish(pvt->descptr);
      sbe->description_set = false;
    }
    /* FSM transitions begin here */
    switch (sbe->state) {
      case EMBL_IN_DESCRIPTION:
        if (lc != DESCRIPTION) {
          /* save description */
          if (pvt->descptr) {
            gt_desc_buffer_finish(pvt->descptr);
          }
          sbe->description_set = true;
          /* gt_str_reset(sbe->headerbuffer); */
          sbe->state = EMBL_UNDEFINED;
        }
        break;
      case EMBL_IN_SEQUENCE:
        /* only a terminator may come after a sequence */
        if (lc != SEQUENCE) {
          gt_error_set(err, "unterminated sequence in line "GT_WU" of file %s",
                            (GtUword) pvt->linenum,
                            gt_str_array_get(pvt->filenametab,
                                                (GtUword) pvt->filenum));
          return -1;
        }
        break;
      case EMBL_UNDEFINED:
        switch (lc) {
          case DESCRIPTION:
            sbe->state = EMBL_IN_DESCRIPTION;
            if (pvt->descptr && gt_desc_buffer_length(pvt->descptr) > 0) {
              gt_desc_buffer_append_char(pvt->descptr, ' ');
            }
            break;
          case SEQUENCE:
            sbe->state = EMBL_IN_SEQUENCE;
            break;
          default:
            break;
        }
        break;
    }
    if (had_err == EOF) {
      /* save length table entries if needed */
      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 = EMBL_UNDEFINED;
        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 */
        gt_assert(pvt->outbuf[currentoutpos-1] == GT_SEPARATOR);
        pvt->outbuf[--currentoutpos] = (GtUchar) '\0';
        if (pvt->filelengthtab) {
          pvt->filelengthtab[pvt->filenum].effectivelength--;
        }
        had_err = 0;
        break;
      }
    }
  }
  pvt->nextfree = GT_MIN(currentoutpos, OUTBUFSIZE);
  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %rbp
movq %rdi, 0x20(%rsp)
testq %rsi, %rsi
je 0x80577
movq %rbp, %rdi
callq 0x3566a
testb %al, %al
jne 0x80f5b
leaq 0xcf26a(%rip), %rdi     # 0x14f7e8
movq 0x20(%rsp), %rbx
movq %rbx, %rsi
callq 0x7f396
movq %rax, %r13
movq 0x8(%rbx), %r14
cmpq $0x0, 0x28(%r14)
jne 0x805d5
movb $0x1, 0x20(%r13)
movl $0x0, 0x28(%r13)
movq $0x0, 0x8(%r14)
movq 0x70(%r14), %rdi
movl (%r14), %esi
callq 0x3d3e2
leaq 0x6d67d(%rip), %rsi     # 0xedc3e
movq %rax, %rdi
callq 0x756a8
movq %rax, 0x28(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%r14)
movq 0x18(%r13), %rdi
callq 0x3c434
testq %rax, %rax
movq %r14, 0x18(%rsp)
movq %rbp, 0x30(%rsp)
movq %r13, 0x10(%rsp)
je 0x806da
movq 0x18(%r13), %rdi
callq 0x3c425
movq %r13, %rcx
movq %rax, %r13
movq 0x18(%rcx), %rdi
callq 0x3c434
testq %rax, %rax
je 0x806df
movq %rax, %r12
leaq 0x72d43(%rip), %rbp     # 0xf3364
xorl %r15d, %r15d
movq %r12, %r14
movb (%r13,%r15), %al
movq 0x20(%rsp), %rcx
movq 0x8(%rcx), %r12
movq 0x6080(%r12), %rdx
movl %eax, %ecx
testq %rdx, %rdx
je 0x806af
movzbl %al, %ebx
movzbl (%rdx,%rbx), %ecx
cmpq $0xfd, %rcx
jne 0x8067d
movq 0x70(%r12), %rdi
movl (%r12), %esi
callq 0x3d3e2
movq 0x8(%r12), %r8
movq 0x30(%rsp), %rdi
movq %rbp, %rsi
movl %ebx, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0x3559f
jmp 0x806c4
leaq 0x60(%r12), %rdx
movq 0x60(%r12), %rsi
cmpb $-0x3, %cl
ja 0x806a9
testq %rsi, %rsi
je 0x80698
movq $0x0, (%rdx)
movq 0x38(%r12), %rdx
testq %rdx, %rdx
je 0x806af
leaq (%rdx,%rcx,8), %rdx
movq (%rdx), %rsi
incq %rsi
movq %rsi, (%rdx)
movb %cl, 0x2079(%r12,%r15)
movb %al, 0x4079(%r12,%r15)
incq 0x68(%r12)
incq %r15
movq %r14, %r12
cmpq %r15, %r14
jne 0x80624
movq 0x30(%rsp), %rbp
jmp 0x806e2
xorl %r12d, %r12d
jmp 0x80707
xorl %r12d, %r12d
movq 0x10(%rsp), %r13
movq 0x18(%r13), %rdi
callq 0x3c49c
movq 0x18(%r13), %rdi
callq 0x3c434
testq %rax, %rax
movq 0x18(%rsp), %r14
jne 0x80f60
leaq 0x40(%r14), %rax
movq %rax, 0x50(%rsp)
movq %r12, 0x38(%rsp)
xorl %esi, %esi
movq %r12, 0x48(%rsp)
movq 0x18(%r13), %rax
movq %rax, 0x40(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %r12
incq 0x8(%r12)
cmpb $0x1, 0x19(%r12)
jne 0x80749
movb $0x0, 0x19(%r12)
movzbl 0x78(%r12), %eax
jmp 0x807a0
movq 0x48(%r12), %rax
cmpq 0x40(%r12), %rax
jb 0x80787
movq %rsi, %rbx
movq 0x28(%r12), %rdi
leaq 0x79(%r12), %rsi
movl $0x2000, %edx           # imm = 0x2000
callq 0x75a89
cltq
movq %rax, 0x40(%r12)
testl %eax, %eax
je 0x809cb
movq $0x0, 0x48(%r12)
movq %rbx, %rsi
movq 0x48(%r12), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x48(%r12)
movzbl 0x79(%r12,%rax), %eax
movb %al, 0x78(%r12)
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
movl $0x5, %ebx
cmpl $-0x1, %eax
je 0x80887
leaq 0x1(%rsi), %r15
cmpl $0xa, %eax
jne 0x807c8
movq %r15, %rsi
xorl %r15d, %r15d
jmp 0x80887
movb %al, 0xe(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %r13
cmpb $0x1, 0x19(%r13)
jne 0x807e8
movb $0x0, 0x19(%r13)
movzbl 0x78(%r13), %eax
jmp 0x80837
movq 0x48(%r13), %rax
cmpq 0x40(%r13), %rax
jb 0x80821
movq %rsi, %r14
movq 0x28(%r12), %rdi
leaq 0x79(%r13), %rsi
movl $0x2000, %edx           # imm = 0x2000
callq 0x75a89
cltq
movq %rax, 0x40(%r13)
testl %eax, %eax
je 0x809f3
movq $0x0, 0x48(%r13)
movq %r14, %rsi
movq 0x48(%r13), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x48(%r13)
movzbl 0x79(%r13,%rax), %eax
movb %al, 0x78(%r13)
cmpl $-0x1, %eax
je 0x80874
leaq 0x2(%rsi), %r13
cmpl $0xa, %eax
jne 0x80992
movq 0x8(%r12), %rdx
movq %rbp, %rdi
leaq 0x72b39(%rip), %rsi     # 0xf3391
xorl %eax, %eax
callq 0x3559f
movl $0xfffffffe, %r15d      # imm = 0xFFFFFFFE
movq %r13, %rsi
movq 0x18(%rsp), %r14
movq 0x10(%rsp), %r13
jmp 0x80887
movq %r15, %rsi
movq 0x18(%rsp), %r14
movq 0x10(%rsp), %r13
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
leal -0x1(%r15), %eax
cmpl $-0x2, %eax
movq 0x48(%rsp), %r12
jb 0x80f0a
cmpq $0x2000, %r12           # imm = 0x2000
jae 0x80ea3
cmpl $0x4, %ebx
jne 0x808fb
movb $-0x1, 0x2079(%r14,%r12)
incq 0x60(%r14)
movl $0x0, 0x28(%r13)
movb $0x0, 0x24(%r13)
cmpb $0x0, 0x25(%r13)
jne 0x808ee
movq 0x20(%r14), %rdi
testq %rdi, %rdi
je 0x808ee
movl %ebx, 0x40(%rsp)
movq %rbp, %rbx
movq %rsi, %rbp
callq 0xa44e6
movq %rbp, %rsi
movq %rbx, %rbp
movl 0x40(%rsp), %ebx
incq %r12
incq 0x38(%rsp)
movb $0x0, 0x25(%r13)
movl 0x28(%r13), %eax
testl %eax, %eax
je 0x8094d
cmpl $0x1, %eax
je 0x8093f
cmpl $0x2, %eax
jne 0x809e0
testl %ebx, %ebx
je 0x809e0
movq 0x20(%r14), %rdi
testq %rdi, %rdi
je 0x8092d
movq %rsi, %rbx
callq 0xa44e6
movq %rbx, %rsi
movb $0x1, 0x25(%r13)
movl $0x0, 0x28(%r13)
jmp 0x809e0
cmpl $0x2, %ebx
je 0x809e0
jmp 0x80f2c
cmpl $0x2, %ebx
je 0x809d8
testl %ebx, %ebx
jne 0x809e0
movl $0x2, 0x28(%r13)
movq 0x20(%r14), %rdi
testq %rdi, %rdi
je 0x809e0
movq %rsi, %rbx
callq 0xa451b
movq %rbx, %rsi
testq %rax, %rax
je 0x809e0
movq 0x20(%r14), %rdi
movl $0x20, %esi
callq 0xa4434
movq %rbx, %rsi
jmp 0x809e0
movb %al, 0xf(%rsp)
cmpw $0x4544, 0xe(%rsp)      # imm = 0x4544
je 0x809ef
cmpw $0x2020, 0xe(%rsp)      # imm = 0x2020
je 0x80a00
cmpw $0x5858, 0xe(%rsp)      # imm = 0x5858
je 0x80a07
cmpw $0x4449, 0xe(%rsp)      # imm = 0x4449
je 0x80a0e
xorl %ebx, %ebx
cmpw $0x2f2f, 0xe(%rsp)      # imm = 0x2F2F
sete %bl
xorl $0x5, %ebx
jmp 0x80a13
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rbx, %rsi
jmp 0x807a0
movl $0x1, 0x28(%r13)
cmpl $-0x1, %r15d
jne 0x80717
jmp 0x80e06
xorl %ebx, %ebx
jmp 0x80a13
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %r14, %rsi
jmp 0x80837
movl $0x2, %ebx
jmp 0x80a13
movl $0x3, %ebx
jmp 0x80a13
movl $0x1, %ebx
cmpl $0x3, %ebx
jne 0x80a3b
movq 0x20(%rsp), %rax
movq 0x8(%rax), %r14
cmpb $0x1, 0x19(%r14)
jne 0x80af4
movb $0x0, 0x19(%r14)
movzbl 0x78(%r14), %r15d
jmp 0x80b3d
addq $0x5, %rsi
movq %rsi, 0x28(%rsp)
movl $0x3, %r15d
movq 0x20(%rsp), %rax
movq 0x8(%rax), %r14
cmpb $0x1, 0x19(%r14)
jne 0x80a66
movb $0x0, 0x19(%r14)
movzbl 0x78(%r14), %ebp
jmp 0x80aab
movq 0x48(%r14), %rax
cmpq 0x40(%r14), %rax
jb 0x80a95
movq 0x28(%r12), %rdi
leaq 0x79(%r14), %rsi
movl $0x2000, %edx           # imm = 0x2000
callq 0x75a89
cltq
movq %rax, 0x40(%r14)
testl %eax, %eax
je 0x80aed
movq $0x0, 0x48(%r14)
movq 0x48(%r14), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x48(%r14)
movzbl 0x79(%r14,%rax), %ebp
movb %bpl, 0x78(%r14)
cmpl $-0x1, %ebp
je 0x80da1
cmpl $0xa, %ebp
je 0x80db3
callq 0xb6e0
movq (%rax), %rax
movl %ebp, %ecx
testb $0x20, 0x1(%rax,%rcx,2)
je 0x80dcb
incq %r13
decl %r15d
movq 0x30(%rsp), %rbp
movq 0x28(%rsp), %rax
jne 0x80a4a
jmp 0x80dee
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x80aab
movq 0x48(%r14), %rax
cmpq 0x40(%r14), %rax
jb 0x80b27
movq 0x28(%r12), %rdi
leaq 0x79(%r14), %rsi
movl $0x2000, %edx           # imm = 0x2000
callq 0x75a89
cltq
movq %rax, 0x40(%r14)
testl %eax, %eax
je 0x80df6
movq $0x0, 0x48(%r14)
movq 0x48(%r14), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x48(%r14)
movzbl 0x79(%r14,%rax), %r15d
movb %r15b, 0x78(%r14)
cmpl $-0x1, %r15d
je 0x80d81
incq %r13
movq $0x0, 0x28(%rsp)
movq %r13, %rsi
cmpl $0xa, %r15d
je 0x80d89
testl %ebx, %ebx
je 0x80bcd
cmpl $0x1, %ebx
je 0x80bc0
cmpl $0x2, %ebx
jne 0x80c22
movq 0x28(%rsp), %rax
leal 0x1(%rax), %r13d
cmpl $0x40, %eax
jg 0x80c1a
movq %rsi, %r14
callq 0xb6e0
movq (%rax), %rax
movl %r15d, %ecx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x80bb6
cmpq $0x2000, 0x48(%rsp)     # imm = 0x2000
jb 0x80ca7
movsbl %r15b, %esi
movq 0x40(%rsp), %rdi
callq 0x3c28d
movl %r13d, %eax
movq %rax, 0x28(%rsp)
jmp 0x80c15
cmpl $0x3b, %r15d
jne 0x80bff
movl $0x5, %ebx
jmp 0x80c22
movq 0x20(%r12), %rdi
testq %rdi, %rdi
je 0x80c22
movq %rsi, %r14
movq 0x20(%rsp), %rax
cmpb $0x0, 0x24(%rax)
jne 0x80bf8
movl $0x20, %esi
callq 0xa4434
movq 0x20(%rsp), %rax
movb $0x1, 0x24(%rax)
movq 0x20(%r12), %rdi
jmp 0x80c0c
movq 0x20(%r12), %rdi
testq %rdi, %rdi
je 0x80c22
movq %rsi, %r14
movsbl %r15b, %esi
callq 0xa4434
movq %r14, %rsi
jmp 0x80c22
movl %r13d, %eax
movq %rax, 0x28(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %r14
cmpb $0x1, 0x19(%r14)
jne 0x80c3e
movb $0x0, 0x19(%r14)
movzbl 0x78(%r14), %r15d
jmp 0x80c89
movq 0x48(%r14), %rax
cmpq 0x40(%r14), %rax
jb 0x80c73
movq %rsi, %r13
movq 0x28(%r12), %rdi
leaq 0x79(%r14), %rsi
movl $0x2000, %edx           # imm = 0x2000
callq 0x75a89
cltq
movq %rax, 0x40(%r14)
testl %eax, %eax
je 0x80c9c
movq $0x0, 0x48(%r14)
movq %r13, %rsi
movq 0x48(%r14), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x48(%r14)
movzbl 0x79(%r14,%rax), %r15d
movb %r15b, 0x78(%r14)
leaq 0x1(%rsi), %r13
cmpl $-0x1, %r15d
jne 0x80b53
jmp 0x80877
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
movq %r13, %rsi
jmp 0x80c89
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x6080(%rdi), %rcx
movl %r15d, %eax
testq %rcx, %rcx
movq %r14, %rsi
je 0x80d3f
movzbl %r15b, %eax
movzbl (%rcx,%rax), %eax
cmpq $0xfd, %rax
jne 0x80d11
movzbl %r15b, %eax
movl %eax, 0x28(%rsp)
movq %rdi, %r15
movq 0x70(%rdi), %rdi
movl (%r15), %esi
callq 0x3d3e2
movq 0x8(%r15), %r8
movq %rbp, %rdi
xorl %ebp, %ebp
leaq 0x7266b(%rip), %rsi     # 0xf3364
movl 0x28(%rsp), %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0x3559f
movq %r14, %rsi
movl $0xfffffffe, %eax       # imm = 0xFFFFFFFE
jmp 0x80d5c
leaq 0x60(%rdi), %rcx
movq 0x60(%rdi), %rdx
cmpb $-0x3, %al
ja 0x80d39
testq %rdx, %rdx
je 0x80d29
movq $0x0, (%rcx)
movq 0x38(%rdi), %rcx
testq %rcx, %rcx
je 0x80d3f
leaq (%rcx,%rax,8), %rcx
movq (%rcx), %rdx
incq %rdx
movq %rdx, (%rcx)
movq 0x48(%rsp), %rcx
movb %al, 0x2079(%rdi,%rcx)
movb %r15b, 0x4079(%rdi,%rcx)
incq 0x68(%rdi)
xorl %eax, %eax
movb $0x1, %bpl
testb %bpl, %bpl
je 0x80e01
incq 0x48(%rsp)
incq 0x38(%rsp)
movl %r13d, %eax
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rbp
jmp 0x80c22
movq %r13, %rsi
jmp 0x80877
movq 0x40(%rsp), %rdi
movq %rsi, %r14
callq 0x3c40b
movq %r14, %rsi
xorl %r15d, %r15d
jmp 0x80868
movq %r13, %rsi
movq 0x18(%rsp), %r14
movq 0x30(%rsp), %rbp
jmp 0x8087c
incq %r13
xorl %r15d, %r15d
movq %r13, %rsi
movq 0x18(%rsp), %r14
movq 0x30(%rsp), %rbp
jmp 0x8086d
movq 0x8(%r12), %rdx
movq 0x30(%rsp), %rbp
movq %rbp, %rdi
leaq 0x725e1(%rip), %rsi     # 0xf33c0
xorl %eax, %eax
callq 0x3559f
incq %r13
jmp 0x8085f
movq %rax, %r13
jmp 0x80a18
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
jmp 0x80b3d
movl %eax, %r15d
jmp 0x80dbc
movq 0x10(%r14), %rax
testq %rax, %rax
je 0x80e24
movl (%r14), %ecx
shlq $0x4, %rcx
addq %rsi, (%rax,%rcx)
movq 0x38(%rsp), %rdx
addq %rdx, 0x8(%rax,%rcx)
movl (%r14), %ebx
incl %ebx
movq 0x70(%r14), %rdi
callq 0x3d560
cmpq %rbx, %rax
jbe 0x80ed6
incl (%r14)
movq 0x28(%r14), %rdi
callq 0x75b7c
movl $0x0, 0x28(%r13)
movq $0x0, 0x8(%r14)
movq 0x70(%r14), %rdi
movl (%r14), %esi
callq 0x3d3e2
movq %rax, %rdi
leaq 0x6cdd1(%rip), %rsi     # 0xedc3e
callq 0x756a8
movq %rax, 0x28(%r14)
movq 0x10(%r14), %rax
testq %rax, %rax
xorps %xmm0, %xmm0
je 0x80e8d
movl (%r14), %ecx
shlq $0x4, %rcx
movups %xmm0, (%rax,%rcx)
movq 0x50(%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x38(%rsp)
jmp 0x80715
movq 0x10(%r14), %rax
testq %rax, %rax
je 0x80ec1
movl (%r14), %ecx
shlq $0x4, %rcx
addq %rsi, (%rax,%rcx)
movq 0x38(%rsp), %rdx
addq %rdx, 0x8(%rax,%rcx)
movl $0x2000, %eax           # imm = 0x2000
cmpq %rax, %r12
cmovbq %r12, %rax
movq %rax, 0x58(%r14)
xorl %r15d, %r15d
jmp 0x80f1a
movb $0x1, 0x18(%r14)
cmpb $-0x1, 0x2078(%r14,%r12)
jne 0x80f65
decq %r12
movb $0x0, 0x2079(%r14,%r12)
movq 0x10(%r14), %rax
xorl %r15d, %r15d
testq %rax, %rax
je 0x80f0a
movl (%r14), %ecx
shlq $0x4, %rcx
decq 0x8(%rax,%rcx)
movl $0x2000, %eax           # imm = 0x2000
cmpq %rax, %r12
cmovbq %r12, %rax
movq %rax, 0x58(%r14)
movl %r15d, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%r14), %rbx
movq 0x70(%r14), %rdi
movl (%r14), %esi
callq 0x3d3e2
leaq 0x723c7(%rip), %rsi     # 0xf330a
movq %rbp, %rdi
movq %rbx, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
jmp 0x80f1a
callq 0x1df67
callq 0x1dfa0
callq 0x1dfd9