// File: /workspace/github_c_makefile_star2_O3/mattn[P]orelang/ore.c
// Function: main
int
main(int argc, char **argv) {
  int f = parse_args(argc, argv);
  if (f < 0) {
    usage(argv[0]);
    exit(1);
  }

  mpc_parser_t* m_true       = mpc_new("true");
  mpc_parser_t* m_false      = mpc_new("false");
  mpc_parser_t* m_nil        = mpc_new("nil");
  mpc_parser_t* m_number     = mpc_new("number");
  mpc_parser_t* m_factor     = mpc_new("factor");
  mpc_parser_t* m_string     = mpc_new("string");
  mpc_parser_t* m_array      = mpc_new("array");
  mpc_parser_t* m_pair       = mpc_new("pair");
  mpc_parser_t* m_hash       = mpc_new("hash");
  mpc_parser_t* m_regexp     = mpc_new("regexp");
  mpc_parser_t* m_ident      = mpc_new("ident");
  mpc_parser_t* m_cmp        = mpc_new("cmp");
  mpc_parser_t* m_term       = mpc_new("term");
  mpc_parser_t* m_value      = mpc_new("value");
  mpc_parser_t* m_item       = mpc_new("item");
  mpc_parser_t* m_prop       = mpc_new("prop");
  mpc_parser_t* m_lexp       = mpc_new("lexp");
  mpc_parser_t* m_leto       = mpc_new("let_o");
  mpc_parser_t* m_letv       = mpc_new("let_v");
  mpc_parser_t* m_leta       = mpc_new("let_a");
  mpc_parser_t* m_letp       = mpc_new("let_p");
  mpc_parser_t* m_if         = mpc_new("if");
  mpc_parser_t* m_ifstmt     = mpc_new("if_stmt");
  mpc_parser_t* m_elseif     = mpc_new("else_if");
  mpc_parser_t* m_else       = mpc_new("else");
  mpc_parser_t* m_while      = mpc_new("while");
  mpc_parser_t* m_forin      = mpc_new("for_in");
  mpc_parser_t* m_break      = mpc_new("break");
  mpc_parser_t* m_continue   = mpc_new("continue");
  mpc_parser_t* m_var        = mpc_new("var");
  mpc_parser_t* m_vararg     = mpc_new("vararg");
  mpc_parser_t* m_lambda     = mpc_new("lambda");
  mpc_parser_t* m_func       = mpc_new("func");
  mpc_parser_t* m_template   = mpc_new("template");
  mpc_parser_t* m_class      = mpc_new("class");
  mpc_parser_t* m_classext   = mpc_new("class_ext");
  mpc_parser_t* m_new        = mpc_new("new");
  mpc_parser_t* m_call       = mpc_new("call");
  mpc_parser_t* m_anoncall   = mpc_new("anoncall");
  mpc_parser_t* m_methodcall = mpc_new("methodcall");
  mpc_parser_t* m_return     = mpc_new("return");
  mpc_parser_t* m_comment    = mpc_new("comment");
  mpc_parser_t* m_eof        = mpc_new("eof");
  mpc_parser_t* m_stmt       = mpc_new("stmt");
  mpc_parser_t* m_stmts      = mpc_new("stmts");
  mpc_parser_t* m_program    = mpc_new("program");

#define NODES \
m_true,\
m_false,\
m_nil,\
m_number,\
m_factor,\
m_string,\
m_array,\
m_pair,\
m_hash,\
m_regexp,\
m_ident,\
m_cmp,\
m_term,\
m_lexp,\
m_value,\
m_item,\
m_prop,\
m_leto,\
m_leta,\
m_letv,\
m_letp,\
m_if,\
m_ifstmt,\
m_elseif,\
m_else,\
m_while,\
m_forin,\
m_break,\
m_continue,\
m_var,\
m_vararg,\
m_lambda,\
m_func,\
m_template,\
m_class,\
m_classext,\
m_new,\
m_call,\
m_anoncall,\
m_methodcall,\
m_return,\
m_comment,\
m_eof,\
m_stmt,\
m_stmts,\
m_program

  mpc_err_t* err = mpca_lang(MPCA_LANG_DEFAULT, STRUCTURE, NODES);
  if (err != NULL) {
    ore_err_print(err);
    mpc_err_delete(err);
    goto leave;
  }

  mpc_result_t result;
  ore_parse_context pc;
  pc.root = mpc_ast_new(">", "");
  pc.program = m_program;

  ore_context* ore = ore_new(NULL);
  ore_define_cfunc(ore, "dump_env", 0, 0, ore_cfunc_dump_env, NULL);
  ore_define_cfunc(ore, "to_string", 1, 1, ore_cfunc_to_string, NULL);
  ore_define_cfunc(ore, "print", 0, -1, ore_cfunc_print, NULL);
  ore_define_cfunc(ore, "println", 0, -1, ore_cfunc_println, NULL);
  ore_define_cfunc(ore, "puts", 0, -1, ore_cfunc_println, NULL);
  ore_define_cfunc(ore, "len", 1, 1, ore_cfunc_len, NULL);
  ore_define_cfunc(ore, "range", 1, 2, ore_cfunc_range, NULL);
  ore_define_cfunc(ore, "typeof", 1, 1, ore_cfunc_typeof, NULL);
  ore_define_cfunc(ore, "load", 1, 1, ore_cfunc_load, &pc);
  ore_define_cfunc(ore, "environ", 0, 1, ore_cfunc_environ, &pc);
  ore_define_cfunc(ore, "exit", 1, 1, ore_cfunc_exit, NULL);
  ore_array_t* args = kl_init(value);
  int i;
  for (i = f+1; i < argc; i++) {
    char* parg = strdup(argv[i]);
    if (!parg) {
      fprintf(stderr, "failed to allocate memory\n");
      exit(1);
    }
    *kl_pushp(value, args) = ore_value_str_from_ptr(ore, parg, -1);
  }
  ore_define(ore, "args", ore_value_array_from_klist(ore, args));

  if (f > 0) {
    if (!mpc_parse_contents(argv[f], m_program, &result)) {
      ore_err_print(result.error);
      mpc_err_delete(result.error);
    } else {
      if (verbose)
        mpc_ast_print(result.output);
      mpc_ast_add_child(pc.root, result.output);
      ore_eval(ore, result.output);
      mpc_ast_delete(result.output);
    }
  } else {
    char buf[BUFSIZ];
    while (1) {
      printf("> ");
      if (!fgets(buf, sizeof(buf), stdin)) {
        break;
      }
      int l = strlen(buf);
      if (l > 0 && buf[l-1] == '\n') { buf[l-1] = 0; l--; }
      if (l == 0) continue;
      if (!mpc_parse(argv[0], buf, m_stmt, &result)) {
        ore_err_print(result.error);
        mpc_err_delete(result.error);
        continue;
      }
      if (verbose)
        mpc_ast_print(result.output);
      ore_eval(ore, result.output);
      mpc_ast_add_child(pc.root, result.output);
    }
    mpc_ast_delete(pc.root);
  }
  ore_destroy(ore);

leave:
  mpc_cleanup(44, NODES);
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2218, %rsp           # imm = 0x2218
cmpl $0x2, %edi
movl %edi, 0x44(%rsp)
movq %rsi, 0x50(%rsp)
jl 0xee16
movl %edi, %eax
movl $0x1, %ecx
movq (%rsi,%rcx,8), %rdx
cmpb $0x2d, (%rdx)
jne 0xee25
cmpb $0x76, 0x1(%rdx)
jne 0xfcac
movl $0x1, 0xd405(%rip)      # 0x1c208
incq %rcx
cmpq %rcx, %rax
jne 0xede6
movq $0x0, 0x48(%rsp)
jmp 0xee31
xorl %eax, %eax
cmpl $0x1, %edi
setne %al
movq %rax, 0x48(%rsp)
jmp 0xee31
xorl %edx, %edx
cmpl %ecx, %eax
cmovnel %ecx, %edx
movq %rdx, 0x48(%rsp)
leaq 0x5d09(%rip), %rdi      # 0x14b41
callq 0x44e8
movq %rax, 0x60(%rsp)
leaq 0x5cfd(%rip), %rdi      # 0x14b46
callq 0x44e8
movq %rax, 0x138(%rsp)
leaq 0x5cef(%rip), %rdi      # 0x14b4c
callq 0x44e8
movq %rax, 0x130(%rsp)
leaq 0x567f(%rip), %rdi      # 0x144f0
callq 0x44e8
movq %rax, 0x120(%rsp)
leaq 0x569b(%rip), %rdi      # 0x14520
callq 0x44e8
movq %rax, 0x110(%rsp)
leaq 0x7069(%rip), %rdi      # 0x15f02
callq 0x44e8
movq %rax, 0x68(%rsp)
leaq 0x5ca6(%rip), %rdi      # 0x14b50
callq 0x44e8
movq %rax, 0x168(%rsp)
leaq 0x5c98(%rip), %rdi      # 0x14b56
callq 0x44e8
movq %rax, 0x160(%rsp)
leaq 0x5c89(%rip), %rdi      # 0x14b5b
callq 0x44e8
movq %rax, 0x158(%rsp)
leaq 0x5c7a(%rip), %rdi      # 0x14b60
callq 0x44e8
movq %rax, 0x150(%rsp)
leaq 0x5c3c(%rip), %rdi      # 0x14b36
callq 0x44e8
movq %rax, 0x38(%rsp)
leaq 0x5c5c(%rip), %rdi      # 0x14b67
callq 0x44e8
movq %rax, 0x148(%rsp)
leaq 0x55fc(%rip), %rdi      # 0x1451b
callq 0x44e8
movq %rax, 0x140(%rsp)
leaq 0x5c38(%rip), %rdi      # 0x14b6b
callq 0x44e8
movq %rax, 0x128(%rsp)
leaq 0x5c2a(%rip), %rdi      # 0x14b71
callq 0x44e8
movq %rax, 0x118(%rsp)
leaq 0x5c1b(%rip), %rdi      # 0x14b76
callq 0x44e8
movq %rax, 0x108(%rsp)
leaq 0x5c0c(%rip), %rdi      # 0x14b7b
callq 0x44e8
movq %rax, 0x100(%rsp)
leaq 0x5bfd(%rip), %rdi      # 0x14b80
callq 0x44e8
movq %rax, 0xf8(%rsp)
leaq 0x5bef(%rip), %rdi      # 0x14b86
callq 0x44e8
movq %rax, 0xf0(%rsp)
leaq 0x5be1(%rip), %rdi      # 0x14b8c
callq 0x44e8
movq %rax, 0xe8(%rsp)
leaq 0x5bd3(%rip), %rdi      # 0x14b92
callq 0x44e8
movq %rax, 0xe0(%rsp)
leaq 0x5bd2(%rip), %rdi      # 0x14ba5
callq 0x44e8
movq %rax, 0xd8(%rsp)
leaq 0x5bb1(%rip), %rdi      # 0x14b98
callq 0x44e8
movq %rax, 0xd0(%rsp)
leaq 0x5ba5(%rip), %rdi      # 0x14ba0
callq 0x44e8
movq %rax, 0xc8(%rsp)
leaq 0x5b99(%rip), %rdi      # 0x14ba8
callq 0x44e8
movq %rax, 0xc0(%rsp)
leaq 0x5b8a(%rip), %rdi      # 0x14bad
callq 0x44e8
movq %rax, 0x30(%rsp)
leaq 0x5b7f(%rip), %rdi      # 0x14bb3
callq 0x44e8
movq %rax, 0xb8(%rsp)
leaq 0x5b72(%rip), %rdi      # 0x14bba
callq 0x44e8
movq %rax, 0x28(%rsp)
leaq 0x5b67(%rip), %rdi      # 0x14bc0
callq 0x44e8
movq %rax, 0xb0(%rsp)
leaq 0x5b5c(%rip), %rdi      # 0x14bc9
callq 0x44e8
movq %rax, 0xa8(%rsp)
leaq 0x5aae(%rip), %rdi      # 0x14b2f
callq 0x44e8
movq %rax, 0xa0(%rsp)
leaq 0x5b38(%rip), %rdi      # 0x14bcd
callq 0x44e8
movq %rax, 0x98(%rsp)
leaq 0x5b2b(%rip), %rdi      # 0x14bd4
callq 0x44e8
movq %rax, 0x90(%rsp)
leaq 0x5b1c(%rip), %rdi      # 0x14bd9
callq 0x44e8
movq %rax, 0x88(%rsp)
leaq 0x5b11(%rip), %rdi      # 0x14be2
callq 0x44e8
movq %rax, 0x20(%rsp)
leaq 0x5b06(%rip), %rdi      # 0x14be8
callq 0x44e8
movq %rax, 0x80(%rsp)
leaq 0x5afc(%rip), %rdi      # 0x14bf2
callq 0x44e8
movq %rax, 0x18(%rsp)
leaq 0x5afe(%rip), %rdi      # 0x14c05
callq 0x44e8
movq %rax, 0x78(%rsp)
leaq 0x5ade(%rip), %rdi      # 0x14bf6
callq 0x44e8
movq %rax, 0x70(%rsp)
leaq 0x5ad6(%rip), %rdi      # 0x14bff
callq 0x44e8
movq %rax, %r15
leaq 0x54dd(%rip), %rdi      # 0x14615
callq 0x44e8
movq %rax, %r12
leaq 0x5ac3(%rip), %rdi      # 0x14c0a
callq 0x44e8
movq %rax, %r13
leaq 0x6dcd(%rip), %rdi      # 0x15f23
callq 0x44e8
movq %rax, %rbx
leaq 0x5a36(%rip), %rdi      # 0x14b9b
callq 0x44e8
movq %rax, %rbp
leaq 0x5a9e(%rip), %rdi      # 0x14c12
callq 0x44e8
movq %rax, %r14
leaq 0x5a95(%rip), %rdi      # 0x14c18
callq 0x44e8
movq %rax, %r10
leaq 0x5a8e(%rip), %rsi      # 0x14c20
xorl %edi, %edi
movq 0x60(%rsp), %rdx
movq 0x138(%rsp), %rcx
movq 0x130(%rsp), %r8
movq 0x120(%rsp), %r9
xorl %eax, %eax
movq %r10, 0x58(%rsp)
pushq %r10
movq %r14, 0x188(%rsp)
pushq %r14
movq 0x78(%rsp), %r14
movq %rbp, 0x180(%rsp)
pushq %rbp
movq 0x168(%rsp), %rbp
movq %rbx, 0x1a0(%rsp)
pushq %rbx
movq %r13, 0x1b0(%rsp)
pushq %r13
movq 0x180(%rsp), %rbx
movq %r12, 0x1c0(%rsp)
pushq %r12
movq 0x158(%rsp), %r12
movq 0x190(%rsp), %r11
movq %r15, 0x1d0(%rsp)
pushq %r15
movq 0x178(%rsp), %r15
movq 0x1a0(%rsp), %r10
pushq 0xa8(%rsp)
pushq 0xb8(%rsp)
pushq 0x60(%rsp)
pushq 0xd0(%rsp)
pushq 0x78(%rsp)
pushq 0xe8(%rsp)
pushq 0xf8(%rsp)
pushq 0x108(%rsp)
pushq 0x118(%rsp)
pushq 0x128(%rsp)
pushq 0x138(%rsp)
pushq 0xb8(%rsp)
pushq 0x150(%rsp)
pushq 0xd0(%rsp)
pushq 0x168(%rsp)
pushq 0x178(%rsp)
pushq 0x188(%rsp)
pushq 0x198(%rsp)
pushq 0x1a8(%rsp)
pushq 0x1c0(%rsp)
pushq 0x1c0(%rsp)
pushq 0x1d8(%rsp)
pushq 0x1f0(%rsp)
pushq 0x208(%rsp)
pushq %r12
pushq 0x200(%rsp)
pushq %r15
pushq 0x258(%rsp)
pushq 0x150(%rsp)
pushq %rbp
pushq %rbx
pushq %r11
pushq %r10
pushq %r14
pushq 0x258(%rsp)
callq 0x96d1
addq $0x150, %rsp            # imm = 0x150
testq %rax, %rax
je 0xf33a
movq %rax, %rbx
movq %rax, %rdi
callq 0xfcc3
movq %rbx, %rdi
callq 0x2a7c
movq 0x38(%rsp), %rbx
movq 0x60(%rsp), %rsi
movq 0x30(%rsp), %r12
movq 0x28(%rsp), %rbp
movq 0x20(%rsp), %r15
movq 0x18(%rsp), %r13
jmp 0xfb65
leaq 0x53da(%rip), %rdi      # 0x1471b
leaq 0x5390(%rip), %rsi      # 0x146d8
callq 0x7800
leaq 0x1b0(%rsp), %r14
movq %rax, (%r14)
movq 0x58(%rsp), %rax
movq %rax, 0x8(%r14)
xorl %ebx, %ebx
xorl %edi, %edi
callq 0xd661
movq %rax, %r12
movl $0x9, %r15d
movq %r15, 0x210(%rsp)
movq %rax, 0x218(%rsp)
movq %rbx, 0x220(%rsp)
leaq 0x975(%rip), %rax       # 0xfd07
movq %rax, 0x228(%rsp)
movq %rbx, 0x230(%rsp)
subq $0x30, %rsp
movq %rbx, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x6b2b(%rip), %rsi      # 0x15ef6
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movq %r15, 0x210(%rsp)
movq %r12, 0x218(%rsp)
movabsq $0x100000001, %rax      # imm = 0x100000001
movq %rax, 0x220(%rsp)
leaq 0xa3b(%rip), %rax       # 0xfe3b
movq %rax, 0x228(%rsp)
movq %rbx, 0x230(%rsp)
subq $0x30, %rsp
movq %rbx, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x6ac6(%rip), %rsi      # 0x15eff
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movq %r15, 0x210(%rsp)
movq %r12, 0x218(%rsp)
movabsq $-0x100000000, %r13     # imm = 0xFFFFFFFF00000000
movq %r13, 0x220(%rsp)
leaq 0xa16(%rip), %rax       # 0xfe84
movq %rax, 0x228(%rsp)
movq %rbx, 0x230(%rsp)
subq $0x30, %rsp
movq %rbx, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x6a62(%rip), %rsi      # 0x15f09
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movq %r15, 0x210(%rsp)
movq %r12, 0x218(%rsp)
movq %r13, 0x220(%rsp)
leaq -0x2855(%rip), %rbp     # 0xcc7d
movq %rbp, 0x228(%rsp)
movq %rbx, 0x230(%rsp)
subq $0x30, %rsp
movq %rbx, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x6a04(%rip), %rsi      # 0x15f0f
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movq %r15, 0x210(%rsp)
movq %r12, 0x218(%rsp)
movq %r13, 0x220(%rsp)
movq %rbp, 0x228(%rsp)
movq %rbx, 0x230(%rsp)
subq $0x30, %rsp
movq %rbx, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x69af(%rip), %rsi      # 0x15f17
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movq %r15, 0x210(%rsp)
movq %r12, 0x218(%rsp)
movabsq $0x100000001, %r13      # imm = 0x100000001
movq %r13, 0x220(%rsp)
leaq 0x994(%rip), %rax       # 0xff31
movq %rax, 0x228(%rsp)
movq %rbx, 0x230(%rsp)
subq $0x30, %rsp
movq %rbx, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x6946(%rip), %rsi      # 0x15f1c
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movq %r15, 0x210(%rsp)
movq %r12, 0x218(%rsp)
movabsq $0x200000001, %rax      # imm = 0x200000001
movq %rax, 0x220(%rsp)
leaq 0x992(%rip), %rax       # 0xff9d
movq %rax, 0x228(%rsp)
movq %rbx, 0x230(%rsp)
subq $0x30, %rsp
movq %rbx, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x4ee8(%rip), %rsi      # 0x1452c
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movq %r15, 0x210(%rsp)
movq %r12, 0x218(%rsp)
movq %r13, 0x220(%rsp)
leaq 0xa86(%rip), %rax       # 0x100f5
movq %rax, 0x228(%rsp)
movq %rbx, 0x230(%rsp)
subq $0x30, %rsp
movq %rbx, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x6878(%rip), %rsi      # 0x15f20
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movq %r15, 0x210(%rsp)
movq %r12, 0x218(%rsp)
movq %r13, 0x220(%rsp)
leaq 0xa51(%rip), %rax       # 0x10124
movq %rax, 0x228(%rsp)
movq %r14, 0x230(%rsp)
subq $0x30, %rsp
movq %r14, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x681b(%rip), %rsi      # 0x15f27
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movq %r15, 0x210(%rsp)
movq %r12, 0x218(%rsp)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0x220(%rsp)
leaq 0xa96(%rip), %rax       # 0x101d7
movq %rax, 0x228(%rsp)
movq %r14, 0x230(%rsp)
subq $0x30, %rsp
movq %r14, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x67b2(%rip), %rsi      # 0x15f2c
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movq %r15, 0x210(%rsp)
movq %r12, 0x218(%rsp)
movq %r13, 0x220(%rsp)
leaq 0xb7e(%rip), %rax       # 0x10323
movq %rax, 0x228(%rsp)
movq %rbx, 0x230(%rsp)
subq $0x30, %rsp
movq %rbx, 0x20(%rsp)
movups 0x240(%rsp), %xmm0
movups 0x250(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x6756(%rip), %rsi      # 0x15f34
movq %r12, 0x40(%rsp)
movq %r12, %rdi
callq 0xd3c9
addq $0x30, %rsp
movl $0x1, %r13d
movl $0x1, %edi
movl $0x20, %esi
callq 0x2140
movq %rax, %r15
movl $0x1, %edi
movl $0x20, %esi
callq 0x2140
movq %rax, %rbp
movq %rax, 0x10(%r15)
movq $0x1, (%rax)
movl $0x1, %edi
movl $0x30, %esi
callq 0x2140
movq %rax, %rbx
movq %rax, 0x8(%r15)
movq %rax, (%r15)
movq 0x48(%rsp), %rcx
leal 0x1(%rcx), %eax
movl %ecx, %ecx
movq %rcx, 0x178(%rsp)
cmpl 0x44(%rsp), %eax
jge 0xf926
movq 0x50(%rsp), %rcx
leaq (%rcx,%rax,8), %rax
movq %rax, 0x1a8(%rsp)
movq 0x1a8(%rsp), %rax
movq -0x8(%rax,%r13,8), %rdi
callq 0x2270
testq %rax, %rax
je 0xfcbe
movq %rax, %r12
incq (%rbp)
movq 0x8(%rbp), %rax
testq %rax, %rax
je 0xf8a8
movq 0x18(%rbp), %rcx
leaq -0x1(%rax), %rdx
movq %rdx, 0x8(%rbp)
movq -0x8(%rcx,%rax,8), %r14
jmp 0xf8ba
movl $0x1, %edi
movl $0x30, %esi
callq 0x2140
movq %rax, %r14
movq $0x0, 0x28(%r14)
movq %r14, 0x28(%rbx)
movq %r14, 0x8(%r15)
movq %r13, 0x18(%r15)
leaq 0x210(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %r12, %rdx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x10344
movq 0x230(%rsp), %rax
movq %rax, 0x20(%rbx)
movups 0x210(%rsp), %xmm0
movups 0x220(%rsp), %xmm1
movups %xmm1, 0x10(%rbx)
movups %xmm0, (%rbx)
incq %r13
movq 0x178(%rsp), %rax
addl %r13d, %eax
movq %r14, %rbx
cmpl 0x44(%rsp), %eax
jl 0xf86a
leaq 0x1e8(%rsp), %rbx
movq %rbx, %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
callq 0xdc1f
subq $0x30, %rsp
movq 0x20(%rbx), %rax
movq %rax, 0x20(%rsp)
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x65d4(%rip), %rsi      # 0x15f39
movq %r14, %rdi
callq 0xd3c9
addq $0x30, %rsp
cmpl $0x0, 0x48(%rsp)
je 0xfa0b
movq 0x50(%rsp), %rax
movq 0x178(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x8(%rsp), %rdx
movq 0x58(%rsp), %rsi
callq 0x42e4
testl %eax, %eax
je 0xfb21
cmpl $0x0, 0xc85d(%rip)      # 0x1c208
movq 0x38(%rsp), %rbx
movq 0x30(%rsp), %r12
movq 0x28(%rsp), %rbp
movq 0x20(%rsp), %r15
movq 0x18(%rsp), %r13
je 0xf9d0
movq 0x8(%rsp), %rdi
callq 0x7b80
movq 0x1b0(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x798c
movq 0x8(%rsp), %rdx
leaq 0x210(%rsp), %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
callq 0xdc73
movq 0x8(%rsp), %rdi
callq 0x77a8
jmp 0xfb53
leaq 0x652c(%rip), %rdi      # 0x15f3e
xorl %eax, %eax
callq 0x20e0
movq 0xc5b0(%rip), %rbx      # 0x1bfd0
movq (%rbx), %rdx
leaq 0x210(%rsp), %rdi
movl $0x2000, %esi           # imm = 0x2000
callq 0x2130
testq %rax, %rax
movq 0x50(%rsp), %r12
je 0xfb12
leaq 0x210(%rsp), %r15
leaq 0x64ec(%rip), %r13      # 0x15f3e
leaq 0x8(%rsp), %rbp
leaq 0x1c0(%rsp), %r14
movq %r15, %rdi
callq 0x20c0
testl %eax, %eax
jle 0xfa83
movl %eax, %ecx
decl %ecx
cmpb $0xa, 0x210(%rsp,%rcx)
jne 0xfa87
movb $0x0, 0x210(%rsp,%rcx)
decl %eax
testl %eax, %eax
je 0xfaef
movq (%r12), %rdi
movq %r15, %rsi
movq 0x170(%rsp), %rdx
movq %rbp, %rcx
callq 0x400c
testl %eax, %eax
je 0xfadb
cmpl $0x0, 0xc75f(%rip)      # 0x1c208
je 0xfab5
movq 0x8(%rsp), %rdi
callq 0x7b80
movq 0x8(%rsp), %rdx
movq %r14, %rdi
movq 0x10(%rsp), %rsi
callq 0xdc73
movq 0x1b0(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x798c
jmp 0xfaef
movq 0x8(%rsp), %rdi
callq 0xfcc3
movq 0x8(%rsp), %rdi
callq 0x2a7c
movq %r13, %rdi
xorl %eax, %eax
callq 0x20e0
movq (%rbx), %rdx
movq %r15, %rdi
movl $0x2000, %esi           # imm = 0x2000
callq 0x2130
testq %rax, %rax
jne 0xfa5f
movq 0x1b0(%rsp), %rdi
callq 0x77a8
jmp 0xfb35
movq 0x8(%rsp), %rdi
callq 0xfcc3
movq 0x8(%rsp), %rdi
callq 0x2a7c
movq 0x38(%rsp), %rbx
movq 0x30(%rsp), %r12
movq 0x28(%rsp), %rbp
movq 0x20(%rsp), %r15
movq 0x18(%rsp), %r13
movq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0xed53
movq 0x68(%rsp), %r14
movq 0x60(%rsp), %rsi
subq $0x8, %rsp
movl $0x2c, %edi
movq 0x140(%rsp), %rdx
movq 0x138(%rsp), %rcx
movq 0x128(%rsp), %r8
movq 0x118(%rsp), %r9
xorl %eax, %eax
pushq 0x60(%rsp)
pushq 0x190(%rsp)
pushq 0x188(%rsp)
pushq 0x1a8(%rsp)
pushq 0x1b8(%rsp)
pushq 0x1c8(%rsp)
pushq 0x1d8(%rsp)
pushq 0xb0(%rsp)
pushq 0xc0(%rsp)
pushq %r13
pushq 0xd8(%rsp)
pushq %r15
pushq 0xf0(%rsp)
pushq 0x100(%rsp)
pushq 0x110(%rsp)
pushq 0x120(%rsp)
pushq 0x130(%rsp)
pushq 0x140(%rsp)
pushq %rbp
pushq 0x158(%rsp)
pushq %r12
pushq 0x170(%rsp)
pushq 0x180(%rsp)
pushq 0x190(%rsp)
pushq 0x1a0(%rsp)
pushq 0x1b0(%rsp)
pushq 0x1c8(%rsp)
pushq 0x1c8(%rsp)
pushq 0x1e0(%rsp)
pushq 0x1f8(%rsp)
pushq 0x210(%rsp)
pushq 0x228(%rsp)
pushq 0x208(%rsp)
pushq 0x250(%rsp)
pushq 0x260(%rsp)
pushq %rbx
pushq 0x278(%rsp)
pushq 0x288(%rsp)
pushq 0x298(%rsp)
pushq 0x2a8(%rsp)
pushq %r14
callq 0x4868
addq $0x150, %rsp            # imm = 0x150
xorl %eax, %eax
addq $0x2218, %rsp           # imm = 0x2218
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rsi), %rdi
callq 0x22d0
movl $0x1, %edi
callq 0x2250
callq 0x23ff