// File: /workspace/github_c_makefile_star2_O0/RodionGork[P]tinyscheme/scheme.c
// Function: opexe_4
static pointer opexe_4(scheme * sc, enum scheme_opcodes op) {
  pointer x, y;

  switch (op) {
  case OP_FORCE:               /* force */
    sc->code = car(sc->args);
    if (is_promise(sc->code)) {
      /* Should change type to closure here */
      s_save(sc, OP_SAVE_FORCED, sc->NIL, sc->code);
      sc->args = sc->NIL;
      s_goto(sc, OP_APPLY);
    } else {
      s_return(sc, sc->code);
    }

  case OP_SAVE_FORCED:         /* Save forced value replacing promise */
    memcpy(sc->code, sc->value, sizeof(struct cell));
    s_return(sc, sc->value);

  case OP_WRITE:               /* write */
  case OP_DISPLAY:             /* display */
  case OP_WRITE_CHAR:          /* write-char */
    if (is_pair(cdr(sc->args))) {
      if (cadr(sc->args) != sc->outport) {
        x = cons(sc, sc->outport, sc->NIL);
        s_save(sc, OP_SET_OUTPORT, x, sc->NIL);
        sc->outport = cadr(sc->args);
      }
    }
    sc->args = car(sc->args);
    if (op == OP_WRITE) {
      sc->print_flag = 1;
    } else {
      sc->print_flag = 0;
    }
    s_goto(sc, OP_P0LIST);

  case OP_WRITE_U8:            /* write-u8 */
    if (is_pair(cdr(sc->args))) {
      if (cadr(sc->args) != sc->outport) {
        x = cons(sc, sc->outport, sc->NIL);
        s_save(sc, OP_SET_OUTPORT, x, sc->NIL);
        sc->outport = cadr(sc->args);
      }
    }
    putcharacter(sc, ivalue(car(sc->args)));
    s_return(sc, sc->T);

  case OP_NEWLINE:             /* newline */
    if (is_pair(sc->args)) {
      if (car(sc->args) != sc->outport) {
        x = cons(sc, sc->outport, sc->NIL);
        s_save(sc, OP_SET_OUTPORT, x, sc->NIL);
        sc->outport = car(sc->args);
      }
    }
    putstr(sc, "\n");
    s_return(sc, sc->T);

  case OP_ERR0:                /* error */
    sc->retcode = -1;
    if (!is_string(car(sc->args))) {
      sc->args = cons(sc, mk_string(sc, " -- "), sc->args);
      setimmutable(car(sc->args));
    }
    putstr(sc, "Error: ");
    putstr(sc, strvalue(car(sc->args)));
    sc->args = cdr(sc->args);
    s_goto(sc, OP_ERR1);

  case OP_ERR1:                /* error */
    putstr(sc, " ");
    if (sc->args != sc->NIL) {
      s_save(sc, OP_ERR1, cdr(sc->args), sc->NIL);
      sc->args = car(sc->args);
      sc->print_flag = 1;
      s_goto(sc, OP_P0LIST);
    } else {
      putstr(sc, "\n");
      if (sc->interactive_repl) {
        s_goto(sc, OP_T0LVL);
      } else {
        return sc->NIL;
      }
    }

  case OP_REVERSE:             /* reverse */
    s_return(sc, reverse(sc, car(sc->args)));

  case OP_LIST_STAR:           /* list* */
    s_return(sc, list_star(sc, sc->args));

  case OP_APPEND:              /* append */
    x = sc->NIL;
    y = sc->args;
    if (y == x) {
      s_return(sc, x);
    }

    /* cdr() in the while condition is not a typo. If car() */
    /* is used (append '() 'a) will return the wrong result. */
    while (cdr(y) != sc->NIL) {
      x = revappend(sc, x, car(y));
      y = cdr(y);
      if (x == sc->F) {
        Error_0(sc, "non-list argument to append");
      }
    }

    s_return(sc, reverse_in_place(sc, car(y), x));

#if USE_PLIST
  case OP_PUT:                 /* put */
    if (!hasprop(car(sc->args)) || !hasprop(cadr(sc->args))) {
      Error_0(sc, "illegal use of put");
    }
    for (x = symprop(car(sc->args)), y = cadr(sc->args); x != sc->NIL;
        x = cdr(x)) {
      if (caar(x) == y) {
        break;
      }
    }
    if (x != sc->NIL)
      cdar(x) = caddr(sc->args);
    else
      symprop(car(sc->args)) = cons(sc, cons(sc, y, caddr(sc->args)),
          symprop(car(sc->args)));
    s_return(sc, sc->T);

  case OP_GET:                 /* get */
    if (!hasprop(car(sc->args)) || !hasprop(cadr(sc->args))) {
      Error_0(sc, "illegal use of get");
    }
    for (x = symprop(car(sc->args)), y = cadr(sc->args); x != sc->NIL;
        x = cdr(x)) {
      if (caar(x) == y) {
        break;
      }
    }
    if (x != sc->NIL) {
      s_return(sc, cdar(x));
    } else {
      s_return(sc, sc->NIL);
    }
#endif /* USE_PLIST */
  case OP_QUIT:                /* quit */
    if (is_pair(sc->args)) {
      sc->retcode = ivalue(car(sc->args));
    }
    return (sc->NIL);

  case OP_GC:                  /* gc */
    gc(sc, sc->NIL, sc->NIL);
    s_return(sc, sc->T);

  case OP_GCVERB:              /* gc-verbose */
    {
      int was = sc->gc_verbose;

      sc->gc_verbose = (car(sc->args) != sc->F);
      s_retbool(was);
    }

  case OP_NEWSEGMENT:          /* new-segment */
    if (!is_pair(sc->args) || !is_number(car(sc->args))) {
      Error_0(sc, "new-segment: argument must be a number");
    }
    alloc_cellseg(sc, (int) ivalue(car(sc->args)));
    s_return(sc, sc->T);

  case OP_OBLIST:              /* oblist */
    s_return(sc, oblist_all_symbols(sc));

  case OP_CURR_INPORT:         /* current-input-port */
    s_return(sc, sc->inport);

  case OP_CURR_OUTPORT:        /* current-output-port */
    s_return(sc, sc->outport);

  case OP_OPEN_INFILE:         /* open-input-file */
  case OP_OPEN_OUTFILE:        /* open-output-file */
  case OP_OPEN_INOUTFILE:      /* open-input-output-file */  {
      int prop = 0;
      pointer p;
      switch (op) {
      case OP_OPEN_INFILE:
        prop = port_input;
        break;
      case OP_OPEN_OUTFILE:
        prop = port_output;
        break;
      case OP_OPEN_INOUTFILE:
        prop = port_input | port_output;
        break;
      default:
        break;                  /* Quiet the compiler */
      }
      p = port_from_filename(sc, strvalue(car(sc->args)), prop);
      if (p == sc->NIL) {
        s_return(sc, sc->F);
      }
      s_return(sc, p);
    }

#if USE_STRING_PORTS
  case OP_OPEN_INSTRING:       /* open-input-string */
  case OP_OPEN_INOUTSTRING:    /* open-input-output-string */  {
      int prop = 0;
      pointer p;
      switch (op) {
      case OP_OPEN_INSTRING:
        prop = port_input;
        break;
      case OP_OPEN_INOUTSTRING:
        prop = port_input | port_output;
        break;
      default:
        break;                  /* Quiet the compiler */
      }
      p = port_from_string(sc, strvalue(car(sc->args)),
          strvalue(car(sc->args)) + strlength(car(sc->args)), prop);
      if (p == sc->NIL) {
        s_return(sc, sc->F);
      }
      s_return(sc, p);
    }
  case OP_OPEN_OUTSTRING:      /* open-output-string */  {
      pointer p;
      if (car(sc->args) == sc->NIL) {
        p = port_from_scratch(sc);
        if (p == sc->NIL) {
          s_return(sc, sc->F);
        }
      } else {
        p = port_from_string(sc, strvalue(car(sc->args)),
            strvalue(car(sc->args)) + strlength(car(sc->args)), port_output);
        if (p == sc->NIL) {
          s_return(sc, sc->F);
        }
      }
      s_return(sc, p);
    }
  case OP_GET_OUTSTRING:       /* get-output-string */  {
      port *p;

      if ((p = car(sc->args)->_object._port)->kind & port_string) {
        int size;
        char *str;

        size = p->rep.string.curr - p->rep.string.start + 1;
        str = sc->malloc(size);
        if (str != NULL) {
          pointer s;

          memcpy(str, p->rep.string.start, size - 1);
          str[size - 1] = '\0';
          s = mk_counted_string(sc, str, size - 1);
          sc->free(str);
          s_return(sc, s);
        }
      }
      s_return(sc, sc->F);
    }
#endif

  case OP_CLOSE_INPORT:        /* close-input-port */
    port_close(sc, car(sc->args), port_input);
    s_return(sc, sc->T);

  case OP_CLOSE_OUTPORT:       /* close-output-port */
    port_close(sc, car(sc->args), port_output);
    s_return(sc, sc->T);

  case OP_INT_ENV:             /* interaction-environment */
    s_return(sc, sc->global_env);

  case OP_CURR_ENV:            /* current-environment */
    s_return(sc, sc->envir);

  default:
    sprintf(sc->strbuff, "%d: illegal operator", sc->op);
    Error_0(sc, sc->strbuff);
  }
  return sc->T;
}

// Assembly:
subq $0xc8, %rsp
movq %rdi, 0xb8(%rsp)
movl %esi, 0xb4(%rsp)
movl 0xb4(%rsp), %eax
addl $0xffffff7b, %eax       # imm = 0xFFFFFF7B
movl %eax, %ecx
movq %rcx, 0x50(%rsp)
subl $0x1d, %eax
ja 0x10864
movq 0x50(%rsp), %rax
leaq 0x79fe(%rip), %rcx      # 0x1722c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0xb8(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x48d0
cmpl $0x0, %eax
je 0xf8df
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rdx
movq 0xb8(%rsp), %rax
movq 0x40(%rax), %rcx
movl $0x86, %esi
callq 0x132b0
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0xb8(%rsp), %rax
movl $0xa, 0xec8(%rax)
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rax
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x40(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0x40(%rax), %rax
movq 0xb8(%rsp), %rcx
movq 0xec0(%rcx), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rax)
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xec0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdi
callq 0x4710
cmpl $0x0, %eax
je 0xfa29
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x178(%rcx), %rax
je 0xfa27
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x178(%rax), %rsi
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rdx
xorl %ecx, %ecx
callq 0x4950
movq %rax, 0xa8(%rsp)
movq 0xb8(%rsp), %rdi
movq 0xa8(%rsp), %rdx
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rcx
movl $0xaa, %esi
callq 0x132b0
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x178(%rax)
jmp 0xfa29
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x30(%rax)
cmpl $0x87, 0xb4(%rsp)
jne 0xfa66
movq 0xb8(%rsp), %rax
movl $0x1, 0xebc(%rax)
jmp 0xfa78
movq 0xb8(%rsp), %rax
movl $0x0, 0xebc(%rax)
jmp 0xfa7a
movq 0xb8(%rsp), %rax
movl $0xb4, 0xec8(%rax)
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rax
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdi
callq 0x4710
cmpl $0x0, %eax
je 0xfb72
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x178(%rcx), %rax
je 0xfb70
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x178(%rax), %rsi
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rdx
xorl %ecx, %ecx
callq 0x4950
movq %rax, 0xa8(%rsp)
movq 0xb8(%rsp), %rdi
movq 0xa8(%rsp), %rdx
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rcx
movl $0xaa, %esi
callq 0x132b0
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x178(%rax)
jmp 0xfb72
movq 0xb8(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4510
movq 0x48(%rsp), %rdi
movl %eax, %esi
callq 0x5350
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x4710
cmpl $0x0, %eax
je 0xfc83
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x178(%rcx), %rax
je 0xfc81
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x178(%rax), %rsi
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rdx
xorl %ecx, %ecx
callq 0x4950
movq %rax, 0xa8(%rsp)
movq 0xb8(%rsp), %rdi
movq 0xa8(%rsp), %rdx
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rcx
movl $0xaa, %esi
callq 0x132b0
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x178(%rax)
jmp 0xfc83
movq 0xb8(%rsp), %rdi
leaq 0x7e33(%rip), %rsi      # 0x17ac5
callq 0x5150
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movl $0xffffffff, 0x10(%rax) # imm = 0xFFFFFFFF
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4400
cmpl $0x0, %eax
jne 0xfd49
movq 0xb8(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0xb8(%rsp), %rdi
leaq 0x8788(%rip), %rsi      # 0x1848d
callq 0x4bc0
movq 0x40(%rsp), %rdi
movq %rax, %rsi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rdx
xorl %ecx, %ecx
callq 0x4950
movq %rax, %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4930
movq 0xb8(%rsp), %rdi
leaq 0x873a(%rip), %rsi      # 0x18492
callq 0x5150
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x5150
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0xb8(%rsp), %rax
movl $0x8d, 0xec8(%rax)
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rax
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
leaq 0x8769(%rip), %rsi      # 0x18540
callq 0x5150
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x90(%rcx), %rax
je 0xfe8a
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdx
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rcx
movl $0x8d, %esi
callq 0x132b0
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0xb8(%rsp), %rax
movl $0x1, 0xebc(%rax)
movq 0xb8(%rsp), %rax
movl $0xb4, 0xec8(%rax)
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rax
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
leaq 0x7c2c(%rip), %rsi      # 0x17ac5
callq 0x5150
movq 0xb8(%rsp), %rax
cmpl $0x0, 0x50(%rax)
je 0xfedc
jmp 0xfeae
movq 0xb8(%rsp), %rax
movl $0x1, 0xec8(%rax)
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rax
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rax
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15ed0
movq 0x38(%rsp), %rdi
movq %rax, %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rsi
callq 0x13d10
movq 0x30(%rsp), %rdi
movq %rax, %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rax
movq %rax, 0xa8(%rsp)
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
cmpq 0xa8(%rsp), %rax
jne 0xffdb
movq 0xb8(%rsp), %rdi
movq 0xa8(%rsp), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
jmp 0xffdd
movq 0xa0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x90(%rcx), %rax
je 0x1007e
movq 0xb8(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0xa0(%rsp), %rax
movq 0x8(%rax), %rdx
callq 0x15f40
movq %rax, 0xa8(%rsp)
movq 0xa0(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0xa0(%rsp)
movq 0xa8(%rsp), %rax
movq 0xb8(%rsp), %rcx
cmpq 0xd0(%rcx), %rax
jne 0x10079
movq 0xb8(%rsp), %rdi
leaq 0x8437(%rip), %rsi      # 0x1849a
xorl %eax, %eax
movl %eax, %edx
callq 0x12ce0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
jmp 0xffdd
movq 0xb8(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0xb8(%rsp), %rdi
movq 0xa0(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0xa8(%rsp), %rdx
callq 0x7d40
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x4710
cmpl $0x0, %eax
je 0x100fe
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4510
movl %eax, %ecx
movq 0xb8(%rsp), %rax
movl %ecx, 0x10(%rax)
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rax
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rsi
movq 0xb8(%rsp), %rax
movq 0x90(%rax), %rdx
callq 0x6a70
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movsbl 0xa98(%rax), %eax
movl %eax, 0x9c(%rsp)
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0xb8(%rsp), %rcx
cmpq 0xd0(%rcx), %rax
setne %al
andb $0x1, %al
movzbl %al, %eax
movb %al, %cl
movq 0xb8(%rsp), %rax
movb %cl, 0xa98(%rax)
movq 0xb8(%rsp), %rax
movq %rax, 0x20(%rsp)
cmpl $0x0, 0x9c(%rsp)
je 0x101e8
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rax
movq %rax, 0x18(%rsp)
jmp 0x101fc
movq 0xb8(%rsp), %rax
movq 0xd0(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x4710
cmpl $0x0, %eax
je 0x10248
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4460
cmpl $0x0, %eax
jne 0x1026d
movq 0xb8(%rsp), %rdi
leaq 0x825f(%rip), %rsi      # 0x184b6
xorl %eax, %eax
movl %eax, %edx
callq 0x12ce0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4510
movq 0x10(%rsp), %rdi
movl %eax, %esi
callq 0x60d0
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0xb8(%rsp), %rdi
callq 0x15fe0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x170(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x178(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movl $0x0, 0x98(%rsp)
movl 0xb4(%rsp), %eax
movl %eax, 0x4(%rsp)
subl $0x98, %eax
je 0x10383
jmp 0x10369
movl 0x4(%rsp), %eax
subl $0x99, %eax
je 0x10390
jmp 0x10376
movl 0x4(%rsp), %eax
subl $0x9a, %eax
je 0x1039d
jmp 0x103aa
movl $0x10, 0x98(%rsp)
jmp 0x103ac
movl $0x20, 0x98(%rsp)
jmp 0x103ac
movl $0x30, 0x98(%rsp)
jmp 0x103ac
jmp 0x103ac
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
movl 0x98(%rsp), %edx
callq 0x16090
movq %rax, 0x90(%rsp)
movq 0x90(%rsp), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x90(%rcx), %rax
jne 0x1041e
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xd0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
movq 0x90(%rsp), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movl $0x0, 0x8c(%rsp)
movl 0xb4(%rsp), %eax
movl %eax, (%rsp)
subl $0x9b, %eax
je 0x1046a
jmp 0x1045e
movl (%rsp), %eax
subl $0x9c, %eax
je 0x10477
jmp 0x10484
movl $0x10, 0x8c(%rsp)
jmp 0x10486
movl $0x30, 0x8c(%rsp)
jmp 0x10486
jmp 0x10486
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movslq 0x10(%rax), %rax
addq %rax, %rdx
movl 0x8c(%rsp), %ecx
callq 0x6690
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x90(%rcx), %rax
jne 0x10523
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xd0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
movq 0x80(%rsp), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x90(%rcx), %rax
jne 0x105bc
movq 0xb8(%rsp), %rdi
callq 0x160f0
movq %rax, 0x78(%rsp)
movq 0x78(%rsp), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x90(%rcx), %rax
jne 0x105b7
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xd0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
jmp 0x10653
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movslq 0x10(%rax), %rax
addq %rax, %rdx
movl $0x20, %ecx
callq 0x6690
movq %rax, 0x78(%rsp)
movq 0x78(%rsp), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x90(%rcx), %rax
jne 0x10651
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xd0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
jmp 0x10653
movq 0xb8(%rsp), %rdi
movq 0x78(%rsp), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x70(%rsp)
movzbl (%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x1075c
movq 0x70(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x70(%rsp), %rcx
movq 0x8(%rcx), %rcx
subq %rcx, %rax
addq $0x1, %rax
movl %eax, 0x6c(%rsp)
movq 0xb8(%rsp), %rax
movq (%rax), %rax
movslq 0x6c(%rsp), %rdi
callq *%rax
movq %rax, 0x60(%rsp)
cmpq $0x0, 0x60(%rsp)
je 0x1075a
movq 0x60(%rsp), %rdi
movq 0x70(%rsp), %rax
movq 0x8(%rax), %rsi
movl 0x6c(%rsp), %eax
subl $0x1, %eax
movslq %eax, %rdx
callq 0x41b0
movq 0x60(%rsp), %rax
movl 0x6c(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movb $0x0, (%rax,%rcx)
movq 0xb8(%rsp), %rdi
movq 0x60(%rsp), %rsi
movl 0x6c(%rsp), %edx
subl $0x1, %edx
callq 0x4c10
movq %rax, 0x58(%rsp)
movq 0xb8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x60(%rsp), %rdi
callq *%rax
movq 0xb8(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
jmp 0x1075c
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xd0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rsi
movl $0x10, %edx
callq 0x138f0
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rsi
movl $0x20, %edx
callq 0x138f0
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xb0(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x100(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0x38(%rax), %rsi
callq 0x131b0
movq %rax, 0xc0(%rsp)
jmp 0x108b7
movq 0xb8(%rsp), %rax
movq 0xea0(%rax), %rdi
movq 0xb8(%rsp), %rax
movl 0xec8(%rax), %edx
leaq 0x7750(%rip), %rsi      # 0x17fd8
movb $0x0, %al
callq 0x4280
movq 0xb8(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq 0xea0(%rax), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x12ce0
movq %rax, 0xc0(%rsp)
movq 0xc0(%rsp), %rax
addq $0xc8, %rsp
retq
nopw (%rax,%rax)