// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x25f8, %rsp           # imm = 0x25F8
movl $0x0, -0x2c(%rbp)
movl %edi, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
movl -0x30(%rbp), %edi
movq -0x38(%rbp), %rsi
callq 0x14400
movl %eax, -0x3c(%rbp)
cmpl $0x0, -0x3c(%rbp)
jge 0x1333d
movq -0x38(%rbp), %rax
movq (%rax), %rdi
callq 0x14490
movl $0x1, %edi
callq 0x2230
leaq 0x78e9(%rip), %rdi      # 0x1ac2d
callq 0x4260
movq %rax, -0x48(%rbp)
leaq 0x78de(%rip), %rdi      # 0x1ac32
callq 0x4260
movq %rax, -0x50(%rbp)
leaq 0x78d4(%rip), %rdi      # 0x1ac38
callq 0x4260
movq %rax, -0x58(%rbp)
leaq 0x7296(%rip), %rdi      # 0x1a60a
callq 0x4260
movq %rax, -0x60(%rbp)
leaq 0x72b6(%rip), %rdi      # 0x1a63a
callq 0x4260
movq %rax, -0x68(%rbp)
leaq 0x8c5a(%rip), %rdi      # 0x1bfee
callq 0x4260
movq %rax, -0x70(%rbp)
leaq 0x7898(%rip), %rdi      # 0x1ac3c
callq 0x4260
movq %rax, -0x78(%rbp)
leaq 0x788e(%rip), %rdi      # 0x1ac42
callq 0x4260
movq %rax, -0x80(%rbp)
leaq 0x7883(%rip), %rdi      # 0x1ac47
callq 0x4260
movq %rax, -0x88(%rbp)
leaq 0x7875(%rip), %rdi      # 0x1ac4c
callq 0x4260
movq %rax, -0x90(%rbp)
leaq 0x7838(%rip), %rdi      # 0x1ac22
callq 0x4260
movq %rax, -0x98(%rbp)
leaq 0x7856(%rip), %rdi      # 0x1ac53
callq 0x4260
movq %rax, -0xa0(%rbp)
leaq 0x7225(%rip), %rdi      # 0x1a635
callq 0x4260
movq %rax, -0xa8(%rbp)
leaq 0x7834(%rip), %rdi      # 0x1ac57
callq 0x4260
movq %rax, -0xb0(%rbp)
leaq 0x7827(%rip), %rdi      # 0x1ac5d
callq 0x4260
movq %rax, -0xb8(%rbp)
leaq 0x7819(%rip), %rdi      # 0x1ac62
callq 0x4260
movq %rax, -0xc0(%rbp)
leaq 0x780b(%rip), %rdi      # 0x1ac67
callq 0x4260
movq %rax, -0xc8(%rbp)
leaq 0x77fd(%rip), %rdi      # 0x1ac6c
callq 0x4260
movq %rax, -0xd0(%rbp)
leaq 0x77f0(%rip), %rdi      # 0x1ac72
callq 0x4260
movq %rax, -0xd8(%rbp)
leaq 0x77e3(%rip), %rdi      # 0x1ac78
callq 0x4260
movq %rax, -0xe0(%rbp)
leaq 0x77d6(%rip), %rdi      # 0x1ac7e
callq 0x4260
movq %rax, -0xe8(%rbp)
leaq 0x77d6(%rip), %rdi      # 0x1ac91
callq 0x4260
movq %rax, -0xf0(%rbp)
leaq 0x77b6(%rip), %rdi      # 0x1ac84
callq 0x4260
movq %rax, -0xf8(%rbp)
leaq 0x77ab(%rip), %rdi      # 0x1ac8c
callq 0x4260
movq %rax, -0x100(%rbp)
leaq 0x77a0(%rip), %rdi      # 0x1ac94
callq 0x4260
movq %rax, -0x108(%rbp)
leaq 0x7792(%rip), %rdi      # 0x1ac99
callq 0x4260
movq %rax, -0x110(%rbp)
leaq 0x7785(%rip), %rdi      # 0x1ac9f
callq 0x4260
movq %rax, -0x118(%rbp)
leaq 0x7779(%rip), %rdi      # 0x1aca6
callq 0x4260
movq %rax, -0x120(%rbp)
leaq 0x776c(%rip), %rdi      # 0x1acac
callq 0x4260
movq %rax, -0x128(%rbp)
leaq 0x7762(%rip), %rdi      # 0x1acb5
callq 0x4260
movq %rax, -0x130(%rbp)
leaq 0x76b5(%rip), %rdi      # 0x1ac1b
callq 0x4260
movq %rax, -0x138(%rbp)
leaq 0x7740(%rip), %rdi      # 0x1acb9
callq 0x4260
movq %rax, -0x140(%rbp)
leaq 0x7734(%rip), %rdi      # 0x1acc0
callq 0x4260
movq %rax, -0x148(%rbp)
leaq 0x7726(%rip), %rdi      # 0x1acc5
callq 0x4260
movq %rax, -0x150(%rbp)
leaq 0x771c(%rip), %rdi      # 0x1acce
callq 0x4260
movq %rax, -0x158(%rbp)
leaq 0x770f(%rip), %rdi      # 0x1acd4
callq 0x4260
movq %rax, -0x160(%rbp)
leaq 0x7706(%rip), %rdi      # 0x1acde
callq 0x4260
movq %rax, -0x168(%rbp)
leaq 0x7706(%rip), %rdi      # 0x1acf1
callq 0x4260
movq %rax, -0x170(%rbp)
leaq 0x76e4(%rip), %rdi      # 0x1ace2
callq 0x4260
movq %rax, -0x178(%rbp)
leaq 0x76da(%rip), %rdi      # 0x1aceb
callq 0x4260
movq %rax, -0x180(%rbp)
leaq 0x711b(%rip), %rdi      # 0x1a73f
callq 0x4260
movq %rax, -0x188(%rbp)
leaq 0x76bf(%rip), %rdi      # 0x1acf6
callq 0x4260
movq %rax, -0x190(%rbp)
leaq 0x89c5(%rip), %rdi      # 0x1c00f
callq 0x4260
movq %rax, -0x198(%rbp)
leaq 0x762a(%rip), %rdi      # 0x1ac87
callq 0x4260
movq %rax, -0x1a0(%rbp)
leaq 0x768e(%rip), %rdi      # 0x1acfe
callq 0x4260
movq %rax, -0x1a8(%rbp)
leaq 0x7681(%rip), %rdi      # 0x1ad04
callq 0x4260
movq %rax, -0x1b0(%rbp)
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
movq -0x58(%rbp), %r8
movq -0x60(%rbp), %r9
movq -0x68(%rbp), %rax
movq -0x70(%rbp), %rsi
movq %rsi, -0x23b0(%rbp)
movq -0x78(%rbp), %rsi
movq %rsi, -0x23a8(%rbp)
movq -0x80(%rbp), %rsi
movq %rsi, -0x23a0(%rbp)
movq -0x88(%rbp), %rsi
movq %rsi, -0x2398(%rbp)
movq -0x90(%rbp), %rsi
movq %rsi, -0x2390(%rbp)
movq -0x98(%rbp), %rsi
movq %rsi, -0x2388(%rbp)
movq -0xa0(%rbp), %rsi
movq %rsi, -0x2380(%rbp)
movq -0xa8(%rbp), %rsi
movq %rsi, -0x2378(%rbp)
movq -0xc8(%rbp), %rsi
movq %rsi, -0x2370(%rbp)
movq -0xb0(%rbp), %rsi
movq %rsi, -0x2368(%rbp)
movq -0xb8(%rbp), %rsi
movq %rsi, -0x2360(%rbp)
movq -0xc0(%rbp), %rsi
movq %rsi, -0x2358(%rbp)
movq -0xd0(%rbp), %rsi
movq %rsi, -0x2350(%rbp)
movq -0xe0(%rbp), %rsi
movq %rsi, -0x2348(%rbp)
movq -0xd8(%rbp), %rsi
movq %rsi, -0x2340(%rbp)
movq -0xe8(%rbp), %rsi
movq %rsi, -0x2338(%rbp)
movq -0xf0(%rbp), %rsi
movq %rsi, -0x2330(%rbp)
movq -0xf8(%rbp), %rsi
movq %rsi, -0x2328(%rbp)
movq -0x100(%rbp), %rsi
movq %rsi, -0x2320(%rbp)
movq -0x108(%rbp), %rsi
movq %rsi, -0x2318(%rbp)
movq -0x110(%rbp), %rsi
movq %rsi, -0x2310(%rbp)
movq -0x118(%rbp), %rsi
movq %rsi, -0x2308(%rbp)
movq -0x120(%rbp), %rsi
movq %rsi, -0x2300(%rbp)
movq -0x128(%rbp), %rsi
movq %rsi, -0x22f8(%rbp)
movq -0x130(%rbp), %rsi
movq %rsi, -0x22f0(%rbp)
movq -0x138(%rbp), %rsi
movq %rsi, -0x22e8(%rbp)
movq -0x140(%rbp), %rsi
movq %rsi, -0x22e0(%rbp)
movq -0x148(%rbp), %rsi
movq %rsi, -0x22d8(%rbp)
movq -0x150(%rbp), %rsi
movq %rsi, -0x22d0(%rbp)
movq -0x158(%rbp), %rsi
movq %rsi, -0x22c8(%rbp)
movq -0x160(%rbp), %rsi
movq %rsi, -0x22c0(%rbp)
movq -0x168(%rbp), %rsi
movq %rsi, -0x22b8(%rbp)
movq -0x170(%rbp), %rsi
movq %rsi, -0x22b0(%rbp)
movq -0x178(%rbp), %r13
movq -0x180(%rbp), %r12
movq -0x188(%rbp), %r15
movq -0x190(%rbp), %r14
movq -0x198(%rbp), %rbx
movq -0x1a0(%rbp), %r11
movq -0x1a8(%rbp), %r10
movq -0x1b0(%rbp), %rsi
movq %rsi, -0x22a8(%rbp)
xorl %edi, %edi
leaq 0x745c(%rip), %rsi      # 0x1ad0c
movq %rax, (%rsp)
movq -0x23b0(%rbp), %rax
movq %rax, 0x8(%rsp)
movq -0x23a8(%rbp), %rax
movq %rax, 0x10(%rsp)
movq -0x23a0(%rbp), %rax
movq %rax, 0x18(%rsp)
movq -0x2398(%rbp), %rax
movq %rax, 0x20(%rsp)
movq -0x2390(%rbp), %rax
movq %rax, 0x28(%rsp)
movq -0x2388(%rbp), %rax
movq %rax, 0x30(%rsp)
movq -0x2380(%rbp), %rax
movq %rax, 0x38(%rsp)
movq -0x2378(%rbp), %rax
movq %rax, 0x40(%rsp)
movq -0x2370(%rbp), %rax
movq %rax, 0x48(%rsp)
movq -0x2368(%rbp), %rax
movq %rax, 0x50(%rsp)
movq -0x2360(%rbp), %rax
movq %rax, 0x58(%rsp)
movq -0x2358(%rbp), %rax
movq %rax, 0x60(%rsp)
movq -0x2350(%rbp), %rax
movq %rax, 0x68(%rsp)
movq -0x2348(%rbp), %rax
movq %rax, 0x70(%rsp)
movq -0x2340(%rbp), %rax
movq %rax, 0x78(%rsp)
movq -0x2338(%rbp), %rax
movq %rax, 0x80(%rsp)
movq -0x2330(%rbp), %rax
movq %rax, 0x88(%rsp)
movq -0x2328(%rbp), %rax
movq %rax, 0x90(%rsp)
movq -0x2320(%rbp), %rax
movq %rax, 0x98(%rsp)
movq -0x2318(%rbp), %rax
movq %rax, 0xa0(%rsp)
movq -0x2310(%rbp), %rax
movq %rax, 0xa8(%rsp)
movq -0x2308(%rbp), %rax
movq %rax, 0xb0(%rsp)
movq -0x2300(%rbp), %rax
movq %rax, 0xb8(%rsp)
movq -0x22f8(%rbp), %rax
movq %rax, 0xc0(%rsp)
movq -0x22f0(%rbp), %rax
movq %rax, 0xc8(%rsp)
movq -0x22e8(%rbp), %rax
movq %rax, 0xd0(%rsp)
movq -0x22e0(%rbp), %rax
movq %rax, 0xd8(%rsp)
movq -0x22d8(%rbp), %rax
movq %rax, 0xe0(%rsp)
movq -0x22d0(%rbp), %rax
movq %rax, 0xe8(%rsp)
movq -0x22c8(%rbp), %rax
movq %rax, 0xf0(%rsp)
movq -0x22c0(%rbp), %rax
movq %rax, 0xf8(%rsp)
movq -0x22b8(%rbp), %rax
movq %rax, 0x100(%rsp)
movq -0x22b0(%rbp), %rax
movq %rax, 0x108(%rsp)
movq -0x22a8(%rbp), %rax
movq %r13, 0x110(%rsp)
movq %r12, 0x118(%rsp)
movq %r15, 0x120(%rsp)
movq %r14, 0x128(%rsp)
movq %rbx, 0x130(%rsp)
movq %r11, 0x138(%rsp)
movq %r10, 0x140(%rsp)
movq %rax, 0x148(%rsp)
movb $0x0, %al
callq 0xa2e0
movq %rax, -0x1b8(%rbp)
cmpq $0x0, -0x1b8(%rbp)
je 0x13af2
movq -0x1b8(%rbp), %rdi
callq 0x144c0
movq -0x1b8(%rbp), %rdi
callq 0x2380
jmp 0x13fd0
leaq 0x6d4c(%rip), %rdi      # 0x1a845
leaq 0x6d02(%rip), %rsi      # 0x1a802
callq 0x8270
movq %rax, -0x1d0(%rbp)
movq -0x1b0(%rbp), %rax
movq %rax, -0x1c8(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x11230
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rdi
leaq 0x84aa(%rip), %rsi      # 0x1bfe2
xorl %ecx, %ecx
leaq 0x9ff(%rip), %r8        # 0x14540
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %edx
callq 0x11370
movq -0x1d8(%rbp), %rdi
leaq 0x8490(%rip), %rsi      # 0x1bfeb
movl $0x1, %ecx
leaq 0xb79(%rip), %r8        # 0x146e0
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %edx
callq 0x11370
movq -0x1d8(%rbp), %rdi
leaq 0x8474(%rip), %rsi      # 0x1bff5
xorl %edx, %edx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
leaq 0xbc1(%rip), %r8        # 0x14750
xorl %eax, %eax
movl %eax, %r9d
callq 0x11370
movq -0x1d8(%rbp), %rdi
leaq 0x8454(%rip), %rsi      # 0x1bffb
xorl %edx, %edx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
leaq -0x33c5(%rip), %r8      # 0x107f0
xorl %eax, %eax
movl %eax, %r9d
callq 0x11370
movq -0x1d8(%rbp), %rdi
leaq 0x8436(%rip), %rsi      # 0x1c003
xorl %edx, %edx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
leaq -0x33eb(%rip), %r8      # 0x107f0
xorl %eax, %eax
movl %eax, %r9d
callq 0x11370
movq -0x1d8(%rbp), %rdi
leaq 0x8415(%rip), %rsi      # 0x1c008
movl $0x1, %ecx
leaq 0xc21(%rip), %r8        # 0x14820
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %edx
callq 0x11370
movq -0x1d8(%rbp), %rdi
leaq 0x6a2d(%rip), %rsi      # 0x1a646
movl $0x1, %edx
movl $0x2, %ecx
leaq 0xd16(%rip), %r8        # 0x14940
xorl %eax, %eax
movl %eax, %r9d
callq 0x11370
movq -0x1d8(%rbp), %rdi
leaq 0x83ca(%rip), %rsi      # 0x1c00c
movl $0x1, %ecx
leaq 0xe32(%rip), %r8        # 0x14a80
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %edx
callq 0x11370
movq -0x1d8(%rbp), %rdi
leaq 0x83ab(%rip), %rsi      # 0x1c013
movl $0x1, %ecx
leaq 0xe7c(%rip), %r8        # 0x14af0
leaq -0x1d0(%rbp), %r9
movl %ecx, %edx
callq 0x11370
movq -0x1d8(%rbp), %rdi
leaq 0x8388(%rip), %rsi      # 0x1c018
xorl %edx, %edx
movl $0x1, %ecx
leaq 0xf62(%rip), %r8        # 0x14c00
leaq -0x1d0(%rbp), %r9
callq 0x11370
movq -0x1d8(%rbp), %rdi
leaq 0x8368(%rip), %rsi      # 0x1c020
movl $0x1, %ecx
leaq 0x10dc(%rip), %r8       # 0x14da0
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %edx
callq 0x11370
callq 0x11820
movq %rax, -0x1e0(%rbp)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1e4(%rbp)
movl -0x1e4(%rbp), %eax
cmpl -0x30(%rbp), %eax
jge 0x13d9c
movq -0x38(%rbp), %rax
movslq -0x1e4(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2240
movq %rax, -0x1f0(%rbp)
cmpq $0x0, -0x1f0(%rbp)
jne 0x13d3e
movq 0xd2d5(%rip), %rax      # 0x20ff8
movq (%rax), %rdi
leaq 0x6e91(%rip), %rsi      # 0x1abbe
movb $0x0, %al
callq 0x2140
movl $0x1, %edi
callq 0x2230
movq -0x1e0(%rbp), %rdi
callq 0x11890
movq %rax, -0x23b8(%rbp)
movq -0x1d8(%rbp), %rsi
movq -0x1f0(%rbp), %rdx
leaq -0x218(%rbp), %rdi
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x14e10
movq -0x23b8(%rbp), %rdi
leaq -0x218(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
movl -0x1e4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1e4(%rbp)
jmp 0x13ce8
movq -0x1d8(%rbp), %rax
movq %rax, -0x23c0(%rbp)
movq -0x1d8(%rbp), %rsi
movq -0x1e0(%rbp), %rdx
leaq -0x240(%rbp), %rdi
callq 0x11900
movq -0x23c0(%rbp), %rdi
movq -0x220(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x20(%rax)
movups -0x240(%rbp), %xmm0
movups -0x230(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq 0x8230(%rip), %rsi      # 0x1c025
callq 0x11030
cmpl $0x0, -0x3c(%rbp)
jle 0x13e95
movq -0x38(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x1b0(%rbp), %rsi
leaq -0x1c0(%rbp), %rdx
callq 0x3f60
cmpl $0x0, %eax
jne 0x13e42
movq -0x1c0(%rbp), %rdi
callq 0x144c0
movq -0x1c0(%rbp), %rdi
callq 0x2380
jmp 0x13e90
cmpl $0x0, 0xd3a7(%rip)      # 0x211f0
je 0x13e57
movq -0x1c0(%rbp), %rdi
callq 0x8840
movq -0x1d0(%rbp), %rdi
movq -0x1c0(%rbp), %rsi
callq 0x84a0
movq -0x1d8(%rbp), %rsi
movq -0x1c0(%rbp), %rdx
leaq -0x268(%rbp), %rdi
callq 0x119b0
movq -0x1c0(%rbp), %rdi
callq 0x81f0
jmp 0x13fc4
jmp 0x13e97
leaq 0x818c(%rip), %rdi      # 0x1c02a
movb $0x0, %al
callq 0x20d0
leaq -0x2270(%rbp), %rdi
movq 0xd11d(%rip), %rax      # 0x20fd0
movq (%rax), %rdx
movl $0x2000, %esi           # imm = 0x2000
callq 0x2110
cmpq $0x0, %rax
jne 0x13ecb
jmp 0x13fb8
leaq -0x2270(%rbp), %rdi
callq 0x20b0
movl %eax, -0x2274(%rbp)
cmpl $0x0, -0x2274(%rbp)
jle 0x13f20
movl -0x2274(%rbp), %eax
subl $0x1, %eax
cltq
movsbl -0x2270(%rbp,%rax), %eax
cmpl $0xa, %eax
jne 0x13f20
movl -0x2274(%rbp), %eax
subl $0x1, %eax
cltq
movb $0x0, -0x2270(%rbp,%rax)
movl -0x2274(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x2274(%rbp)
cmpl $0x0, -0x2274(%rbp)
jne 0x13f2e
jmp 0x13e97
movq -0x38(%rbp), %rax
movq (%rax), %rdi
leaq -0x2270(%rbp), %rsi
movq -0x1a0(%rbp), %rdx
leaq -0x1c0(%rbp), %rcx
callq 0x3a10
cmpl $0x0, %eax
jne 0x13f71
movq -0x1c0(%rbp), %rdi
callq 0x144c0
movq -0x1c0(%rbp), %rdi
callq 0x2380
jmp 0x13e97
cmpl $0x0, 0xd278(%rip)      # 0x211f0
je 0x13f86
movq -0x1c0(%rbp), %rdi
callq 0x8840
movq -0x1d8(%rbp), %rsi
movq -0x1c0(%rbp), %rdx
leaq -0x22a0(%rbp), %rdi
callq 0x119b0
movq -0x1d0(%rbp), %rdi
movq -0x1c0(%rbp), %rsi
callq 0x84a0
jmp 0x13e97
movq -0x1d0(%rbp), %rdi
callq 0x81f0
movq -0x1d8(%rbp), %rdi
callq 0x13210
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
movq -0x60(%rbp), %r8
movq -0x68(%rbp), %r9
movq -0x70(%rbp), %rax
movq -0x78(%rbp), %rdi
movq %rdi, -0x24c8(%rbp)
movq -0x80(%rbp), %rdi
movq %rdi, -0x24c0(%rbp)
movq -0x88(%rbp), %rdi
movq %rdi, -0x24b8(%rbp)
movq -0x90(%rbp), %rdi
movq %rdi, -0x24b0(%rbp)
movq -0x98(%rbp), %rdi
movq %rdi, -0x24a8(%rbp)
movq -0xa0(%rbp), %rdi
movq %rdi, -0x24a0(%rbp)
movq -0xa8(%rbp), %rdi
movq %rdi, -0x2498(%rbp)
movq -0xc8(%rbp), %rdi
movq %rdi, -0x2490(%rbp)
movq -0xb0(%rbp), %rdi
movq %rdi, -0x2488(%rbp)
movq -0xb8(%rbp), %rdi
movq %rdi, -0x2480(%rbp)
movq -0xc0(%rbp), %rdi
movq %rdi, -0x2478(%rbp)
movq -0xd0(%rbp), %rdi
movq %rdi, -0x2470(%rbp)
movq -0xe0(%rbp), %rdi
movq %rdi, -0x2468(%rbp)
movq -0xd8(%rbp), %rdi
movq %rdi, -0x2460(%rbp)
movq -0xe8(%rbp), %rdi
movq %rdi, -0x2458(%rbp)
movq -0xf0(%rbp), %rdi
movq %rdi, -0x2450(%rbp)
movq -0xf8(%rbp), %rdi
movq %rdi, -0x2448(%rbp)
movq -0x100(%rbp), %rdi
movq %rdi, -0x2440(%rbp)
movq -0x108(%rbp), %rdi
movq %rdi, -0x2438(%rbp)
movq -0x110(%rbp), %rdi
movq %rdi, -0x2430(%rbp)
movq -0x118(%rbp), %rdi
movq %rdi, -0x2428(%rbp)
movq -0x120(%rbp), %rdi
movq %rdi, -0x2420(%rbp)
movq -0x128(%rbp), %rdi
movq %rdi, -0x2418(%rbp)
movq -0x130(%rbp), %rdi
movq %rdi, -0x2410(%rbp)
movq -0x138(%rbp), %rdi
movq %rdi, -0x2408(%rbp)
movq -0x140(%rbp), %rdi
movq %rdi, -0x2400(%rbp)
movq -0x148(%rbp), %rdi
movq %rdi, -0x23f8(%rbp)
movq -0x150(%rbp), %rdi
movq %rdi, -0x23f0(%rbp)
movq -0x158(%rbp), %rdi
movq %rdi, -0x23e8(%rbp)
movq -0x160(%rbp), %rdi
movq %rdi, -0x23e0(%rbp)
movq -0x168(%rbp), %rdi
movq %rdi, -0x23d8(%rbp)
movq -0x170(%rbp), %rdi
movq %rdi, -0x23d0(%rbp)
movq -0x178(%rbp), %r13
movq -0x180(%rbp), %r12
movq -0x188(%rbp), %r15
movq -0x190(%rbp), %r14
movq -0x198(%rbp), %rbx
movq -0x1a0(%rbp), %r11
movq -0x1a8(%rbp), %r10
movq -0x1b0(%rbp), %rdi
movq %rdi, -0x23c8(%rbp)
movl $0x2c, %edi
movq %rax, (%rsp)
movq -0x24c8(%rbp), %rax
movq %rax, 0x8(%rsp)
movq -0x24c0(%rbp), %rax
movq %rax, 0x10(%rsp)
movq -0x24b8(%rbp), %rax
movq %rax, 0x18(%rsp)
movq -0x24b0(%rbp), %rax
movq %rax, 0x20(%rsp)
movq -0x24a8(%rbp), %rax
movq %rax, 0x28(%rsp)
movq -0x24a0(%rbp), %rax
movq %rax, 0x30(%rsp)
movq -0x2498(%rbp), %rax
movq %rax, 0x38(%rsp)
movq -0x2490(%rbp), %rax
movq %rax, 0x40(%rsp)
movq -0x2488(%rbp), %rax
movq %rax, 0x48(%rsp)
movq -0x2480(%rbp), %rax
movq %rax, 0x50(%rsp)
movq -0x2478(%rbp), %rax
movq %rax, 0x58(%rsp)
movq -0x2470(%rbp), %rax
movq %rax, 0x60(%rsp)
movq -0x2468(%rbp), %rax
movq %rax, 0x68(%rsp)
movq -0x2460(%rbp), %rax
movq %rax, 0x70(%rsp)
movq -0x2458(%rbp), %rax
movq %rax, 0x78(%rsp)
movq -0x2450(%rbp), %rax
movq %rax, 0x80(%rsp)
movq -0x2448(%rbp), %rax
movq %rax, 0x88(%rsp)
movq -0x2440(%rbp), %rax
movq %rax, 0x90(%rsp)
movq -0x2438(%rbp), %rax
movq %rax, 0x98(%rsp)
movq -0x2430(%rbp), %rax
movq %rax, 0xa0(%rsp)
movq -0x2428(%rbp), %rax
movq %rax, 0xa8(%rsp)
movq -0x2420(%rbp), %rax
movq %rax, 0xb0(%rsp)
movq -0x2418(%rbp), %rax
movq %rax, 0xb8(%rsp)
movq -0x2410(%rbp), %rax
movq %rax, 0xc0(%rsp)
movq -0x2408(%rbp), %rax
movq %rax, 0xc8(%rsp)
movq -0x2400(%rbp), %rax
movq %rax, 0xd0(%rsp)
movq -0x23f8(%rbp), %rax
movq %rax, 0xd8(%rsp)
movq -0x23f0(%rbp), %rax
movq %rax, 0xe0(%rsp)
movq -0x23e8(%rbp), %rax
movq %rax, 0xe8(%rsp)
movq -0x23e0(%rbp), %rax
movq %rax, 0xf0(%rsp)
movq -0x23d8(%rbp), %rax
movq %rax, 0xf8(%rsp)
movq -0x23d0(%rbp), %rax
movq %rax, 0x100(%rsp)
movq -0x23c8(%rbp), %rax
movq %r13, 0x108(%rsp)
movq %r12, 0x110(%rsp)
movq %r15, 0x118(%rsp)
movq %r14, 0x120(%rsp)
movq %rbx, 0x128(%rsp)
movq %r11, 0x130(%rsp)
movq %r10, 0x138(%rsp)
movq %rax, 0x140(%rsp)
movb $0x0, %al
callq 0x4880
xorl %eax, %eax
addq $0x25f8, %rsp           # imm = 0x25F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop