// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/match_iterator_last.c
// Function: gt_match_iterator_last_next
static GtMatchIteratorStatus gt_match_iterator_last_next(GT_UNUSED
                                                         GtMatchIterator *gmpi,
                                                         GT_UNUSED
                                                         GtMatch **match,
                                                         GtError *err)
{
#ifndef _WIN32
  int had_err = 0, rval;
  GtMatchIteratorLast *mil;
  GtStr *tmp = NULL,
        *lastbinary = NULL,
        *matchfilename = NULL;
  gt_assert(gmpi && match);
  gt_error_check(err);
  mil = gt_match_iterator_last_cast(gmpi);

  if (!mil->pvt->queryfilename) {
    GtStr *fn = gt_str_clone(mil->pvt->idxfilename);
    gt_str_append_cstr(fn, ".qry");
    if (!gt_file_exists(gt_str_get(fn))) {
      last_prepare_fasta_seqs(gt_str_get(fn), mil->pvt->es2,
                              mil->pvt->desc_to_seqno, err);
    }
    mil->pvt->queryfilename = gt_str_ref(fn);
    gt_str_delete(fn);
  }

  if (!mil->pvt->matchfile) {
    int fdout;
    pid_t pid;
    gt_assert(mil->pvt->idxfilename
                && gt_str_length(mil->pvt->idxfilename) > 0);

    tmp = gt_str_new();
    lastbinary = gt_str_new();
    matchfilename = gt_str_new();
    had_err = get_run_parameterization(mil, tmp, lastbinary,
                                       gt_str_get(mil->pvt->idxfilename),
                                       gt_str_get(mil->pvt->queryfilename),
                                       err);
    if (!had_err) {
      char *matchfilehash;
      gt_assert(gt_str_length(tmp) > 0);
      matchfilehash = gt_md5_fingerprint(gt_str_get(tmp), gt_str_length(tmp));
      gt_assert(matchfilehash && strlen(matchfilehash) > 0);
      gt_str_append_cstr(matchfilename, mil->pvt->tmpdir);
      gt_str_append_cstr(matchfilename, "/");
      gt_str_append_cstr(matchfilename, matchfilehash);
      gt_str_append_cstr(matchfilename, ".match");
    }

    if (!had_err && !gt_file_exists(gt_str_get(matchfilename))) {
      char **args = NULL;
      args = gt_cstr_split(gt_str_get(tmp), ' ');
      fdout = open(gt_str_get(matchfilename), O_WRONLY | O_CREAT, 0600);
      switch ((pid = fork())) {
        case -1:
               had_err = -1;
               break;
        case 0:
          dup2(fdout, STDOUT_FILENO);
          close(fdout);
          execvp(gt_str_get(lastbinary), args);
        default:
        {
          int status;
          while (-1 == waitpid(pid, &status, 0));
        }
      }
      if (had_err == -1)
        gt_error_set(err, "error forking the LAST process");
      gt_cstr_array_delete(args);
    }
    if (!had_err) {
      mil->pvt->matchfile = gt_file_open(GT_FILE_MODE_UNCOMPRESSED,
                                         gt_str_get(matchfilename), "r", err);
      if (!mil->pvt->matchfile) {
        had_err = -1;
      }
    }
    gt_str_delete(lastbinary);
    gt_str_delete(tmp);

  }
  gt_str_delete(matchfilename);

  if (!had_err) {
    /* result file should now be open */
    gt_assert(mil->pvt->matchfile);
    /* skip all comment lines */
    while (last_parse_comment_line(mil));
    /* parse next match */
    if ((rval = last_parse_match(mil, match, err)) == EOF) {
      *match = NULL;
      return GT_MATCHER_STATUS_END;
    }
  }
  /* return error if required */
  if (had_err) {
    *match = NULL;
    return GT_MATCHER_STATUS_ERROR;
  }
  return GT_MATCHER_STATUS_OK;
#else
  /* XXX */
  gt_error_set(err, "gt_match_iterator_last_next() not implemented");
  return GT_MATCHER_STATUS_ERROR;
#endif
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4068, %rsp           # imm = 0x4068
testq %rdi, %rdi
je 0xfdfbb
movq %rsi, %rbp
testq %rsi, %rsi
je 0xfdfbb
movq %rdx, %r14
movq %rdi, %rbx
testq %rdx, %rdx
je 0xfd7e2
movq %r14, %rdi
callq 0x89eb7
testb %al, %al
jne 0xfe079
callq 0xfd766
movq %rax, %rdi
movq %rbx, %rsi
callq 0xfc6cb
movq %rax, %r15
movq 0x8(%rax), %rax
cmpq $0x0, 0x48(%rax)
jne 0xfd86a
movq 0x40(%rax), %rdi
callq 0xad442
movq %rax, %r12
leaq 0x229e28(%rip), %rsi    # 0x32763b
movq %rax, %rdi
callq 0xacbfb
movq %r12, %rdi
callq 0xad1fa
movq %rax, %rdi
callq 0x8da98
testb %al, %al
jne 0xfd84e
movq %r12, %rdi
callq 0xad1fa
movq 0x8(%r15), %rcx
movq 0x8(%rcx), %rsi
movq 0x68(%rcx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xfe26c
movq %r12, %rdi
callq 0xad4d2
movq 0x8(%r15), %rcx
movq %rax, 0x48(%rcx)
movq %r12, %rdi
callq 0xae103
movq 0x8(%r15), %rax
cmpq $0x0, 0x60(%rax)
je 0xfd95b
xorl %edi, %edi
callq 0xae103
movq 0x8(%r15), %rax
movq 0x60(%rax), %rdi
testq %rdi, %rdi
je 0xfdfe9
testq %rdi, %rdi
je 0xfdf83
callq 0x8d34b
cmpb $0x23, %al
jne 0xfd8bb
movq 0x8(%r15), %rax
movq 0x60(%rax), %rdi
callq 0x8d34b
cmpl $0xa, %eax
jne 0xfd89f
movq 0x8(%r15), %rax
movq 0x60(%rax), %rdi
jmp 0xfd88d
movq 0x8(%r15), %rcx
movq 0x60(%rcx), %rdi
movsbl %al, %esi
callq 0x8d3d2
orq $-0x1, 0x48(%rsp)
orq $-0x1, 0x40(%rsp)
orq $-0x1, 0x38(%rsp)
orq $-0x1, 0x30(%rsp)
orq $-0x1, 0x28(%rsp)
orq $-0x1, 0x58(%rsp)
orq $-0x1, 0x50(%rsp)
movb $0x7f, %al
movb %al, 0xf(%rsp)
movb %al, 0xe(%rsp)
movq 0x8(%r15), %rax
cmpq $0x0, 0x60(%rax)
je 0xfe017
testq %r14, %r14
je 0xfd927
movq %r14, %rdi
callq 0x89eb7
testb %al, %al
jne 0xfe0db
movq 0x8(%r15), %rax
movq 0x58(%rax), %rdi
callq 0xad357
movq 0x8(%r15), %rax
movq 0x58(%rax), %rdi
movq 0x60(%rax), %rsi
callq 0xad63c
testl %eax, %eax
je 0xfda82
movl %eax, %ecx
xorl %eax, %eax
cmpl $-0x1, %ecx
jne 0xfdf71
jmp 0xfdbbe
movq 0x40(%rax), %rdi
testq %rdi, %rdi
je 0xfe048
callq 0xad289
testq %rax, %rax
je 0xfe048
callq 0xacb84
movq %rax, %r12
callq 0xacb84
movq %rax, %rbx
callq 0xacb84
movq %rax, %r13
movq 0x8(%r15), %rax
movq 0x40(%rax), %rdi
callq 0xad1fa
movq %rax, 0x18(%rsp)
movq 0x8(%r15), %rax
movq 0x48(%rax), %rdi
callq 0xad1fa
movq %rax, 0x10(%rsp)
testq %r14, %r14
je 0xfd9c7
movq %r14, %rdi
callq 0x89eb7
testb %al, %al
jne 0xfe13d
movq %r12, %rdi
callq 0xad357
movq %rbx, %rdi
callq 0xad357
leaq 0x229b94(%rip), %rdi    # 0x327572
callq 0x17900
testq %rax, %rax
je 0xfdbca
movq %r12, %rdi
movq %rax, %rsi
callq 0xacbfb
leaq 0x229ce6(%rip), %rsi    # 0x3276e4
movq %r12, %rdi
callq 0xacbfb
movq %r12, %rdi
callq 0xad1fa
movq %rax, %rdi
callq 0x8da98
testb %al, %al
jne 0xfdbd9
movq %r12, %rdi
callq 0xad1fa
leaq 0x229cbf(%rip), %rsi    # 0x3276ec
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x89dbb
movq %rbx, %rdi
movq %r12, %rsi
callq 0xacd13
leaq 0x229cdb(%rip), %rsi    # 0x327727
movq %r12, %rdi
callq 0xacbfb
movq %r12, %rdi
movq 0x18(%rsp), %rsi
callq 0xacbfb
leaq 0x264ac8(%rip), %rsi    # 0x362530
movq %r12, %rdi
callq 0xacbfb
movq %r12, %rdi
movq 0x10(%rsp), %rsi
callq 0xacbfb
jmp 0xfdf51
movq 0x8(%r15), %rax
movq 0x58(%rax), %rdi
callq 0xad1fa
subq $0x8, %rsp
leaq 0x58(%rsp), %r10
leaq 0x16(%rsp), %r11
leaq 0x30(%rsp), %rbx
leaq 0x40(%rsp), %r12
leaq 0x2068(%rsp), %r13
leaq 0x229cbc(%rip), %rsi    # 0x327772
leaq 0x50(%rsp), %rdx
leaq 0x68(%rsp), %rcx
leaq 0x48(%rsp), %r8
leaq 0x38(%rsp), %r9
movq %rax, %rdi
movl $0x0, %eax
pushq %r10
pushq %r11
pushq %rbx
pushq %r12
pushq %r13
leaq 0x88(%rsp), %r10
pushq %r10
leaq 0x47(%rsp), %r10
pushq %r10
callq 0x177b0
addq $0x40, %rsp
movq 0x8(%r15), %rcx
cmpl $0xb, %eax
jne 0xfdba1
movq 0x68(%rcx), %rdi
leaq 0x60(%rsp), %rsi
callq 0x8f482
cmpq $-0x1, %rax
je 0xfe16c
movq %rax, %rbx
movq 0x8(%r15), %rax
movq 0x68(%rax), %rdi
leaq 0x2060(%rsp), %rsi
callq 0x8f482
cmpq $-0x1, %rax
je 0xfe19d
movq 0x48(%rsp), %rdx
movq 0x40(%rsp), %r9
movq 0x38(%rsp), %r10
movq 0x30(%rsp), %rcx
leaq (%r9,%rcx), %r11
decq %r11
movq 0x28(%rsp), %rcx
leaq (%r10,%rcx), %r14
decq %r14
movb 0xf(%rsp), %cl
xorl %r15d, %r15d
cmpb 0xe(%rsp), %cl
setne %r15b
leaq 0x60(%rsp), %rdi
leaq 0x2060(%rsp), %rsi
movq %rbx, %rcx
movq %rax, %r8
pushq %r15
pushq %r14
pushq %r11
pushq %r10
callq 0xfedf9
addq $0x20, %rsp
movq %rax, (%rbp)
xorl %eax, %eax
jmp 0xfdf71
movq 0x58(%rcx), %rdi
callq 0xad1fa
leaq 0x229be9(%rip), %rsi    # 0x32779a
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x89dbb
andq $0x0, (%rbp)
pushq $0x1
jmp 0xfdf70
leaq 0x229b14(%rip), %rsi    # 0x3276e5
movq %r12, %rdi
callq 0xacbfb
movq %rbx, 0x20(%rsp)
movq %rbx, %rdi
movq %r12, %rsi
callq 0xacd13
movq 0x8(%r15), %rax
xorl %ebx, %ebx
cmpl 0x10(%rax), %ebx
jo 0xfdc16
leaq 0x21a522(%rip), %rsi    # 0x31811d
movq %r12, %rdi
callq 0xacbfb
movq 0x8(%r15), %rax
movl 0x10(%rax), %esi
movq %r12, %rdi
callq 0xad0a8
movq 0x8(%r15), %rax
cmpl 0x14(%rax), %ebx
jo 0xfdc3d
leaq 0x21a4bc(%rip), %rsi    # 0x3180de
movq %r12, %rdi
callq 0xacbfb
movq 0x8(%r15), %rax
movl 0x14(%rax), %esi
movq %r12, %rdi
callq 0xad0a8
movq 0x8(%r15), %rax
xorl %ebx, %ebx
cmpl 0x18(%rax), %ebx
jo 0xfdc66
leaq 0x21a51a(%rip), %rsi    # 0x318165
movq %r12, %rdi
callq 0xacbfb
movq 0x8(%r15), %rax
movl 0x18(%rax), %esi
movq %r12, %rdi
callq 0xad0a8
movq 0x8(%r15), %rax
cmpl 0x1c(%rax), %ebx
jo 0xfdc8d
leaq 0x229a9c(%rip), %rsi    # 0x32770e
movq %r12, %rdi
callq 0xacbfb
movq 0x8(%r15), %rax
movl 0x1c(%rax), %esi
movq %r12, %rdi
callq 0xad0a8
movq 0x8(%r15), %rax
xorl %ebx, %ebx
cmpl 0x20(%rax), %ebx
jo 0xfdcb6
leaq 0x229a78(%rip), %rsi    # 0x327713
movq %r12, %rdi
callq 0xacbfb
movq 0x8(%r15), %rax
movl 0x20(%rax), %esi
movq %r12, %rdi
callq 0xad0a8
movq 0x8(%r15), %rax
cmpl 0x24(%rax), %ebx
jo 0xfdcdd
leaq 0x229a56(%rip), %rsi    # 0x327718
movq %r12, %rdi
callq 0xacbfb
movq 0x8(%r15), %rax
movl 0x24(%rax), %esi
movq %r12, %rdi
callq 0xad0a8
movq 0x8(%r15), %rax
xorl %ebx, %ebx
cmpl 0x28(%rax), %ebx
jo 0xfdd06
leaq 0x229a32(%rip), %rsi    # 0x32771d
movq %r12, %rdi
callq 0xacbfb
movq 0x8(%r15), %rax
movl 0x28(%rax), %esi
movq %r12, %rdi
callq 0xad0a8
movq 0x8(%r15), %rax
cmpl 0x34(%rax), %ebx
jo 0xfdd2d
leaq 0x229a10(%rip), %rsi    # 0x327722
movq %r12, %rdi
callq 0xacbfb
movq 0x8(%r15), %rax
movl 0x34(%rax), %esi
movq %r12, %rdi
callq 0xad0a8
movq 0x8(%r15), %rax
xorl %ebx, %ebx
cmpl 0x2c(%rax), %ebx
jo 0xfdd56
leaq 0x21a28a(%rip), %rsi    # 0x317fc5
movq %r12, %rdi
callq 0xacbfb
movq 0x8(%r15), %rax
movl 0x2c(%rax), %esi
movq %r12, %rdi
callq 0xad0a8
movq 0x8(%r15), %rax
cmpl 0x30(%rax), %ebx
jo 0xfdd79
leaq 0x21a229(%rip), %rsi    # 0x317f8b
movq %r12, %rdi
callq 0xacbfb
movq 0x8(%r15), %rax
movl 0x30(%rax), %esi
movq %r12, %rdi
callq 0xad0a8
leaq 0x2299a7(%rip), %rsi    # 0x327727
movq %r12, %rdi
callq 0xacbfb
movq %r12, %rdi
movq 0x18(%rsp), %rsi
callq 0xacbfb
leaq 0x264794(%rip), %rsi    # 0x362530
movq %r12, %rdi
callq 0xacbfb
movq %r12, %rdi
movq 0x10(%rsp), %rsi
callq 0xacbfb
movq %r12, %rdi
callq 0xad289
testq %rax, %rax
je 0xfe10c
movq %r12, %rdi
callq 0xad1fa
movq %rax, %rbx
movq %r12, %rdi
callq 0xad289
movq %rbx, %rdi
movq %rax, %rsi
callq 0x96924
testq %rax, %rax
je 0xfe0aa
movq %rax, %rbx
cmpb $0x0, (%rax)
je 0xfe0aa
movq 0x8(%r15), %rax
movq 0x38(%rax), %rsi
movq %r13, %rdi
callq 0xacbfb
leaq 0x2012fb(%rip), %rsi    # 0x2ff107
movq %r13, %rdi
callq 0xacbfb
movq %r13, %rdi
movq %rbx, %rsi
callq 0xacbfb
leaq 0x22989e(%rip), %rsi    # 0x3276c4
movq %r13, %rdi
callq 0xacbfb
movq %r13, %rdi
callq 0xad1fa
movq %rax, %rdi
callq 0x8da98
testb %al, %al
jne 0xfdee0
movq %rbp, 0x18(%rsp)
movq %r12, %rdi
callq 0xad1fa
pushq $0x20
popq %rsi
movq %rax, %rdi
callq 0x6c174
movq %rax, 0x10(%rsp)
movq %r13, %rdi
callq 0xad1fa
pushq $0x41
popq %rsi
movq %rax, %rdi
movl $0x180, %edx            # imm = 0x180
xorl %eax, %eax
callq 0x17ce0
movl %eax, %ebp
callq 0x171b0
cmpl $-0x1, %eax
je 0xfdf2c
movl %eax, %ebx
testl %eax, %eax
jne 0xfdebb
pushq $0x1
popq %rsi
movl %ebp, %edi
callq 0x17720
movl %ebp, %edi
callq 0x17f20
movq 0x20(%rsp), %rdi
callq 0xad1fa
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x17580
leaq 0x60(%rsp), %rbp
movl %ebx, %edi
movq %rbp, %rsi
xorl %edx, %edx
callq 0x175c0
cmpl $-0x1, %eax
je 0xfdec0
movq 0x10(%rsp), %rdi
callq 0x6ca1b
movq 0x18(%rsp), %rbp
movq %r13, %rdi
callq 0xad1fa
leaq 0x1fcf3e(%rip), %rdx    # 0x2fae2d
xorl %edi, %edi
movq %rax, %rsi
movq %r14, %rcx
callq 0x8cea6
movq %rax, %rbx
movq 0x8(%r15), %rax
movq %rbx, 0x60(%rax)
movq 0x20(%rsp), %rdi
callq 0xae103
movq %r12, %rdi
callq 0xae103
movq %r13, %rdi
callq 0xae103
testq %rbx, %rbx
jne 0xfd87c
jmp 0xfdf69
leaq 0x229679(%rip), %rsi    # 0x3275ac
movq %r14, %rdi
xorl %eax, %eax
callq 0x89dbb
movq 0x10(%rsp), %rdi
callq 0x6ca1b
movq 0x18(%rsp), %rbp
movq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0xae103
movq %r12, %rdi
callq 0xae103
movq %r13, %rdi
callq 0xae103
andq $0x0, (%rbp)
pushq $0x2
popq %rax
addq $0x4068, %rsp           # imm = 0x4068
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x339fde(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e707f(%rip), %rsi    # 0x2e5013
leaq 0x229793(%rip), %rdx    # 0x32772e
leaq 0x2297a7(%rip), %rcx    # 0x327749
leaq 0x229575(%rip), %r8     # 0x32751e
movl $0xd3, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x339fa6(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e7047(%rip), %rsi    # 0x2e5013
leaq 0x22963e(%rip), %rdx    # 0x327611
leaq 0x229645(%rip), %rcx    # 0x32761f
leaq 0x22953d(%rip), %r8     # 0x32751e
movl $0x120, %r9d            # imm = 0x120
jmp 0xfdfaf
movq 0x339f78(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e7019(%rip), %rsi    # 0x2e5013
leaq 0x229734(%rip), %rdx    # 0x327735
leaq 0x229617(%rip), %rcx    # 0x32761f
leaq 0x22950f(%rip), %r8     # 0x32751e
movl $0x16c, %r9d            # imm = 0x16C
jmp 0xfdfaf
movq 0x339f4a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e6feb(%rip), %rsi    # 0x2e5013
leaq 0x2296ff(%rip), %rdx    # 0x32772e
leaq 0x22972b(%rip), %rcx    # 0x327761
leaq 0x2294e1(%rip), %r8     # 0x32751e
movl $0xf2, %r9d
jmp 0xfdfaf
movq 0x339f19(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e6fba(%rip), %rsi    # 0x2e5013
leaq 0x2295e0(%rip), %rdx    # 0x327640
leaq 0x2295b8(%rip), %rcx    # 0x32761f
leaq 0x2294b0(%rip), %r8     # 0x32751e
movl $0x133, %r9d            # imm = 0x133
jmp 0xfdfaf
movq 0x339ee8(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e6f89(%rip), %rsi    # 0x2e5013
leaq 0x1e712e(%rip), %rdx    # 0x2e51bf
leaq 0x229587(%rip), %rcx    # 0x32761f
leaq 0x22947f(%rip), %r8     # 0x32751e
movl $0x121, %r9d            # imm = 0x121
jmp 0xfdfaf
movq 0x339eb7(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e6f58(%rip), %rsi    # 0x2e5013
leaq 0x2295d7(%rip), %rdx    # 0x327699
leaq 0x229556(%rip), %rcx    # 0x32761f
leaq 0x22944e(%rip), %r8     # 0x32751e
movl $0x140, %r9d            # imm = 0x140
jmp 0xfdfaf
movq 0x339e86(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e6f27(%rip), %rsi    # 0x2e5013
leaq 0x1e70cc(%rip), %rdx    # 0x2e51bf
leaq 0x229667(%rip), %rcx    # 0x327761
leaq 0x22941d(%rip), %r8     # 0x32751e
movl $0xf3, %r9d
jmp 0xfdfaf
movq 0x339e55(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e6ef6(%rip), %rsi    # 0x2e5013
leaq 0x22955e(%rip), %rdx    # 0x327682
leaq 0x2294f4(%rip), %rcx    # 0x32761f
leaq 0x2293ec(%rip), %r8     # 0x32751e
movl $0x13e, %r9d            # imm = 0x13E
jmp 0xfdfaf
movq 0x339e24(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e6ec5(%rip), %rsi    # 0x2e5013
leaq 0x1e706a(%rip), %rdx    # 0x2e51bf
leaq 0x22956f(%rip), %rcx    # 0x3276cb
leaq 0x2293bb(%rip), %r8     # 0x32751e
pushq $0x63
popq %r9
jmp 0xfdfaf
movq 0x339df5(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e6e96(%rip), %rsi    # 0x2e5013
leaq 0x22964b(%rip), %rdx    # 0x3277cf
leaq 0x2295d6(%rip), %rcx    # 0x327761
leaq 0x22938c(%rip), %r8     # 0x32751e
movl $0x105, %r9d            # imm = 0x105
jmp 0xfdfaf
movq 0x339dc4(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1e6e65(%rip), %rsi    # 0x2e5013
leaq 0x229633(%rip), %rdx    # 0x3277e8
leaq 0x2295a5(%rip), %rcx    # 0x327761
leaq 0x22935b(%rip), %r8     # 0x32751e
movl $0x107, %r9d            # imm = 0x107
jmp 0xfdfaf