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

  if (sc->nesting != 0) {
    int n = sc->nesting;
    sc->nesting = 0;
    sc->retcode = -1;
    Error_1(sc, "unmatched parentheses:", mk_integer(sc, n));
  }

  switch (op) {
    /* ========== reading part ========== */
  case OP_READ:
    if (!is_pair(sc->args)) {
      s_goto(sc, OP_READ_INTERNAL);
    }
    if (!is_inport(car(sc->args))) {
      Error_1(sc, "read: not an input port:", car(sc->args));
    }
    if (car(sc->args) == sc->inport) {
      s_goto(sc, OP_READ_INTERNAL);
    }
    x = sc->inport;
    sc->inport = car(sc->args);
    x = cons(sc, x, sc->NIL);
    s_save(sc, OP_SET_INPORT, x, sc->NIL);
    s_goto(sc, OP_READ_INTERNAL);

  case OP_READ_CHAR:           /* read-char */
  case OP_PEEK_CHAR:           /* peek-char */  {
      int c;
      if (is_pair(sc->args)) {
        if (car(sc->args) != sc->inport) {
          x = sc->inport;
          x = cons(sc, x, sc->NIL);
          s_save(sc, OP_SET_INPORT, x, sc->NIL);
          sc->inport = car(sc->args);
        }
      }
      c = inchar(sc);
      if (c == EOF) {
        s_return(sc, sc->EOF_OBJ);
      }
      if (sc->op == OP_PEEK_CHAR) {
        backchar(sc, c);
      }
      s_return(sc, mk_character(sc, c));
    }

  case OP_READ_U8:           /* read-u8 */
  case OP_PEEK_U8:           /* peek-u8 */  {
      int c;
      if (is_pair(sc->args)) {
        if (car(sc->args) != sc->inport) {
          x = sc->inport;
          x = cons(sc, x, sc->NIL);
          s_save(sc, OP_SET_INPORT, x, sc->NIL);
          sc->inport = car(sc->args);
        }
      }
      c = inchar8(sc);
      if (c == EOF) {
        s_return(sc, sc->EOF_OBJ);
      }
      if (sc->op == OP_PEEK_U8) {
        backchar(sc, c);
      }
      s_return(sc, mk_integer(sc, c));
    }

  case OP_CHAR_READY:          /* char-ready? */  {
      pointer p = sc->inport;
      int res;
      if (is_pair(sc->args)) {
        p = car(sc->args);
      }
      res = p->_object._port->kind & port_string;
      s_retbool(res);
    }

  case OP_SET_INPORT:          /* set-input-port */
    sc->inport = car(sc->args);
    s_return(sc, sc->value);

  case OP_SET_OUTPORT:         /* set-output-port */
    sc->outport = car(sc->args);
    s_return(sc, sc->value);

  case OP_RDSEXPR:
    switch (sc->tok) {
    case TOK_EOF:
      s_return(sc, sc->EOF_OBJ);
    case TOK_VEC:
      s_save(sc, OP_RDVEC, sc->NIL, sc->NIL);
      /* fall through */
    case TOK_LPAREN:
      sc->tok = token(sc);
      if (sc->tok == TOK_RPAREN) {
        s_return(sc, sc->NIL);
      } else if (sc->tok == TOK_DOT) {
        Error_0(sc, "syntax error: illegal dot expression");
      } else {
        sc->nesting_stack[sc->file_i]++;
        s_save(sc, OP_RDLIST, sc->NIL, sc->NIL);
        s_goto(sc, OP_RDSEXPR);
      }
    case TOK_QUOTE:
      s_save(sc, OP_RDQUOTE, sc->NIL, sc->NIL);
      sc->tok = token(sc);
      s_goto(sc, OP_RDSEXPR);
    case TOK_BQUOTE:
      sc->tok = token(sc);
      if (sc->tok == TOK_VEC) {
        s_save(sc, OP_RDQQUOTEVEC, sc->NIL, sc->NIL);
        sc->tok = TOK_LPAREN;
        s_goto(sc, OP_RDSEXPR);
      } else {
        s_save(sc, OP_RDQQUOTE, sc->NIL, sc->NIL);
      }
      s_goto(sc, OP_RDSEXPR);
    case TOK_COMMA:
      s_save(sc, OP_RDUNQUOTE, sc->NIL, sc->NIL);
      sc->tok = token(sc);
      s_goto(sc, OP_RDSEXPR);
    case TOK_ATMARK:
      s_save(sc, OP_RDUQTSP, sc->NIL, sc->NIL);
      sc->tok = token(sc);
      s_goto(sc, OP_RDSEXPR);
    case TOK_ATOM:
      s_return(sc, mk_atom(sc, readstr_upto(sc, DELIMITERS)));
    case TOK_DQUOTE:
      x = readstrexp(sc);
      if (x == sc->F) {
        Error_0(sc, "Error reading string");
      }
      setimmutable(x);
      s_return(sc, x);
    case TOK_SHARP:{
        pointer f = find_slot_in_env(sc, sc->envir, sc->SHARP_HOOK, 1);
        if (f == sc->NIL) {
          Error_0(sc, "undefined sharp expression");
        } else {
          sc->code = cons(sc, slot_value_in_env(f), sc->NIL);
          s_goto(sc, OP_EVAL);
        }
      }
    case TOK_SHARP_CONST:
      if ((x = mk_sharp_const(sc, readstr_upto(sc, DELIMITERS))) == sc->NIL) {
        Error_0(sc, "undefined sharp expression");
      } else {
        s_return(sc, x);
      }
    default:
      Error_0(sc, "syntax error: illegal token");
    }
    break;

  case OP_RDLIST:{
      sc->args = cons(sc, sc->value, sc->args);
      sc->tok = token(sc);
      if (sc->tok == TOK_EOF) {
        s_return(sc, sc->EOF_OBJ);
      } else if (sc->tok == TOK_RPAREN) {
        int c = inchar(sc);
        if (c != '\n')
          backchar(sc, c);
#if SHOW_ERROR_LINE
        else if (sc->load_stack[sc->file_i].kind & port_file)
          sc->load_stack[sc->file_i].rep.stdio.curr_line++;
#endif
        sc->nesting_stack[sc->file_i]--;
        s_return(sc, reverse_in_place(sc, sc->NIL, sc->args));
      } else if (sc->tok == TOK_DOT) {
        s_save(sc, OP_RDDOT, sc->args, sc->NIL);
        sc->tok = token(sc);
        s_goto(sc, OP_RDSEXPR);
      } else {
        s_save(sc, OP_RDLIST, sc->args, sc->NIL);;
        s_goto(sc, OP_RDSEXPR);
      }
    }

  case OP_RDDOT:
    if (token(sc) != TOK_RPAREN) {
      Error_0(sc, "syntax error: illegal dot expression");
    } else {
      sc->nesting_stack[sc->file_i]--;
      s_return(sc, reverse_in_place(sc, sc->value, sc->args));
    }

  case OP_RDQUOTE:
    s_return(sc, cons(sc, sc->QUOTE, cons(sc, sc->value, sc->NIL)));

  case OP_RDQQUOTE:
    s_return(sc, cons(sc, sc->QQUOTE, cons(sc, sc->value, sc->NIL)));

  case OP_RDQQUOTEVEC:
    s_return(sc, cons(sc, mk_symbol(sc, "apply"),
            cons(sc, mk_symbol(sc, "vector"),
                cons(sc, cons(sc, sc->QQUOTE,
                        cons(sc, sc->value, sc->NIL)), sc->NIL))));

  case OP_RDUNQUOTE:
    s_return(sc, cons(sc, sc->UNQUOTE, cons(sc, sc->value, sc->NIL)));

  case OP_RDUQTSP:
    s_return(sc, cons(sc, sc->UNQUOTESP, cons(sc, sc->value, sc->NIL)));

  case OP_RDVEC:
    /*sc->code=cons(sc,mk_proc(sc,OP_VECTOR),sc->value);
       s_goto(sc,OP_EVAL); Cannot be quoted */
    /*x=cons(sc,mk_proc(sc,OP_VECTOR),sc->value);
       s_return(sc,x); Cannot be part of pairs */
    /*sc->code=mk_proc(sc,OP_VECTOR);
       sc->args=sc->value;
       s_goto(sc,OP_APPLY); */
    sc->args = sc->value;
    s_goto(sc, OP_VECTOR);

    /* ========== printing part ========== */
  case OP_P0LIST:
    if (is_vector(sc->args)) {
      putstr(sc, "#(");
      sc->args = cons(sc, sc->args, mk_integer(sc, 0));
      s_goto(sc, OP_PVECFROM);
    } else if (is_environment(sc->args)) {
      putstr(sc, "#<ENVIRONMENT>");
      s_return(sc, sc->T);
    } else if (!is_pair(sc->args)) {
      printatom(sc, sc->args, sc->print_flag);
      s_return(sc, sc->T);
    } else if (car(sc->args) == sc->QUOTE && ok_abbrev(cdr(sc->args))) {
      putstr(sc, "'");
      sc->args = cadr(sc->args);
      s_goto(sc, OP_P0LIST);
    } else if (car(sc->args) == sc->QQUOTE && ok_abbrev(cdr(sc->args))) {
      putstr(sc, "`");
      sc->args = cadr(sc->args);
      s_goto(sc, OP_P0LIST);
    } else if (car(sc->args) == sc->UNQUOTE && ok_abbrev(cdr(sc->args))) {
      putstr(sc, ",");
      sc->args = cadr(sc->args);
      s_goto(sc, OP_P0LIST);
    } else if (car(sc->args) == sc->UNQUOTESP && ok_abbrev(cdr(sc->args))) {
      putstr(sc, ",@");
      sc->args = cadr(sc->args);
      s_goto(sc, OP_P0LIST);
    } else {
      putstr(sc, "(");
      s_save(sc, OP_P1LIST, cdr(sc->args), sc->NIL);
      sc->args = car(sc->args);
      s_goto(sc, OP_P0LIST);
    }

  case OP_P1LIST:
    if (is_pair(sc->args)) {
      s_save(sc, OP_P1LIST, cdr(sc->args), sc->NIL);
      putstr(sc, " ");
      sc->args = car(sc->args);
      s_goto(sc, OP_P0LIST);
    } else if (is_vector(sc->args)) {
      s_save(sc, OP_P1LIST, sc->NIL, sc->NIL);
      putstr(sc, " . ");
      s_goto(sc, OP_P0LIST);
    } else {
      if (sc->args != sc->NIL) {
        putstr(sc, " . ");
        printatom(sc, sc->args, sc->print_flag);
      }
      putstr(sc, ")");
      s_return(sc, sc->T);
    }
  case OP_PVECFROM:{
      int i = ivalue_unchecked(cdr(sc->args));
      pointer vec = car(sc->args);
      int len = ivalue_unchecked(vec);
      if (i == len) {
        putstr(sc, ")");
        s_return(sc, sc->T);
      } else {
        pointer elem = vector_elem(vec, i);
        ivalue_unchecked(cdr(sc->args)) = i + 1;
        s_save(sc, OP_PVECFROM, sc->args, sc->NIL);
        sc->args = elem;
        if (i > 0)
          putstr(sc, " ");
        s_goto(sc, OP_P0LIST);
      }
    }

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

  }
  return sc->T;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movslq 0xa94(%rdi), %r14
testq %r14, %r14
je 0xa0ca
movl $0x0, 0xa94(%rbx)
movl $0xffffffff, 0x10(%rbx) # imm = 0xFFFFFFFF
movq 0x90(%rbx), %rdx
movq %rbx, %rdi
movq %rdx, %rsi
callq 0x4689
movl $0x4002, (%rax)         # imm = 0x4002
movq %r14, 0x10(%rax)
movb $0x1, 0x8(%rax)
leaq 0x4105(%rip), %rsi      # 0xe1b6
movq %rbx, %rdi
movq %rax, %rdx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xad6a
addl $0xffffff5d, %esi       # imm = 0xFFFFFF5D
cmpl $0x13, %esi
ja 0xa4d7
leaq 0x3204(%rip), %rax      # 0xd2e4
movslq (%rax,%rsi,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq 0x30(%rbx), %rax
movl (%rax), %ecx
andl $0x1f, %ecx
cmpl $0x5, %ecx
jne 0xa14d
movq 0x170(%rbx), %r14
cmpq %r14, 0x8(%rax)
je 0xa14d
movq 0x90(%rbx), %r15
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x4689
movl $0x5, (%rax)
movq %r14, 0x8(%rax)
movq %r15, 0x10(%rax)
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xa9, %esi
movq %rax, %rdx
callq 0xb07e
movq 0x30(%rbx), %rax
movq 0x8(%rax), %rax
movq %rax, 0x170(%rbx)
movq %rbx, %rdi
callq 0xb445
cmpl $-0x1, %eax
je 0xa70a
movl %eax, %ebp
cmpl $0xa5, 0xec8(%rbx)
jne 0xa16f
movl %ebp, 0x2c(%rbx)
movq 0x90(%rbx), %rdx
movq %rbx, %rdi
movq %rdx, %rsi
callq 0x4689
movl $0x4009, (%rax)         # imm = 0x4009
movslq %ebp, %rcx
movq %rcx, 0x10(%rax)
jmp 0xa237
movq 0x30(%rbx), %rax
movl (%rax), %ecx
andl $0x1f, %ecx
cmpl $0x5, %ecx
jne 0xa1f7
movq 0x170(%rbx), %r14
cmpq %r14, 0x8(%rax)
je 0xa1f7
movq 0x90(%rbx), %r15
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x4689
movl $0x5, (%rax)
movq %r14, 0x8(%rax)
movq %r15, 0x10(%rax)
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xa9, %esi
movq %rax, %rdx
callq 0xb07e
movq 0x30(%rbx), %rax
movq 0x8(%rax), %rax
movq %rax, 0x170(%rbx)
movl 0x2c(%rbx), %eax
testl %eax, %eax
js 0xa6d4
movl $0xffffffff, 0x2c(%rbx) # imm = 0xFFFFFFFF
cmpl $0xa7, 0xec8(%rbx)
jne 0xa218
movl %eax, 0x2c(%rbx)
movslq %eax, %r14
movq 0x90(%rbx), %rdx
movq %rbx, %rdi
movq %rdx, %rsi
callq 0x4689
movl $0x4002, (%rax)         # imm = 0x4002
movq %r14, 0x10(%rax)
movb $0x1, 0x8(%rax)
jmp 0xa63a
movq 0x90(%rbx), %r14
movq 0x120(%rbx), %r15
jmp 0xa5fb
movl 0xeb8(%rbx), %eax
incl %eax
cmpl $0xd, %eax
ja 0xab27
leaq 0x30c9(%rip), %rcx      # 0xd334
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
callq 0xc553
movq %rbx, %rdi
movq %rax, %rsi
callq 0xb912
jmp 0xa63a
movq 0x90(%rbx), %r14
movq 0x130(%rbx), %r15
jmp 0xa5fb
movq %rbx, %rdi
callq 0xb15b
cmpl $0x1, %eax
jne 0xa9aa
movslq 0xa90(%rbx), %rax
decl 0x990(%rbx,%rax,4)
movq 0xec0(%rbx), %rax
movq 0x30(%rbx), %rcx
cmpq %rcx, 0x90(%rbx)
je 0xa907
movq %rcx, %rsi
movq 0x10(%rcx), %rcx
movq %rax, 0x10(%rsi)
movq %rsi, %rax
cmpq 0x90(%rbx), %rcx
jne 0xa2d6
jmp 0xa791
leaq 0x335c(%rip), %rsi      # 0xd655
movq %rbx, %rdi
callq 0x4909
movq %rax, 0x10(%rsp)
leaq 0x34ab(%rip), %rsi      # 0xd7b8
movq %rbx, %rdi
callq 0x4909
movq %rax, 0x8(%rsp)
movq 0x90(%rbx), %r12
movq 0x120(%rbx), %r13
movq 0xec0(%rbx), %rbp
movq %rbx, %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x4689
movq %rax, %r14
movl $0x5, %r15d
movl %r15d, (%rax)
movq %rbp, 0x8(%rax)
movq %r12, 0x10(%rax)
movq %rbx, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x4689
movq %rax, %r12
movl %r15d, (%rax)
movq %r13, 0x8(%rax)
movq %r14, 0x10(%rax)
movq 0x90(%rbx), %r14
movq %rbx, %rdi
movq %rax, %rsi
movq %r14, %rdx
callq 0x4689
movq %rax, %r13
movl %r15d, (%rax)
movq %r12, 0x8(%rax)
movq %r14, 0x10(%rax)
movq %rbx, %rdi
movq 0x8(%rsp), %r12
movq %r12, %rsi
movq %rax, %rdx
callq 0x4689
movq %rax, %r14
movl %r15d, (%rax)
movq %r12, 0x8(%rax)
movq %r13, 0x10(%rax)
movq %rbx, %rdi
movq 0x10(%rsp), %r12
movq %r12, %rsi
movq %rax, %rdx
callq 0x4689
movl %r15d, (%rax)
movq %r12, 0x8(%rax)
movq %r14, 0x10(%rax)
jmp 0xa63a
movq 0x30(%rbx), %rax
movl (%rax), %ecx
andl $0x1f, %ecx
cmpl $0x5, %ecx
jne 0xa95c
movq 0x8(%rax), %rdx
movl (%rdx), %eax
andl $0x1f, %eax
cmpl $0xa, %eax
jne 0xa401
movq 0x8(%rdx), %rax
testb $0x10, (%rax)
jne 0xa90f
leaq 0x3dc5(%rip), %rsi      # 0xe1cd
movq %rbx, %rdi
jmp 0xa0b7
movq 0x30(%rbx), %rsi
movl (%rsi), %eax
andl $0x1f, %eax
cmpl $0x5, %eax
je 0xa7a7
cmpl $0xe, %eax
je 0xa77b
cmpl $0xb, %eax
jne 0xa898
leaq 0x3e27(%rip), %rsi      # 0xe262
movq %rbx, %rdi
callq 0x4b32
movq 0x30(%rbx), %r14
movq 0x90(%rbx), %rdx
movq %rbx, %rdi
movq %rdx, %rsi
callq 0x4689
movq %rax, %r15
movl $0x4002, (%rax)         # imm = 0x4002
movq $0x0, 0x10(%rax)
movb $0x1, 0x8(%rax)
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x4689
movl $0x5, (%rax)
movq %r14, 0x8(%rax)
movq %r15, 0x10(%rax)
movq %rax, 0x30(%rbx)
movl $0xb6, 0xec8(%rbx)
jmp 0xab75
leaq 0x170(%rbx), %rax
movq 0x30(%rbx), %rcx
movl (%rcx), %edx
andl $0x1f, %edx
addq $0x8, %rcx
cmpl $0x5, %edx
cmovneq %rax, %rcx
movq (%rcx), %rax
movq 0x8(%rax), %rax
xorl %ecx, %ecx
testb $0x2, (%rax)
sete %cl
shll $0x5, %ecx
movq 0xb0(%rcx,%rbx), %rsi
jmp 0xa791
movq 0xea0(%rbx), %rdi
movl 0xec8(%rbx), %edx
leaq 0x37c1(%rip), %rsi      # 0xdcac
xorl %eax, %eax
callq 0x4290
movq 0xea0(%rbx), %rsi
jmp 0xa9b1
movq 0x30(%rbx), %rax
movl (%rax), %ecx
andl $0x1f, %ecx
cmpl $0xb, %ecx
je 0xa713
cmpl $0x5, %ecx
jne 0xa748
movq 0x10(%rax), %rdx
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xb5, %esi
callq 0xb07e
leaq 0x3cdc(%rip), %rsi      # 0xe214
movq %rbx, %rdi
callq 0x4b32
jmp 0xa876
movq 0x30(%rbx), %rax
movq 0x8(%rax), %rax
movq %rax, 0x170(%rbx)
jmp 0xa565
movq 0x30(%rbx), %rax
movq 0x8(%rax), %rax
movq %rax, 0x178(%rbx)
movq 0xec0(%rbx), %rsi
jmp 0xa791
movq 0xec0(%rbx), %r14
movq 0x30(%rbx), %r15
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x4689
movl $0x5, (%rax)
movq %r14, 0x8(%rax)
movq %r15, 0x10(%rax)
movq %rax, 0x30(%rbx)
movq %rbx, %rdi
callq 0xb15b
movl %eax, 0xeb8(%rbx)
cmpl $0x2, %eax
je 0xa8ef
cmpl $0x1, %eax
je 0xa8ab
cmpl $-0x1, %eax
je 0xa70a
movq 0x30(%rbx), %rdx
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xac, %esi
jmp 0xab66
movq 0x90(%rbx), %r14
movq 0x118(%rbx), %r15
jmp 0xa5fb
movq 0x90(%rbx), %r14
movq 0x128(%rbx), %r15
movq 0xec0(%rbx), %r12
movq %rbx, %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x4689
movq %rax, %r13
movl $0x5, %ebp
movl %ebp, (%rax)
movq %r12, 0x8(%rax)
movq %r14, 0x10(%rax)
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x4689
movl %ebp, (%rax)
movq %r15, 0x8(%rax)
movq %r13, 0x10(%rax)
movq %rbx, %rdi
movq %rax, %rsi
jmp 0xa794
movq 0x30(%rbx), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rax), %rax
movq 0x10(%rax), %r14
cmpl 0x10(%rcx), %r14d
je 0xa772
movl %r14d, %edx
shrl $0x1f, %edx
addl %r14d, %edx
sarl %edx
movslq %edx, %rdx
leaq (%rdx,%rdx,2), %rdx
leaq (%rcx,%rdx,8), %rcx
movl %r14d, %edx
andl $0x1, %edx
movq 0x20(%rcx,%rdx,8), %r15
movl %r14d, %ecx
incl %ecx
movslq %ecx, %rcx
movq %rcx, 0x10(%rax)
movq 0x30(%rbx), %rdx
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xb6, %esi
callq 0xb07e
movq %r15, 0x30(%rbx)
testl %r14d, %r14d
jle 0xa739
leaq 0x3b5c(%rip), %rsi      # 0xe214
jmp 0xa731
movq 0xec0(%rbx), %rax
movq %rax, 0x30(%rbx)
movl $0x5b, 0xec8(%rbx)
jmp 0xab75
movq 0x170(%rbx), %rax
movq 0x8(%rax), %r14
testb $0x40, (%r14)
jne 0xa70a
movq %r14, %rdi
callq 0xb4f8
cmpl $-0x1, %eax
jne 0xa209
movq 0x170(%rbx), %rax
cmpq 0x188(%rbx), %rax
jne 0xa70a
orb $0x40, (%r14)
movq 0xf0(%rbx), %rsi
jmp 0xa791
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xb5, %esi
movq %rcx, %rdx
callq 0xb07e
leaq 0x3b4c(%rip), %rsi      # 0xe27d
movq %rbx, %rdi
callq 0x4b32
movl $0xb4, 0xec8(%rbx)
jmp 0xab75
cmpq 0x90(%rbx), %rax
je 0xa772
leaq 0x3b25(%rip), %rsi      # 0xe27d
movq %rbx, %rdi
callq 0x4b32
movq 0x30(%rbx), %rsi
movl 0xebc(%rbx), %edx
movq %rbx, %rdi
callq 0xc865
leaq 0x3bdc(%rip), %rsi      # 0xe355
jmp 0xa782
leaq 0x3ae3(%rip), %rsi      # 0xe265
movq %rbx, %rdi
callq 0x4b32
movq 0xb0(%rbx), %rsi
movq %rbx, %rdi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xafff
movq 0x8(%rsi), %rax
cmpq 0x118(%rbx), %rax
jne 0xa7d3
movq 0x10(%rsi), %rcx
movl (%rcx), %edx
andl $0x1f, %edx
cmpl $0x5, %edx
jne 0xa7d3
movq 0x10(%rcx), %rcx
cmpq 0x90(%rbx), %rcx
je 0xab97
cmpq 0x120(%rbx), %rax
jne 0xa7fb
movq 0x10(%rsi), %rcx
movl (%rcx), %edx
andl $0x1f, %edx
cmpl $0x5, %edx
jne 0xa7fb
movq 0x10(%rcx), %rcx
cmpq 0x90(%rbx), %rcx
je 0xaba0
cmpq 0x128(%rbx), %rax
jne 0xa823
movq 0x10(%rsi), %rcx
movl (%rcx), %edx
andl $0x1f, %edx
cmpl $0x5, %edx
jne 0xa823
movq 0x10(%rcx), %rcx
cmpq 0x90(%rbx), %rcx
je 0xaba9
cmpq 0x130(%rbx), %rax
jne 0xa84b
movq 0x10(%rsi), %rax
movl (%rax), %ecx
andl $0x1f, %ecx
cmpl $0x5, %ecx
jne 0xa84b
movq 0x10(%rax), %rax
cmpq 0x90(%rbx), %rax
je 0xabb2
leaq 0x3a11(%rip), %rsi      # 0xe263
movq %rbx, %rdi
callq 0x4b32
movq 0x30(%rbx), %rax
movq 0x90(%rbx), %rcx
movq 0x10(%rax), %rdx
movq %rbx, %rdi
movl $0xb5, %esi
callq 0xb07e
movq 0x30(%rbx), %rcx
movq 0xb0(%rbx), %rax
movq 0x8(%rcx), %rcx
movq %rcx, 0x30(%rbx)
movl $0xb4, 0xec8(%rbx)
jmp 0xab7c
movl 0xebc(%rbx), %edx
movq %rbx, %rdi
callq 0xc865
jmp 0xa78a
movq %rbx, %rdi
callq 0xb445
cmpl $-0x1, %eax
je 0xaae5
cmpl $0xa, %eax
jne 0xaae2
movslq 0xa90(%rbx), %rax
shlq $0x5, %rax
testb $0x1, 0x190(%rbx,%rax)
je 0xaae5
addq %rbx, %rax
addq $0x190, %rax            # imm = 0x190
incl 0x14(%rax)
jmp 0xaae5
movq 0x30(%rbx), %rdx
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xad, %esi
jmp 0xaa4a
movq %rax, %rsi
jmp 0xa791
movq 0x170(%rbx), %r14
cmpq %r14, %rdx
je 0xa95c
movq %rdx, 0x170(%rbx)
movq 0x90(%rbx), %r15
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x4689
movl $0x5, (%rax)
movq %r14, 0x8(%rax)
movq %r15, 0x10(%rax)
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xa9, %esi
movq %rax, %rdx
callq 0xb07e
movl $0x3, 0xec8(%rbx)
jmp 0xab75
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xb3, %esi
movq %rcx, %rdx
callq 0xb07e
movq %rbx, %rdi
callq 0xb15b
movl %eax, 0xeb8(%rbx)
cmpl $0x2, %eax
je 0xa9aa
cmpl $0x1, %eax
jne 0xab3f
movq 0x90(%rbx), %rsi
jmp 0xa791
leaq 0x3835(%rip), %rsi      # 0xe1e6
movq %rbx, %rdi
xorl %edx, %edx
jmp 0xa0b7
movq %rbx, %rdi
callq 0xc613
cmpq 0xd0(%rbx), %rax
je 0xab8b
orb $0x20, 0x1(%rax)
jmp 0xa63a
movq %rbx, %rdi
callq 0xb15b
movl %eax, 0xeb8(%rbx)
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
cmpl $0xc, %eax
jne 0xab5e
movl $0xb0, %esi
movq %rcx, %rdx
callq 0xb07e
movl $0x0, 0xeb8(%rbx)
jmp 0xab6b
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xae, %esi
jmp 0xaa47
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xb1, %esi
jmp 0xaa47
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xb2, %esi
movq %rcx, %rdx
callq 0xb07e
movq %rbx, %rdi
callq 0xb15b
movl %eax, 0xeb8(%rbx)
jmp 0xab6b
movq %rbx, %rdi
callq 0xc553
movq %rbx, %rdi
movq %rax, %rsi
callq 0xb72d
cmpq 0x90(%rbx), %rax
jne 0xa63a
jmp 0xab33
movq 0x38(%rbx), %rsi
movq 0x150(%rbx), %rdx
movq %rbx, %rdi
movl $0x1, %ecx
callq 0x5de8
movq 0x90(%rbx), %r14
cmpq %r14, %rax
je 0xab33
movq 0x10(%rax), %r15
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x4689
movl $0x5, (%rax)
movq %r15, 0x8(%rax)
movq %r14, 0x10(%rax)
movq %rax, 0x40(%rbx)
movl $0x6, 0xec8(%rbx)
jmp 0xab75
movl %eax, 0x2c(%rbx)
movslq 0xa90(%rbx), %rax
decl 0x990(%rbx,%rax,4)
movq 0x30(%rbx), %rax
movq 0x90(%rbx), %rcx
cmpq %rax, %rcx
je 0xab1f
movq %rax, %rsi
movq 0x10(%rax), %rax
movq %rcx, 0x10(%rsi)
movq %rsi, %rcx
cmpq 0x90(%rbx), %rax
jne 0xab03
jmp 0xa791
movq %rcx, %rsi
jmp 0xa791
leaq 0x3718(%rip), %rsi      # 0xe246
jmp 0xa9b1
leaq 0x36f1(%rip), %rsi      # 0xe22b
jmp 0xa9b1
movslq 0xa90(%rbx), %rax
incl 0x990(%rbx,%rax,4)
movq 0x90(%rbx), %rcx
movq %rbx, %rdi
movl $0xac, %esi
jmp 0xab63
movl $0xaf, %esi
movq %rcx, %rdx
callq 0xb07e
movl $0xab, 0xec8(%rbx)
movq 0xb0(%rbx), %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3684(%rip), %rsi      # 0xe216
jmp 0xa9b1
leaq 0x36d6(%rip), %rsi      # 0xe274
jmp 0xabb9
leaq 0x36cf(%rip), %rsi      # 0xe276
jmp 0xabb9
leaq 0x36c8(%rip), %rsi      # 0xe278
jmp 0xabb9
leaq 0x36c1(%rip), %rsi      # 0xe27a
movq %rbx, %rdi
callq 0x4b32
movq 0x30(%rbx), %rcx
movq 0xb0(%rbx), %rax
movq 0x10(%rcx), %rcx
jmp 0xa881