// File: /workspace/github_c_makefile_star2_O0/mattn[P]orelang/ore.c
// Function: ore_eval
static ore_value
ore_eval(ore_context* ore, mpc_ast_t* t) {
  int i, r;
  if (!t) return ore_value_nil();

  khiter_t k;
  k = kh_get(ast, ore->ast, (khint64_t)(uintptr_t)t);
  if (k != kh_end(ore->ast)) {
    return kh_value(ore->ast, k);
  }

  if (is_a(t, "eof") || is_a(t, "comment")) {
    return ore_value_nil();
  }
  if (is_a(t, "true")) {
    return ore_value_true();
  }
  if (is_a(t, "false")) {
    return ore_value_false();
  }
  if (is_a(t, "nil")) {
    return ore_value_nil();
  }
  if (is_a(t, "number")) {
	ore_value v = ore_parse_num(ore, t->contents);
	k = kh_put(ast, ore->ast, (khint64_t)(uintptr_t)t, &r);
	kh_value(ore->ast, k) = v;
    return v;
  }
  if (is_a(t, "string")) {
	ore_value v = ore_parse_str(ore, t->contents);
	k = kh_put(ast, ore->ast, (khint64_t)(uintptr_t)t, &r);
	kh_value(ore->ast, k) = v;
    return v;
  }
  if (is_a(t, "array")) {
    ore_array_t* a = kl_init(value);
    for (i = 1; i < t->children_num - 1; i += 2) {
      *kl_pushp(value, a) = ore_eval(ore, t->children[i]);
    }
    return ore_value_array_from_klist(ore, a);
  }
  if (is_a(t, "hash")) {
    ore_hash_t* h = kh_init(value);
    for (i = 1; i < t->children_num - 1; i += 2) {
      ore_value key = ore_eval(ore, t->children[i]->children[0]);
      ore_value val = ore_eval(ore, t->children[i]->children[2]);
      khint_t k = kh_put(value, h, key.v.s->p, &r);
      kh_value(h, k) = val;
    }
    return ore_value_hash_from_khash(ore, h);
  }
  if (is_a(t, "regexp")) {
    ore_value v = ore_parse_str(ore, t->contents);
    v.t = ORE_TYPE_REGEXP;
	k = kh_put(ast, ore->ast, (khint64_t)(uintptr_t)t, &r);
	kh_value(ore->ast, k) = v;
    return v;
  }
  if (is_a(t, "item")) {
    ore_value v = ore_eval(ore, t->children[0]);
    for (i = 2; i < t->children_num; i += 3) {
      ore_value key = ore_eval(ore, t->children[i]);
      ore_value* r = ore_index_ref(ore, v, key, 0);
      v = r == NULL ? ore_value_nil() : *r;
    }
    return v;
  }
  if (is_a(t, "prop")) {
    ore_value v = ore_eval(ore, t->children[0]);
    ore_context* this = v.t == ORE_TYPE_OBJECT ? (ore_context*) v.v.o->e : NULL;
    for (i = 2; i < t->children_num; i += 2) {
      if (v.t != ORE_TYPE_OBJECT) {
        fprintf(stderr, "invalid operation for %s\n", ore_kind(v));
        ore->err = ORE_ERROR_EXCEPTION;
        return ore_value_nil();
      }
      v = ore_prop(this, t->children[i]->contents);
      if (v.t == ORE_TYPE_OBJECT) this = (ore_context*) v.v.o->e;
    }
    return v;
  }
  if (is_a(t, "ident")) {
    return ore_get(ore, t->contents);
  }
  if (is_a(t, "factor")) {
    return ore_eval(ore, t->children[1]);
  }
  if (is_a(t, "lexp") || is_a(t, "term")) {
    return ore_expr(ore, t);
  }
  if (is_a(t, "let_v")) {
    const char* op = t->children[1]->contents;
    ore_value rhs = ore_eval(ore, t->children[2]);
    ore_value lhs = *op != '=' ?
      ore_expr0(ore, ore_eval(ore, t->children[0]), op, rhs) : rhs;
    ore_set(ore, t->children[0]->contents, lhs);
    return lhs;
  }
  if (is_a(t, "let_a")) {
    ore_value lhs = ore_eval(ore, t->children[0]->children[0]);
    const char* op = t->children[1]->contents;
    ore_value* r = NULL;
    for (i = 2; i < t->children[0]->children_num - 1; i += 3) {
      ore_value key = ore_eval(ore, t->children[0]->children[i]);
      r = ore_index_ref(ore, lhs, key, 1);
      lhs = r == NULL ? ore_value_nil() : *r;
    }
    if (r == NULL) {
      return ore_value_nil();
    }
    ore_value rhs = ore_eval(ore, t->children[2]);
    if (*op != '=') lhs = ore_expr0(ore, lhs, op, rhs);
    ore_value_ref(rhs);
    *r = rhs;
    return rhs;
  }
  if (is_a(t, "let_p")) {
    ore_value lhs = ore_eval(ore, t->children[0]->children[0]);
    const char* op = t->children[1]->contents;
    ore_value* r = NULL;
    for (i = 2; i < t->children[0]->children_num; i += 2) {
      ore_value key = ore_value_str_from_ptr(ore, t->children[0]->children[i]->contents, -1);
      r = ore_index_ref(ore, lhs, key, 0);
      lhs = r == NULL ? ore_value_nil() : *r;
    }
    if (r == NULL) {
      return ore_value_nil();
    }
    ore_value rhs = ore_eval(ore, t->children[2]);
    if (*op != '=') lhs = ore_expr0(ore, lhs, op, rhs);
    ore_value_ref(rhs);
    *r = rhs;
    return rhs;
  }
  if (is_a(t, "var")) {
    ore_value v = ore_eval(ore, t->children[3]);
    ore_define(ore, t->children[1]->contents, v);
    return v;
  }
  if (is_a(t, "cmp")) {
    ore_value lhs = ore_eval(ore, t->children[0]);
    ore_value rhs = ore_eval(ore, t->children[2]);
    return ore_cmp(ore, lhs, t->children[1]->contents, rhs);
  }
  if (is_a(t, "func")) {
    ore_value v = { ORE_TYPE_FUNC };
    v.v.f.ore = ore;
    v.v.f.num_in = -1;
    v.v.f.max_in = -1;
    v.v.f.x.o = t;
    v.v.f.u = NULL;
    ore_define(ore, t->children[1]->contents, v);
    return v;
  }
  if (is_a(t, "lambda")) {
    ore_value v = { ORE_TYPE_FUNC };
    v.v.f.ore = ore;
    v.v.f.num_in = -1;
    v.v.f.max_in = -1;
    v.v.f.x.o = t;
    v.v.f.u = NULL;
    return v;
  }
  if (is_a(t, "class_ext")) {
    return ore_define_class(ore, t->children[1], t->children[5], t->children[3]->contents);
  }
  if (is_a(t, "class")) {
    return ore_define_class(ore, t->children[1], t->children[3], NULL);
  }
  if (is_a(t, "new")) {
    return ore_object_new(ore, t);
  }
  if (is_a(t, "call")) {
    return ore_call(ore, t);
  }
  if (is_a(t, "return")) {
    ore_value v = ore_eval(ore, t->children[1]);
    ore->err = ORE_ERROR_RETURN;
    ore_value_ref(v);
    return v;
  }
  if (is_a(t, "break")) {
    ore->err = ORE_ERROR_BREAK;
    return ore_value_nil();
  }
  if (is_a(t, "continue")) {
    ore->err = ORE_ERROR_CONTINUE;
    return ore_value_nil();
  }
  if (is_a(t, "if_stmt")) {
    if (ore_is_true(ore_eval(ore, t->children[2]))) {
      return ore_eval(ore, ore_find_statements(t));
    }
    return ore_value_nil();
  }
  if (is_a(t, "if")) {
    int i;
    for (i = 0; i < t->children_num; i++) {
      int r = 0;
      mpc_ast_t* f = t->children[i];
      if (is_a(f, "if_stmt")) {
        r = ore_is_true(ore_eval(ore, f->children[2]));
      } else if (is_a(f, "else_if")) {
        r = ore_is_true(ore_eval(ore, f->children[3]));
      } else {
        r = 1;
      }
      if (r)
        return ore_eval(ore, ore_find_statements(f));
    }
    return ore_value_nil();
  }
  if (is_a(t, "while")) {
    ore_context* env = ore_new(ore);
    while (ore_is_true(ore_eval(env, t->children[2]))) {
      ore_eval(env, ore_find_statements(t));
      if (env->err != ORE_ERROR_NONE) {
        if (env->err == ORE_ERROR_CONTINUE) {
          env->err = ORE_ERROR_NONE;
          continue;
        }
        break;
      }
    }
    if (env->err == ORE_ERROR_RETURN)
      ore->err = ORE_ERROR_RETURN;
    ore_destroy(env);
    return ore_value_nil();
  }
  if (is_a(t, "for_in")) {
    ore_value l = ore_eval(ore, t->children[4]);
    if (l.t != ORE_TYPE_ARRAY) {
      fprintf(stderr, "expected array for argument\n");
      ore->err = ORE_ERROR_EXCEPTION;
    }
    ore_array_t* a = (ore_array_t*) l.v.a->p;
    ore_array_iter_t *k;
    ore_context* env = ore_new(ore);
    for (k = kl_begin(a); k != kl_end(a); k = kl_next(k)) {
      ore_define(env, t->children[2]->contents, kl_val(k));
      ore_eval(env, ore_find_statements(t));
      if (env->err != ORE_ERROR_NONE) {
        if (env->err == ORE_ERROR_CONTINUE) {
          env->err = ORE_ERROR_NONE;
          continue;
        }
        break;
      }
    }
    if (env->err == ORE_ERROR_RETURN)
      ore->err = ORE_ERROR_RETURN;
    ore_destroy(env);
    return ore_value_nil();
  }
  if (is_a(t, "stmts") || is_a(t, "template") || t->tag[0] == '>') {
    ore_value v;
    for (i = 0; i < t->children_num; i++) {
      v = ore_eval(ore, t->children[i]);
      if (ore->err != ORE_ERROR_NONE)
        return v;
    }
    return ore_value_nil();
  }
  if (is_a(t, "stmt")) {
    return ore_eval(ore, t->children[0]);
  }
  if (is_a(t, "char") && !strcmp(t->contents, ";")) {
    return ore_value_nil();
  }
  fprintf(stderr, "unknown operation '%s'\n", t->contents);
  ore->err = ORE_ERROR_EXCEPTION;
  return ore_value_nil();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x5a0, %rsp            # imm = 0x5A0
movq %rdi, -0x510(%rbp)
movq %rdi, -0x508(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x119e9
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x156a0
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
cmpl (%rcx), %eax
je 0x11a38
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rsi
movl -0x1c(%rbp), %eax
imulq $0x28, %rax, %rax
addq %rax, %rsi
movl $0x28, %edx
callq 0x2170
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0xa5c9(%rip), %rsi      # 0x1c00f
callq 0x2260
cmpq $0x0, %rax
jne 0x11a6a
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x9297(%rip), %rsi      # 0x1acf6
callq 0x2260
cmpq $0x0, %rax
je 0x11a7b
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x91a4(%rip), %rsi      # 0x1ac2d
callq 0x2260
cmpq $0x0, %rax
je 0x11aa5
movq -0x510(%rbp), %rdi
callq 0x106a0
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x917f(%rip), %rsi      # 0x1ac32
callq 0x2260
cmpq $0x0, %rax
je 0x11acf
movq -0x510(%rbp), %rdi
callq 0x106e0
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x915b(%rip), %rsi      # 0x1ac38
callq 0x2260
cmpq $0x0, %rax
je 0x11af9
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8b03(%rip), %rsi      # 0x1a60a
callq 0x2260
cmpq $0x0, %rax
je 0x11b6e
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x157f0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
leaq -0x18(%rbp), %rdx
callq 0x158c0
movq -0x510(%rbp), %rsi
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rdi
movl -0x1c(%rbp), %eax
imulq $0x28, %rax, %rax
addq %rax, %rdi
movl $0x28, %edx
callq 0x2170
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0xa472(%rip), %rsi      # 0x1bfee
callq 0x2260
cmpq $0x0, %rax
je 0x11be3
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x15c30
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
leaq -0x18(%rbp), %rdx
callq 0x158c0
movq -0x510(%rbp), %rsi
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rdi
movl -0x1c(%rbp), %eax
imulq $0x28, %rax, %rax
addq %rax, %rdi
movl $0x28, %edx
callq 0x2170
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x904b(%rip), %rsi      # 0x1ac3c
callq 0x2260
cmpq $0x0, %rax
je 0x11c87
callq 0x11820
movq %rax, -0x28(%rbp)
movl $0x1, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x28(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x11c6e
movq -0x28(%rbp), %rdi
callq 0x11890
movq %rax, -0x518(%rbp)
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq -0x50(%rbp), %rdi
callq 0x119b0
movq -0x518(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
movl -0x14(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x14(%rbp)
jmp 0x11c10
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x11900
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8fb2(%rip), %rsi      # 0x1ac47
callq 0x2260
cmpq $0x0, %rax
je 0x11d7c
callq 0x131d0
movq %rax, -0x58(%rbp)
movl $0x1, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x28(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x11d63
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x30(%rax), %rax
movq (%rax), %rdx
leaq -0x80(%rbp), %rdi
callq 0x119b0
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdx
leaq -0xa8(%rbp), %rdi
callq 0x119b0
movq -0x58(%rbp), %rdi
movq -0x78(%rbp), %rax
movq (%rax), %rsi
leaq -0x18(%rbp), %rdx
callq 0x10cd0
movl %eax, -0xac(%rbp)
movq -0x58(%rbp), %rax
movq 0x20(%rax), %rdi
movl -0xac(%rbp), %eax
imulq $0x28, %rax, %rax
addq %rax, %rdi
leaq -0xa8(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
movl -0x14(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x14(%rbp)
jmp 0x11cb4
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x58(%rbp), %rdx
callq 0x15e60
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8ec2(%rip), %rsi      # 0x1ac4c
callq 0x2260
cmpq $0x0, %rax
je 0x11dfe
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x15c30
movq -0x510(%rbp), %rax
movl $0x7, (%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
leaq -0x18(%rbp), %rdx
callq 0x158c0
movq -0x510(%rbp), %rsi
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rdi
movl -0x1c(%rbp), %eax
imulq $0x28, %rax, %rax
addq %rax, %rdi
movl $0x28, %edx
callq 0x2170
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8e51(%rip), %rsi      # 0x1ac5d
callq 0x2260
cmpq $0x0, %rax
je 0x11f1f
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rdx
callq 0x119b0
movl $0x2, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x28(%rcx), %eax
jge 0x11f1a
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq -0xd8(%rbp), %rdi
callq 0x119b0
movq -0x510(%rbp), %rcx
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movq -0xb8(%rbp), %rdx
movq %rsp, %rax
movq %rdx, 0x48(%rax)
movups -0xd8(%rbp), %xmm0
movups -0xc8(%rbp), %xmm1
movups %xmm1, 0x38(%rax)
movups %xmm0, 0x28(%rax)
movq 0x20(%rcx), %rdx
movq %rdx, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
xorl %esi, %esi
callq 0x15f10
movq %rax, -0xe0(%rbp)
cmpq $0x0, -0xe0(%rbp)
jne 0x11ef2
leaq -0x108(%rbp), %rdi
callq 0x10670
movq -0x510(%rbp), %rdi
leaq -0x108(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
jmp 0x11f0a
movq -0x510(%rbp), %rdi
movq -0xe0(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
jmp 0x11f0c
movl -0x14(%rbp), %eax
addl $0x3, %eax
movl %eax, -0x14(%rbp)
jmp 0x11e3d
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8d35(%rip), %rsi      # 0x1ac62
callq 0x2260
cmpq $0x0, %rax
je 0x120a1
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rdx
leaq -0x130(%rbp), %rdi
callq 0x119b0
cmpl $0xd, -0x130(%rbp)
jne 0x11f74
movq -0x128(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x520(%rbp)
jmp 0x11f7f
xorl %eax, %eax
movq %rax, -0x520(%rbp)
jmp 0x11f7f
movq -0x520(%rbp), %rax
movq %rax, -0x138(%rbp)
movl $0x2, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x28(%rcx), %eax
jge 0x12084
cmpl $0xd, -0x130(%rbp)
je 0x1201a
movq 0xf044(%rip), %rax      # 0x20ff8
movq (%rax), %rax
movq %rax, -0x528(%rbp)
movq -0x110(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x20(%rax)
movups -0x130(%rbp), %xmm0
movups -0x120(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x163a0
movq -0x528(%rbp), %rdi
movq %rax, %rdx
leaq 0xa09b(%rip), %rsi      # 0x1c092
movb $0x0, %al
callq 0x2140
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rax
movl $0x1, 0x20(%rax)
callq 0x10670
jmp 0x131b3
movq -0x138(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rdx
leaq -0x160(%rbp), %rdi
callq 0x10850
leaq -0x130(%rbp), %rdi
leaq -0x160(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
cmpl $0xd, -0x130(%rbp)
jne 0x12074
movq -0x128(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x138(%rbp)
jmp 0x12076
movl -0x14(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x14(%rbp)
jmp 0x11f94
movq -0x510(%rbp), %rdi
leaq -0x130(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8b73(%rip), %rsi      # 0x1ac22
callq 0x2260
cmpq $0x0, %rax
je 0x120d7
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x10a30
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8555(%rip), %rsi      # 0x1a63a
callq 0x2260
cmpq $0x0, %rax
je 0x12111
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdx
callq 0x119b0
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8b48(%rip), %rsi      # 0x1ac67
callq 0x2260
cmpq $0x0, %rax
jne 0x12143
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x84fd(%rip), %rsi      # 0x1a635
callq 0x2260
cmpq $0x0, %rax
je 0x1215c
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
callq 0x164b0
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8b08(%rip), %rsi      # 0x1ac72
callq 0x2260
cmpq $0x0, %rax
je 0x1229a
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x168(%rbp)
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdx
leaq -0x190(%rbp), %rdi
callq 0x119b0
movq -0x168(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
je 0x12245
movq -0x8(%rbp), %rax
movq %rax, -0x530(%rbp)
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rdx
leaq -0x1b8(%rbp), %rdi
callq 0x119b0
movq -0x510(%rbp), %rdi
movq -0x530(%rbp), %rsi
movq -0x168(%rbp), %rdx
movq -0x170(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x48(%rax)
movups -0x190(%rbp), %xmm0
movups -0x180(%rbp), %xmm1
movups %xmm1, 0x38(%rax)
movups %xmm0, 0x28(%rax)
movq -0x198(%rbp), %rcx
movq %rcx, 0x20(%rax)
movups -0x1b8(%rbp), %xmm0
movups -0x1a8(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x165b0
jmp 0x1225d
movq -0x510(%rbp), %rdi
leaq -0x190(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
movq -0x510(%rbp), %rcx
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rsi
movq 0x20(%rcx), %rdx
movq %rsp, %rax
movq %rdx, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x10b00
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x89d0(%rip), %rsi      # 0x1ac78
callq 0x2260
cmpq $0x0, %rax
je 0x124ee
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rax
movq 0x30(%rax), %rax
movq (%rax), %rdx
leaq -0x1e0(%rbp), %rdi
callq 0x119b0
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x1e8(%rbp)
movq $0x0, -0x1f0(%rbp)
movl $0x2, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movq 0x30(%rcx), %rcx
movq (%rcx), %rcx
movl 0x28(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x123f6
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rax
movq 0x30(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq -0x218(%rbp), %rdi
callq 0x119b0
movq -0x8(%rbp), %rdi
movq -0x1f8(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x48(%rax)
movups -0x218(%rbp), %xmm0
movups -0x208(%rbp), %xmm1
movups %xmm1, 0x38(%rax)
movups %xmm0, 0x28(%rax)
movq -0x1c0(%rbp), %rcx
movq %rcx, 0x20(%rax)
movups -0x1e0(%rbp), %xmm0
movups -0x1d0(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
movl $0x1, %esi
callq 0x15f10
movq %rax, -0x1f0(%rbp)
cmpq $0x0, -0x1f0(%rbp)
jne 0x123ce
leaq -0x240(%rbp), %rdi
callq 0x10670
leaq -0x1e0(%rbp), %rdi
leaq -0x240(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
jmp 0x123e6
movq -0x1f0(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
movl $0x28, %edx
callq 0x2170
jmp 0x123e8
movl -0x14(%rbp), %eax
addl $0x3, %eax
movl %eax, -0x14(%rbp)
jmp 0x12302
cmpq $0x0, -0x1f0(%rbp)
jne 0x12411
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdx
callq 0x119b0
movq -0x1e8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
je 0x124ac
movq -0x510(%rbp), %rcx
movq -0x8(%rbp), %rsi
movq -0x1e8(%rbp), %rdx
movq 0x20(%rcx), %rdi
movq %rsp, %rax
movq %rdi, 0x48(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x38(%rax)
movups %xmm0, 0x28(%rax)
movq -0x1c0(%rbp), %rcx
movq %rcx, 0x20(%rax)
movups -0x1e0(%rbp), %xmm0
movups -0x1d0(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x268(%rbp), %rdi
callq 0x165b0
leaq -0x1e0(%rbp), %rdi
leaq -0x268(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
movq -0x510(%rbp), %rcx
movq 0x20(%rcx), %rdx
movq %rsp, %rax
movq %rdx, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x10250
movq -0x510(%rbp), %rsi
movq -0x1f0(%rbp), %rdi
movl $0x28, %edx
callq 0x2170
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8782(%rip), %rsi      # 0x1ac7e
callq 0x2260
cmpq $0x0, %rax
je 0x12745
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rax
movq 0x30(%rax), %rax
movq (%rax), %rdx
leaq -0x290(%rbp), %rdi
callq 0x119b0
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x298(%rbp)
movq $0x0, -0x2a0(%rbp)
movl $0x2, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movq 0x30(%rcx), %rcx
movq (%rcx), %rcx
cmpl 0x28(%rcx), %eax
jge 0x1264d
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rax
movq 0x30(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rdx
leaq -0x2c8(%rbp), %rdi
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x14e10
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movq -0x2a8(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x48(%rax)
movups -0x2c8(%rbp), %xmm0
movups -0x2b8(%rbp), %xmm1
movups %xmm1, 0x38(%rax)
movups %xmm0, 0x28(%rax)
movq -0x270(%rbp), %rcx
movq %rcx, 0x20(%rax)
movups -0x290(%rbp), %xmm0
movups -0x280(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
xorl %esi, %esi
callq 0x15f10
movq %rax, -0x2a0(%rbp)
cmpq $0x0, -0x2a0(%rbp)
jne 0x12625
leaq -0x2f0(%rbp), %rdi
callq 0x10670
leaq -0x290(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
jmp 0x1263d
movq -0x2a0(%rbp), %rsi
leaq -0x290(%rbp), %rdi
movl $0x28, %edx
callq 0x2170
jmp 0x1263f
movl -0x14(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x14(%rbp)
jmp 0x12556
cmpq $0x0, -0x2a0(%rbp)
jne 0x12668
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdx
callq 0x119b0
movq -0x298(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
je 0x12703
movq -0x510(%rbp), %rcx
movq -0x8(%rbp), %rsi
movq -0x298(%rbp), %rdx
movq 0x20(%rcx), %rdi
movq %rsp, %rax
movq %rdi, 0x48(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x38(%rax)
movups %xmm0, 0x28(%rax)
movq -0x270(%rbp), %rcx
movq %rcx, 0x20(%rax)
movups -0x290(%rbp), %xmm0
movups -0x280(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x318(%rbp), %rdi
callq 0x165b0
leaq -0x290(%rbp), %rdi
leaq -0x318(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
movq -0x510(%rbp), %rcx
movq 0x20(%rcx), %rdx
movq %rsp, %rax
movq %rdx, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x10250
movq -0x510(%rbp), %rsi
movq -0x2a0(%rbp), %rdi
movl $0x28, %edx
callq 0x2170
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8562(%rip), %rsi      # 0x1acb5
callq 0x2260
cmpq $0x0, %rax
je 0x127b8
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rdx
callq 0x119b0
movq -0x510(%rbp), %rcx
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
movq 0x20(%rcx), %rdx
movq %rsp, %rax
movq %rdx, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x11030
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x848d(%rip), %rsi      # 0x1ac53
callq 0x2260
cmpq $0x0, %rax
je 0x12875
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rdx
leaq -0x340(%rbp), %rdi
callq 0x119b0
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdx
leaq -0x368(%rbp), %rdi
callq 0x119b0
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
movq -0x348(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x48(%rax)
movups -0x368(%rbp), %xmm0
movups -0x358(%rbp), %xmm1
movups %xmm1, 0x38(%rax)
movups %xmm0, 0x28(%rax)
movq -0x320(%rbp), %rcx
movq %rcx, 0x20(%rax)
movups -0x340(%rbp), %xmm0
movups -0x330(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x16c30
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x843d(%rip), %rsi      # 0x1acc0
callq 0x2260
cmpq $0x0, %rax
je 0x1290b
movq -0x510(%rbp), %rdi
xorl %esi, %esi
movl $0x28, %edx
callq 0x20e0
movq -0x510(%rbp), %rcx
movl $0x8, (%rcx)
movq -0x8(%rbp), %rax
movq %rax, 0x8(%rcx)
movl $0xffffffff, 0x10(%rcx) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x14(%rcx) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movq %rax, 0x18(%rcx)
movq $0x0, 0x20(%rcx)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
movq 0x20(%rcx), %rdx
movq %rsp, %rax
movq %rdx, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x11030
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x83a0(%rip), %rsi      # 0x1acb9
callq 0x2260
cmpq $0x0, %rax
je 0x1296f
movq -0x510(%rbp), %rdi
xorl %esi, %esi
movl $0x28, %edx
callq 0x20e0
movq -0x510(%rbp), %rax
movl $0x8, (%rax)
movq -0x8(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0xffffffff, 0x10(%rax) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x14(%rax) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq $0x0, 0x20(%rax)
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8357(%rip), %rsi      # 0x1acd4
callq 0x2260
cmpq $0x0, %rax
je 0x129c5
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdx
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %r8
callq 0x16f90
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x82fb(%rip), %rsi      # 0x1acce
callq 0x2260
cmpq $0x0, %rax
je 0x12a10
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdx
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rcx
xorl %eax, %eax
movl %eax, %r8d
callq 0x16f90
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x82c0(%rip), %rsi      # 0x1acde
callq 0x2260
cmpq $0x0, %rax
je 0x12a42
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
callq 0x170f0
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x82a1(%rip), %rsi      # 0x1acf1
callq 0x2260
cmpq $0x0, %rax
je 0x12a74
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
callq 0x17330
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7cbd(%rip), %rsi      # 0x1a73f
callq 0x2260
cmpq $0x0, %rax
je 0x12ade
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdx
callq 0x119b0
movq -0x510(%rbp), %rcx
movq -0x8(%rbp), %rax
movl $0x2, 0x20(%rax)
movq 0x20(%rcx), %rdx
movq %rsp, %rax
movq %rdx, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x10250
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x81ba(%rip), %rsi      # 0x1aca6
callq 0x2260
cmpq $0x0, %rax
je 0x12b13
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rax
movl $0x3, 0x20(%rax)
callq 0x10670
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x818b(%rip), %rsi      # 0x1acac
callq 0x2260
cmpq $0x0, %rax
je 0x12b48
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rax
movl $0x4, 0x20(%rax)
callq 0x10670
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x812e(%rip), %rsi      # 0x1ac84
callq 0x2260
cmpq $0x0, %rax
je 0x12bee
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdx
leaq -0x390(%rbp), %rdi
callq 0x119b0
movq -0x370(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x20(%rax)
movups -0x390(%rbp), %xmm0
movups -0x380(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x178f0
cmpl $0x0, %eax
je 0x12bdd
movq -0x8(%rbp), %rax
movq %rax, -0x538(%rbp)
movq -0x10(%rbp), %rdi
callq 0x17ab0
movq -0x510(%rbp), %rdi
movq -0x538(%rbp), %rsi
movq %rax, %rdx
callq 0x119b0
jmp 0x131b3
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8095(%rip), %rsi      # 0x1ac91
callq 0x2260
cmpq $0x0, %rax
je 0x12d90
movl $0x0, -0x394(%rbp)
movl -0x394(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x28(%rcx), %eax
jge 0x12d7f
movl $0x0, -0x398(%rbp)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x394(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x3a0(%rbp)
movq -0x3a0(%rbp), %rax
movq (%rax), %rdi
leaq 0x8027(%rip), %rsi      # 0x1ac84
callq 0x2260
cmpq $0x0, %rax
je 0x12cb7
movq -0x8(%rbp), %rsi
movq -0x3a0(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdx
leaq -0x3c8(%rbp), %rdi
callq 0x119b0
movq -0x3a8(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x20(%rax)
movups -0x3c8(%rbp), %xmm0
movups -0x3b8(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x178f0
movl %eax, -0x398(%rbp)
jmp 0x12d2e
movq -0x3a0(%rbp), %rax
movq (%rax), %rdi
leaq 0x7fc4(%rip), %rsi      # 0x1ac8c
callq 0x2260
cmpq $0x0, %rax
je 0x12d22
movq -0x8(%rbp), %rsi
movq -0x3a0(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rdx
leaq -0x3f0(%rbp), %rdi
callq 0x119b0
movq -0x3d0(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x20(%rax)
movups -0x3f0(%rbp), %xmm0
movups -0x3e0(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x178f0
movl %eax, -0x398(%rbp)
jmp 0x12d2c
movl $0x1, -0x398(%rbp)
jmp 0x12d2e
cmpl $0x0, -0x398(%rbp)
je 0x12d69
movq -0x8(%rbp), %rax
movq %rax, -0x540(%rbp)
movq -0x3a0(%rbp), %rdi
callq 0x17ab0
movq -0x510(%rbp), %rdi
movq -0x540(%rbp), %rsi
movq %rax, %rdx
callq 0x119b0
jmp 0x131b3
jmp 0x12d6b
movl -0x394(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x394(%rbp)
jmp 0x12c15
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7efb(%rip), %rsi      # 0x1ac99
callq 0x2260
cmpq $0x0, %rax
je 0x12e9f
movq -0x8(%rbp), %rdi
callq 0x11230
movq %rax, -0x3f8(%rbp)
movq -0x3f8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rdx
leaq -0x420(%rbp), %rdi
callq 0x119b0
movq -0x400(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x20(%rax)
movups -0x420(%rbp), %xmm0
movups -0x410(%rbp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x178f0
cmpl $0x0, %eax
je 0x12e6a
movq -0x3f8(%rbp), %rax
movq %rax, -0x548(%rbp)
movq -0x10(%rbp), %rdi
callq 0x17ab0
movq -0x548(%rbp), %rsi
movq %rax, %rdx
leaq -0x448(%rbp), %rdi
callq 0x119b0
movq -0x3f8(%rbp), %rax
cmpl $0x0, 0x20(%rax)
je 0x12e65
movq -0x3f8(%rbp), %rax
cmpl $0x4, 0x20(%rax)
jne 0x12e63
movq -0x3f8(%rbp), %rax
movl $0x0, 0x20(%rax)
jmp 0x12dbd
jmp 0x12e6a
jmp 0x12dbd
movq -0x3f8(%rbp), %rax
cmpl $0x2, 0x20(%rax)
jne 0x12e82
movq -0x8(%rbp), %rax
movl $0x2, 0x20(%rax)
movq -0x3f8(%rbp), %rdi
callq 0x13210
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7df2(%rip), %rsi      # 0x1ac9f
callq 0x2260
cmpq $0x0, %rax
je 0x13031
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x20(%rax), %rdx
leaq -0x470(%rbp), %rdi
callq 0x119b0
cmpl $0x5, -0x470(%rbp)
je 0x12f04
movq 0xe110(%rip), %rax      # 0x20ff8
movq (%rax), %rdi
leaq 0x91ba(%rip), %rsi      # 0x1c0ac
movb $0x0, %al
callq 0x2140
movq -0x8(%rbp), %rax
movl $0x1, 0x20(%rax)
movq -0x468(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x478(%rbp)
movq -0x8(%rbp), %rdi
callq 0x11230
movq %rax, -0x488(%rbp)
movq -0x478(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x480(%rbp)
movq -0x480(%rbp), %rax
movq -0x478(%rbp), %rcx
cmpq 0x8(%rcx), %rax
je 0x12ffc
movq -0x488(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq -0x480(%rbp), %rcx
movq 0x20(%rcx), %rdx
movq %rsp, %rax
movq %rdx, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x11030
movq -0x488(%rbp), %rax
movq %rax, -0x550(%rbp)
movq -0x10(%rbp), %rdi
callq 0x17ab0
movq -0x550(%rbp), %rsi
movq %rax, %rdx
leaq -0x4b0(%rbp), %rdi
callq 0x119b0
movq -0x488(%rbp), %rax
cmpl $0x0, 0x20(%rax)
je 0x12fe3
movq -0x488(%rbp), %rax
cmpl $0x4, 0x20(%rax)
jne 0x12fe1
movq -0x488(%rbp), %rax
movl $0x0, 0x20(%rax)
jmp 0x12fe5
jmp 0x12ffc
jmp 0x12fe5
movq -0x480(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x480(%rbp)
jmp 0x12f36
movq -0x488(%rbp), %rax
cmpl $0x2, 0x20(%rax)
jne 0x13014
movq -0x8(%rbp), %rax
movl $0x2, 0x20(%rax)
movq -0x488(%rbp), %rdi
callq 0x13210
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7cbf(%rip), %rsi      # 0x1acfe
callq 0x2260
cmpq $0x0, %rax
jne 0x13076
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7c6d(%rip), %rsi      # 0x1acc5
callq 0x2260
cmpq $0x0, %rax
jne 0x13076
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0x13106
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x28(%rcx), %eax
jge 0x130f5
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq -0x500(%rbp), %rdi
callq 0x119b0
leaq -0x4d8(%rbp), %rdi
leaq -0x500(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
movq -0x8(%rbp), %rax
cmpl $0x0, 0x20(%rax)
je 0x130e8
movq -0x510(%rbp), %rdi
leaq -0x4d8(%rbp), %rsi
movl $0x28, %edx
callq 0x2170
jmp 0x131b3
jmp 0x130ea
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x1307d
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7b73(%rip), %rsi      # 0x1ac87
callq 0x2260
cmpq $0x0, %rax
je 0x1313c
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rdx
callq 0x119b0
jmp 0x131b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x74d8(%rip), %rsi      # 0x1a622
callq 0x2260
cmpq $0x0, %rax
je 0x1317c
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x7782(%rip), %rsi      # 0x1a8e6
callq 0x2130
cmpl $0x0, %eax
jne 0x1317c
movq -0x510(%rbp), %rdi
callq 0x10670
jmp 0x131b3
movq 0xde75(%rip), %rax      # 0x20ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x8f34(%rip), %rsi      # 0x1c0c9
movb $0x0, %al
callq 0x2140
movq -0x510(%rbp), %rdi
movq -0x8(%rbp), %rax
movl $0x1, 0x20(%rax)
callq 0x10670
movq -0x508(%rbp), %rax
addq $0x5a0, %rsp            # imm = 0x5A0
popq %rbp
retq
nopw %cs:(%rax,%rax)