// File: biotomas[P]ipasir/sat/picosat961/picosat-961/picosat.c
// Function: add_simplified_clause
static Cls *
add_simplified_clause (PS * ps, int learned)
{
  unsigned num_true, num_undef, num_false, size, count_resolved;
  Lit **p, **q, *lit, ** end;
  unsigned litlevel, glue;
  Cls *res, * reason;
  int reentered;
  Val val;
  Var *v;
#if !defined(NDEBUG) && defined(TRACE)
  unsigned idx;
#endif

  reentered = 0;

REENTER:

  size = ps->ahead - ps->added;

  add_resolved (ps, learned);

  if (learned)
    {
      ps->ladded++;
      ps->llitsadded += size;
      if (size > 2)
	{
	  ps->lladded++;
	  ps->nlclauses++;
	  ps->llits += size;
	}
    }
  else
    {
      ps->oadded++;
      if (size > 2)
	{
	  ps->loadded++;
	  ps->noclauses++;
	  ps->olits += size;
	}
    }

  ps->addedclauses++;
  assert (ps->addedclauses == ps->ladded + ps->oadded);

#ifdef NO_BINARY_CLAUSES
  if (size == 2)
    res = setimpl (ps, ps->added[0], ps->added[1]);
  else
#endif
    {
      sortlits (ps, ps->added, size); 

      if (learned)
	{
	  if (ps->lhead == ps->EOL)
	    {
	      ENLARGE (ps->lclauses, ps->lhead, ps->EOL);

	      /* A very difficult to find bug, which only occurs if the
	       * learned clauses stack is immediately allocated before the
	       * original clauses stack without padding.  In this case, we
	       * have 'SOC == EOC', which terminates all loops using the
	       * idiom 'for (p = SOC; p != EOC; p = NXC(p))' immediately.
	       * Unfortunately this occurred in 'fix_clause_lits' after
	       * using a recent version of the memory allocator of 'Google'
	       * perftools in the context of one large benchmark for 
	       * our SMT solver 'Boolector'.
	       */
	      if (ps->EOL == ps->oclauses)
		ENLARGE (ps->lclauses, ps->lhead, ps->EOL);
	    }

#if !defined(NDEBUG) && defined(TRACE)
	  idx = LIDX2IDX (ps->lhead - ps->lclauses);
#endif
	}
      else
	{
	  if (ps->ohead == ps->eoo)
	    {
	      ENLARGE (ps->oclauses, ps->ohead, ps->eoo);
	      if (ps->EOL == ps->oclauses)
		ENLARGE (ps->oclauses, ps->ohead, ps->eoo);	/* ditto */
	    }

#if !defined(NDEBUG) && defined(TRACE)
	  idx = OIDX2IDX (ps->ohead - ps->oclauses);
#endif
	}

      assert (ps->EOL != ps->oclauses);			/* ditto */

      res = new_clause (ps, size, learned);

      glue = 0;

      if (learned)
	{
	  assert (ps->dusedhead == ps->dused);

	  for (p = ps->added; p < ps->ahead; p++) 
	    {
	      lit = *p;
	      if (lit->val)
		{
		  litlevel = LIT2VAR (lit)->level;
		  assert (litlevel <= ps->LEVEL);
		  while (ps->levels + litlevel >= ps->levelshead)
		    {
		      if (ps->levelshead >= ps->eolevels)
			ENLARGE (ps->levels, ps->levelshead, ps->eolevels);
		      assert (ps->levelshead < ps->eolevels);
		      *ps->levelshead++ = 0;
		    }
		  if (!ps->levels[litlevel])
		    {
		      if (ps->dusedhead >= ps->eodused)
			ENLARGE (ps->dused, ps->dusedhead, ps->eodused);
		      assert (ps->dusedhead < ps->eodused);
		      *ps->dusedhead++ = litlevel;
		      ps->levels[litlevel] = 1;
		      glue++;
		    }
		}
	      else
		glue++;
	    }

	  while (ps->dusedhead > ps->dused) 
	    {
	      litlevel = *--ps->dusedhead;
	      assert (ps->levels + litlevel < ps->levelshead);
	      assert (ps->levels[litlevel]);
	      ps->levels[litlevel] = 0;
	    }
	}

      assert (glue <= MAXGLUE);
      res->glue = glue;

#if !defined(NDEBUG) && defined(TRACE)
      if (ps->trace)
	assert (CLS2IDX (res) == idx);
#endif
      if (learned)
	*ps->lhead++ = res;
      else
	*ps->ohead++ = res;

#if !defined(NDEBUG) && defined(TRACE)
      if (ps->trace && learned)
	assert (ps->zhead - ps->zhains == ps->lhead - ps->lclauses);
#endif
      assert (ps->lhead != ps->oclauses);		/* ditto */
    }

  if (learned && ps->rup)
    {
      if (!ps->rupstarted)
	{
	  write_rup_header (ps, ps->rup);
	  ps->rupstarted = 1;
	}
    }

  num_true = num_undef = num_false = 0;

  q = res->lits;
  for (p = ps->added; p < ps->ahead; p++)
    {
      lit = *p;
      *q++ = lit;

      if (learned && ps->rup)
	fprintf (ps->rup, "%d ", LIT2INT (lit));

      val = lit->val;

      num_true += (val == TRUE);
      num_undef += (val == UNDEF);
      num_false += (val == FALSE);
    }
  assert (num_false + num_true + num_undef == size);

  if (learned && ps->rup)
    fputs ("0\n", ps->rup);

  ps->ahead = ps->added;		/* reset */

  if (!reentered)				// TODO merge
  if (size > 0)
    {
      assert (size <= 2 || !reentered);		// TODO remove
      connect_head_tail (ps, res->lits[0], res);
      if (size > 1)
	connect_head_tail (ps, res->lits[1], res);
    }

  if (size == 0)
    {
      if (!ps->mtcls)
	ps->mtcls = res;
    }

#ifdef NO_BINARY_CLAUSES
  if (size != 2)
#endif
#ifndef NDEBUG
    res->connected = 1;
#endif

  LOG ( fprintf (ps->out, "%s%s ", ps->prefix, learned ? "learned" : "original");
        dumpclsnl (ps, res));

  /* Shrink clause by resolving it against top level assignments.
   */
  if (!ps->LEVEL && num_false > 0)
    {
      assert (ps->ahead == ps->added);
      assert (ps->rhead == ps->resolved);

      count_resolved = 1;
      add_antecedent (ps, res);

      end = end_of_lits (res);
      for (p = res->lits; p < end; p++)
	{
	  lit = *p;
	  v = LIT2VAR (lit);
	  use_var (ps, v);

	  if (lit->val == FALSE)
	    {
	      add_antecedent (ps, v->reason);
	      count_resolved++;
	    }
	  else
	    add_lit (ps, lit);
	}

      assert (count_resolved >= 2);

      learned = 1;
#ifdef NO_BINARY_CLAUSES
      if (res == &ps->impl)
	resetimpl (ps);
#endif
      reentered = 1;
      goto REENTER;		/* and return simplified clause */
    }

  if (!num_true && num_undef == 1)	/* unit clause */
    {
      lit = 0;
      for (p = res->lits; p < res->lits + size; p++)
	{
	  if ((*p)->val == UNDEF)
	    lit = *p;

	  v = LIT2VAR (*p);
	  use_var (ps, v);
	}
      assert (lit);

      reason = res;
#ifdef NO_BINARY_CLAUSES
      if (size == 2)
        {
	  Lit * other = res->lits[0];
	  if (other == lit)
	    other = res->lits[1];

	  assert (other->val == FALSE);
	  reason = LIT2REASON (NOTLIT (other));
	}
#endif
      assign_forced (ps, lit, reason);
      num_true++;
    }

  if (num_false == size && !ps->conflict)
    {
#ifdef NO_BINARY_CLAUSES
      if (res == &ps->impl)
	ps->conflict = setcimpl (ps, res->lits[0], res->lits[1]);
      else
#endif
      ps->conflict = res;
    }

  if (!learned && !num_true && num_undef)
    incjwh (ps, res);

#ifdef NO_BINARY_CLAUSES
  if (res == &ps->impl)
    resetimpl (ps);
#endif
  return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl $0x0, -0x5c(%rbp)
movq -0x8(%rbp), %rax
movq 0x260(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x258(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x15810
cmpl $0x0, -0xc(%rbp)
je 0x14312
movq -0x8(%rbp), %rax
movl 0x43c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x43c(%rax)
movl -0x1c(%rbp), %ecx
movq -0x8(%rbp), %rax
addl 0x450(%rax), %ecx
movl %ecx, 0x450(%rax)
cmpl $0x2, -0x1c(%rbp)
jbe 0x14310
movq -0x8(%rbp), %rax
movl 0x444(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x444(%rax)
movq -0x8(%rbp), %rax
movl 0x42c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x42c(%rax)
movl -0x1c(%rbp), %ecx
movq -0x8(%rbp), %rax
addl 0x434(%rax), %ecx
movl %ecx, 0x434(%rax)
jmp 0x14366
movq -0x8(%rbp), %rax
movl 0x438(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x438(%rax)
cmpl $0x2, -0x1c(%rbp)
jbe 0x14364
movq -0x8(%rbp), %rax
movl 0x440(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x440(%rax)
movq -0x8(%rbp), %rax
movl 0x428(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x428(%rax)
movl -0x1c(%rbp), %ecx
movq -0x8(%rbp), %rax
addl 0x430(%rax), %ecx
movl %ecx, 0x430(%rax)
jmp 0x14366
movq -0x8(%rbp), %rax
movl 0x448(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x448(%rax)
movq -0x8(%rbp), %rax
movl 0x448(%rax), %eax
movq -0x8(%rbp), %rcx
movl 0x43c(%rcx), %ecx
movq -0x8(%rbp), %rdx
addl 0x438(%rdx), %ecx
cmpl %ecx, %eax
jne 0x1439d
jmp 0x143bc
leaq 0xa4dc(%rip), %rdi      # 0x1e880
leaq 0x8ef9(%rip), %rsi      # 0x1d2a4
movl $0x8fd, %edx            # imm = 0x8FD
leaq 0xa4f5(%rip), %rcx      # 0x1e8ac
callq 0x10b0
cmpl $0x2, -0x1c(%rbp)
jne 0x143f1
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x258(%rax), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x258(%rax), %rax
movq 0x8(%rax), %rdx
callq 0x13b90
movq %rax, -0x50(%rbp)
jmp 0x1506d
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x258(%rax), %rsi
movl -0x1c(%rbp), %edx
callq 0x15840
cmpl $0x0, -0xc(%rbp)
je 0x146dc
movq -0x8(%rbp), %rax
movq 0x200(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
jne 0x146d7
jmp 0x14430
movq -0x8(%rbp), %rax
movq 0x208(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x1f8(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0x6c(%rbp)
cmpl $0x0, -0x6c(%rbp)
je 0x14463
movl -0x6c(%rbp), %eax
shll %eax
movl %eax, -0x164(%rbp)
jmp 0x14470
movl $0x1, %eax
movl %eax, -0x164(%rbp)
jmp 0x14470
movl -0x164(%rbp), %eax
movl %eax, %eax
movq %rax, -0x78(%rbp)
movq -0x8(%rbp), %rax
movq 0x200(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x1f8(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0x7c(%rbp)
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
ja 0x144b6
jmp 0x144d5
leaq 0xa415(%rip), %rdi      # 0x1e8d2
leaq 0x8de0(%rip), %rsi      # 0x1d2a4
movl $0x90b, %edx            # imm = 0x90B
leaq 0xa3dc(%rip), %rcx      # 0x1e8ac
callq 0x10b0
jmp 0x144d7
movl -0x6c(%rbp), %eax
shlq $0x3, %rax
movq %rax, -0x88(%rbp)
movq -0x78(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0x90(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rsi
movq -0x88(%rbp), %rdx
movq -0x90(%rbp), %rcx
callq 0x4f30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1f8(%rax)
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rcx
movl -0x7c(%rbp), %eax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x200(%rax)
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rcx
movq -0x78(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x208(%rax)
movq -0x8(%rbp), %rax
movq 0x208(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x1e0(%rcx), %rax
jne 0x146d5
jmp 0x14583
movq -0x8(%rbp), %rax
movq 0x208(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x1f8(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0x94(%rbp)
cmpl $0x0, -0x94(%rbp)
je 0x145bf
movl -0x94(%rbp), %eax
shll %eax
movl %eax, -0x168(%rbp)
jmp 0x145cc
movl $0x1, %eax
movl %eax, -0x168(%rbp)
jmp 0x145cc
movl -0x168(%rbp), %eax
movl %eax, %eax
movq %rax, -0xa0(%rbp)
movq -0x8(%rbp), %rax
movq 0x200(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x1f8(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0xa4(%rbp)
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
ja 0x14618
jmp 0x14637
leaq 0xa2b3(%rip), %rdi      # 0x1e8d2
leaq 0x8c7e(%rip), %rsi      # 0x1d2a4
movl $0x918, %edx            # imm = 0x918
leaq 0xa27a(%rip), %rcx      # 0x1e8ac
callq 0x10b0
jmp 0x14639
movl -0x94(%rbp), %eax
shlq $0x3, %rax
movq %rax, -0xb0(%rbp)
movq -0xa0(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0xb8(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rsi
movq -0xb0(%rbp), %rdx
movq -0xb8(%rbp), %rcx
callq 0x4f30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1f8(%rax)
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rcx
movl -0xa4(%rbp), %eax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x200(%rax)
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rcx
movq -0xa0(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x208(%rax)
jmp 0x146d5
jmp 0x146d7
jmp 0x149be
movq -0x8(%rbp), %rax
movq 0x1e8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x1f0(%rcx), %rax
jne 0x149bc
jmp 0x146fa
movq -0x8(%rbp), %rax
movq 0x1f0(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x1e0(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0xbc(%rbp)
cmpl $0x0, -0xbc(%rbp)
je 0x14736
movl -0xbc(%rbp), %eax
shll %eax
movl %eax, -0x16c(%rbp)
jmp 0x14743
movl $0x1, %eax
movl %eax, -0x16c(%rbp)
jmp 0x14743
movl -0x16c(%rbp), %eax
movl %eax, %eax
movq %rax, -0xc8(%rbp)
movq -0x8(%rbp), %rax
movq 0x1e8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x1e0(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0xcc(%rbp)
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x1f0(%rcx), %rax
ja 0x1478f
jmp 0x147ae
leaq 0xa158(%rip), %rdi      # 0x1e8ee
leaq 0x8b07(%rip), %rsi      # 0x1d2a4
movl $0x923, %edx            # imm = 0x923
leaq 0xa103(%rip), %rcx      # 0x1e8ac
callq 0x10b0
jmp 0x147b0
movl -0xbc(%rbp), %eax
shlq $0x3, %rax
movq %rax, -0xd8(%rbp)
movq -0xc8(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0xe0(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rsi
movq -0xd8(%rbp), %rdx
movq -0xe0(%rbp), %rcx
callq 0x4f30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1e0(%rax)
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rcx
movl -0xcc(%rbp), %eax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1e8(%rax)
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rcx
movq -0xc8(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1f0(%rax)
movq -0x8(%rbp), %rax
movq 0x208(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x1e0(%rcx), %rax
jne 0x149ba
jmp 0x14868
movq -0x8(%rbp), %rax
movq 0x1f0(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x1e0(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0xe4(%rbp)
cmpl $0x0, -0xe4(%rbp)
je 0x148a4
movl -0xe4(%rbp), %eax
shll %eax
movl %eax, -0x170(%rbp)
jmp 0x148b1
movl $0x1, %eax
movl %eax, -0x170(%rbp)
jmp 0x148b1
movl -0x170(%rbp), %eax
movl %eax, %eax
movq %rax, -0xf0(%rbp)
movq -0x8(%rbp), %rax
movq 0x1e8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x1e0(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0xf4(%rbp)
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x1f0(%rcx), %rax
ja 0x148fd
jmp 0x1491c
leaq 0x9fea(%rip), %rdi      # 0x1e8ee
leaq 0x8999(%rip), %rsi      # 0x1d2a4
movl $0x925, %edx            # imm = 0x925
leaq 0x9f95(%rip), %rcx      # 0x1e8ac
callq 0x10b0
jmp 0x1491e
movl -0xe4(%rbp), %eax
shlq $0x3, %rax
movq %rax, -0x100(%rbp)
movq -0xf0(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0x108(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rsi
movq -0x100(%rbp), %rdx
movq -0x108(%rbp), %rcx
callq 0x4f30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1e0(%rax)
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rcx
movl -0xf4(%rbp), %eax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1e8(%rax)
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rcx
movq -0xf0(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1f0(%rax)
jmp 0x149ba
jmp 0x149bc
jmp 0x149be
movq -0x8(%rbp), %rax
movq 0x208(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x1e0(%rcx), %rax
je 0x149d8
jmp 0x149f7
leaq 0x9f2b(%rip), %rdi      # 0x1e90a
leaq 0x88be(%rip), %rsi      # 0x1d2a4
movl $0x92d, %edx            # imm = 0x92D
leaq 0x9eba(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
movl -0xc(%rbp), %edx
callq 0x161f0
movq %rax, -0x50(%rbp)
movl $0x0, -0x48(%rbp)
cmpl $0x0, -0xc(%rbp)
je 0x14fa2
movq -0x8(%rbp), %rax
movq 0x2d8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2d0(%rcx), %rax
jne 0x14a35
jmp 0x14a54
leaq 0x9ee6(%rip), %rdi      # 0x1e922
leaq 0x8861(%rip), %rsi      # 0x1d2a4
movl $0x935, %edx            # imm = 0x935
leaq 0x9e5d(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movq -0x8(%rbp), %rax
movq 0x258(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x260(%rcx), %rax
jae 0x14ed8
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpb $0x0, (%rax)
je 0x14ebc
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x38(%rbp), %rcx
movq -0x8(%rbp), %rdx
movq 0x38(%rdx), %rdx
subq %rdx, %rcx
shrl %ecx
movl %ecx, %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x28(%rcx), %eax
ja 0x14ac6
jmp 0x14ae5
leaq 0x9e70(%rip), %rdi      # 0x1e93d
leaq 0x87d0(%rip), %rsi      # 0x1d2a4
movl $0x93d, %edx            # imm = 0x93D
leaq 0x9dcc(%rip), %rcx      # 0x1e8ac
callq 0x10b0
jmp 0x14ae7
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rax
movl -0x44(%rbp), %ecx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
cmpq 0x2c0(%rcx), %rax
jb 0x14cc0
movq -0x8(%rbp), %rax
movq 0x2c0(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2c8(%rcx), %rax
jb 0x14c66
jmp 0x14b27
movq -0x8(%rbp), %rax
movq 0x2c8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x2b8(%rcx), %rcx
subq %rcx, %rax
movl %eax, -0x10c(%rbp)
cmpl $0x0, -0x10c(%rbp)
je 0x14b5f
movl -0x10c(%rbp), %eax
shll %eax
movl %eax, -0x174(%rbp)
jmp 0x14b6c
movl $0x1, %eax
movl %eax, -0x174(%rbp)
jmp 0x14b6c
movl -0x174(%rbp), %eax
movl %eax, %eax
movq %rax, -0x118(%rbp)
movq -0x8(%rbp), %rax
movq 0x2c0(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x2b8(%rcx), %rcx
subq %rcx, %rax
movl %eax, -0x11c(%rbp)
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2c8(%rcx), %rax
ja 0x14bb4
jmp 0x14bd3
leaq 0x9d98(%rip), %rdi      # 0x1e953
leaq 0x86e2(%rip), %rsi      # 0x1d2a4
movl $0x941, %edx            # imm = 0x941
leaq 0x9cde(%rip), %rcx      # 0x1e8ac
callq 0x10b0
jmp 0x14bd5
movl -0x10c(%rbp), %eax
shlq $0x0, %rax
movq %rax, -0x128(%rbp)
movq -0x118(%rbp), %rax
shlq $0x0, %rax
movq %rax, -0x130(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rsi
movq -0x128(%rbp), %rdx
movq -0x130(%rbp), %rcx
callq 0x4f30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2b8(%rax)
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rcx
movl -0x11c(%rbp), %eax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2c0(%rax)
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rcx
addq -0x118(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2c8(%rax)
jmp 0x14c66
movq -0x8(%rbp), %rax
movq 0x2c0(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2c8(%rcx), %rax
jae 0x14c80
jmp 0x14c9f
leaq 0x9ceb(%rip), %rdi      # 0x1e972
leaq 0x8616(%rip), %rsi      # 0x1d2a4
movl $0x942, %edx            # imm = 0x942
leaq 0x9c12(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movq -0x8(%rbp), %rcx
movq 0x2c0(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x2c0(%rcx)
movb $0x0, (%rax)
jmp 0x14ae7
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rax
movl -0x44(%rbp), %ecx
cmpb $0x0, (%rax,%rcx)
jne 0x14eba
movq -0x8(%rbp), %rax
movq 0x2d8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2e0(%rcx), %rax
jb 0x14e48
jmp 0x14cf6
movq -0x8(%rbp), %rax
movq 0x2e0(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x2d0(%rcx), %rcx
subq %rcx, %rax
sarq $0x2, %rax
movl %eax, -0x134(%rbp)
cmpl $0x0, -0x134(%rbp)
je 0x14d32
movl -0x134(%rbp), %eax
shll %eax
movl %eax, -0x178(%rbp)
jmp 0x14d3f
movl $0x1, %eax
movl %eax, -0x178(%rbp)
jmp 0x14d3f
movl -0x178(%rbp), %eax
movl %eax, %eax
movq %rax, -0x140(%rbp)
movq -0x8(%rbp), %rax
movq 0x2d8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x2d0(%rcx), %rcx
subq %rcx, %rax
sarq $0x2, %rax
movl %eax, -0x144(%rbp)
movq -0x8(%rbp), %rax
movq 0x2d0(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2e0(%rcx), %rax
ja 0x14d8b
jmp 0x14daa
leaq 0x9bfe(%rip), %rdi      # 0x1e990
leaq 0x850b(%rip), %rsi      # 0x1d2a4
movl $0x948, %edx            # imm = 0x948
leaq 0x9b07(%rip), %rcx      # 0x1e8ac
callq 0x10b0
jmp 0x14dac
movl -0x134(%rbp), %eax
shlq $0x2, %rax
movq %rax, -0x150(%rbp)
movq -0x140(%rbp), %rax
shlq $0x2, %rax
movq %rax, -0x158(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x2d0(%rax), %rsi
movq -0x150(%rbp), %rdx
movq -0x158(%rbp), %rcx
callq 0x4f30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2d0(%rax)
movq -0x8(%rbp), %rax
movq 0x2d0(%rax), %rcx
movl -0x144(%rbp), %eax
shlq $0x2, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2d8(%rax)
movq -0x8(%rbp), %rax
movq 0x2d0(%rax), %rcx
movq -0x140(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2e0(%rax)
jmp 0x14e48
movq -0x8(%rbp), %rax
movq 0x2d8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2e0(%rcx), %rax
jae 0x14e62
jmp 0x14e81
leaq 0x9b44(%rip), %rdi      # 0x1e9ad
leaq 0x8434(%rip), %rsi      # 0x1d2a4
movl $0x949, %edx            # imm = 0x949
leaq 0x9a30(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movl -0x44(%rbp), %ecx
movq -0x8(%rbp), %rdx
movq 0x2d8(%rdx), %rax
movq %rax, %rsi
addq $0x4, %rsi
movq %rsi, 0x2d8(%rdx)
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rax
movl -0x44(%rbp), %ecx
movb $0x1, (%rax,%rcx)
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x14ec5
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x14ec7
movq -0x28(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
jmp 0x14a63
jmp 0x14eda
movq -0x8(%rbp), %rax
movq 0x2d8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2d0(%rcx), %rax
jbe 0x14fa0
movq -0x8(%rbp), %rcx
movq 0x2d8(%rcx), %rax
movq %rax, %rdx
addq $-0x4, %rdx
movq %rdx, 0x2d8(%rcx)
movl -0x4(%rax), %eax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rax
movl -0x44(%rbp), %ecx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
cmpq 0x2c0(%rcx), %rax
jae 0x14f35
jmp 0x14f54
leaq 0x9a8d(%rip), %rdi      # 0x1e9c9
leaq 0x8361(%rip), %rsi      # 0x1d2a4
movl $0x956, %edx            # imm = 0x956
leaq 0x995d(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rax
movl -0x44(%rbp), %ecx
cmpb $0x0, (%rax,%rcx)
je 0x14f6a
jmp 0x14f89
leaq 0x9a7f(%rip), %rdi      # 0x1e9f0
leaq 0x832c(%rip), %rsi      # 0x1d2a4
movl $0x957, %edx            # imm = 0x957
leaq 0x9928(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rax
movl -0x44(%rbp), %ecx
movb $0x0, (%rax,%rcx)
jmp 0x14eda
jmp 0x14fa2
cmpl $0x1ffffff, -0x48(%rbp) # imm = 0x1FFFFFF
ja 0x14fad
jmp 0x14fcc
leaq 0x9a51(%rip), %rdi      # 0x1ea05
leaq 0x82e9(%rip), %rsi      # 0x1d2a4
movl $0x95c, %edx            # imm = 0x95C
leaq 0x98e5(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movl -0x48(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x4(%rax), %ecx
andl $0x1ffffff, %edx        # imm = 0x1FFFFFF
shll $0x5, %edx
andl $0xc000001f, %ecx       # imm = 0xC000001F
orl %edx, %ecx
movl %ecx, 0x4(%rax)
cmpl $0x0, -0xc(%rbp)
je 0x15012
movq -0x50(%rbp), %rcx
movq -0x8(%rbp), %rdx
movq 0x200(%rdx), %rax
movq %rax, %rsi
addq $0x8, %rsi
movq %rsi, 0x200(%rdx)
movq %rcx, (%rax)
jmp 0x15032
movq -0x50(%rbp), %rcx
movq -0x8(%rbp), %rdx
movq 0x1e8(%rdx), %rax
movq %rax, %rsi
addq $0x8, %rsi
movq %rsi, 0x1e8(%rdx)
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movq 0x200(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x1e0(%rcx), %rax
je 0x1504c
jmp 0x1506b
leaq 0x99c2(%rip), %rdi      # 0x1ea15
leaq 0x824a(%rip), %rsi      # 0x1d2a4
movl $0x96c, %edx            # imm = 0x96C
leaq 0x9846(%rip), %rcx      # 0x1e8ac
callq 0x10b0
jmp 0x1506d
cmpl $0x0, -0xc(%rbp)
je 0x150b2
movq -0x8(%rbp), %rax
cmpq $0x0, 0x230(%rax)
je 0x150b2
movq -0x8(%rbp), %rax
cmpl $0x0, 0x238(%rax)
jne 0x150b0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x230(%rax), %rsi
callq 0x16340
movq -0x8(%rbp), %rax
movl $0x1, 0x238(%rax)
jmp 0x150b2
movl $0x0, -0x18(%rbp)
movl $0x0, -0x14(%rbp)
movl $0x0, -0x10(%rbp)
movq -0x50(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq 0x258(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x260(%rcx), %rax
jae 0x151d6
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x30(%rbp)
movq %rcx, (%rax)
cmpl $0x0, -0xc(%rbp)
je 0x1517d
movq -0x8(%rbp), %rax
cmpq $0x0, 0x230(%rax)
je 0x1517d
movq -0x8(%rbp), %rax
movq 0x230(%rax), %rdi
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
andl $0x1, %ecx
movl $0x1, %edx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl $0x0, %ecx
cmovnel %eax, %edx
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
shrl %eax
imull %eax, %edx
leaq 0x8b82(%rip), %rsi      # 0x1dcf8
movb $0x0, %al
callq 0x1130
movq -0x38(%rbp), %rax
movb (%rax), %al
movb %al, -0x5d(%rbp)
movsbl -0x5d(%rbp), %eax
cmpl $0x1, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
addl -0x10(%rbp), %eax
movl %eax, -0x10(%rbp)
movsbl -0x5d(%rbp), %eax
cmpl $0x0, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movsbl -0x5d(%rbp), %eax
cmpl $-0x1, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
addl -0x18(%rbp), %eax
movl %eax, -0x18(%rbp)
movq -0x28(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
jmp 0x150e2
movl -0x18(%rbp), %eax
addl -0x10(%rbp), %eax
addl -0x14(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jne 0x151e6
jmp 0x15205
leaq 0x9842(%rip), %rdi      # 0x1ea2f
leaq 0x80b0(%rip), %rsi      # 0x1d2a4
movl $0x989, %edx            # imm = 0x989
leaq 0x96ac(%rip), %rcx      # 0x1e8ac
callq 0x10b0
cmpl $0x0, -0xc(%rbp)
je 0x15230
movq -0x8(%rbp), %rax
cmpq $0x0, 0x230(%rax)
je 0x15230
movq -0x8(%rbp), %rax
movq 0x230(%rax), %rsi
leaq 0x8ad7(%rip), %rdi      # 0x1dd02
callq 0x10c0
movq -0x8(%rbp), %rax
movq 0x258(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x260(%rax)
cmpl $0x0, -0x5c(%rbp)
jne 0x152b3
cmpl $0x0, -0x1c(%rbp)
jbe 0x152b1
cmpl $0x2, -0x1c(%rbp)
jbe 0x1525e
cmpl $0x0, -0x5c(%rbp)
jne 0x15260
jmp 0x1527f
leaq 0x97f1(%rip), %rdi      # 0x1ea58
leaq 0x8036(%rip), %rsi      # 0x1d2a4
movl $0x993, %edx            # imm = 0x993
leaq 0x9632(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movq -0x8(%rbp), %rdi
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x50(%rbp), %rdx
callq 0x163e0
cmpl $0x1, -0x1c(%rbp)
jbe 0x152af
movq -0x8(%rbp), %rdi
movq -0x50(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x50(%rbp), %rdx
callq 0x163e0
jmp 0x152b1
jmp 0x152b3
cmpl $0x0, -0x1c(%rbp)
jne 0x152d8
movq -0x8(%rbp), %rax
cmpq $0x0, 0x248(%rax)
jne 0x152d6
movq -0x50(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x248(%rax)
jmp 0x152d8
cmpl $0x2, -0x1c(%rbp)
je 0x152ee
movq -0x50(%rbp), %rax
movl 0x4(%rax), %ecx
andl $-0x11, %ecx
orl $0x10, %ecx
movl %ecx, 0x4(%rax)
jmp 0x152f0
jmp 0x152f2
movq -0x8(%rbp), %rax
cmpl $0x0, 0x28(%rax)
jne 0x15491
cmpl $0x0, -0x18(%rbp)
jbe 0x15491
movq -0x8(%rbp), %rax
movq 0x260(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x258(%rcx), %rax
jne 0x15324
jmp 0x15343
leaq 0x94d9(%rip), %rdi      # 0x1e804
leaq 0x7f72(%rip), %rsi      # 0x1d2a4
movl $0x9ad, %edx            # imm = 0x9AD
leaq 0x956e(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movq -0x8(%rbp), %rax
movq 0x2a8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2a0(%rcx), %rax
jne 0x1535d
jmp 0x1537c
leaq 0x9456(%rip), %rdi      # 0x1e7ba
leaq 0x7f39(%rip), %rsi      # 0x1d2a4
movl $0x9ae, %edx            # imm = 0x9AE
leaq 0x9535(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movl $0x1, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x14060
movq -0x50(%rbp), %rdi
callq 0xb980
movq %rax, -0x40(%rbp)
movq -0x50(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq -0x40(%rbp), %rax
jae 0x1543d
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x38(%rbp), %rcx
movq -0x8(%rbp), %rdx
movq 0x38(%rdx), %rdx
subq %rdx, %rcx
shrl %ecx
movl %ecx, %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x13c50
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $-0x1, %eax
jne 0x1541d
movq -0x8(%rbp), %rdi
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x14060
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x1542a
movq -0x8(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x6c80
jmp 0x1542c
movq -0x28(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
jmp 0x153a9
cmpl $0x2, -0x20(%rbp)
jb 0x15445
jmp 0x15464
leaq 0x9624(%rip), %rdi      # 0x1ea70
leaq 0x7e51(%rip), %rsi      # 0x1d2a4
movl $0x9c3, %edx            # imm = 0x9C3
leaq 0x944d(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movl $0x1, -0xc(%rbp)
movq -0x50(%rbp), %rax
movq -0x8(%rbp), %rcx
addq $0x70, %rcx
cmpq %rcx, %rax
jne 0x15485
movq -0x8(%rbp), %rdi
callq 0x13ec0
movl $0x1, -0x5c(%rbp)
jmp 0x14279
cmpl $0x0, -0x10(%rbp)
jne 0x15660
cmpl $0x1, -0x14(%rbp)
jne 0x15660
movq $0x0, -0x38(%rbp)
movq -0x50(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x50(%rbp), %rcx
addq $0x18, %rcx
movl -0x1c(%rbp), %edx
shlq $0x3, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0x15532
movq -0x28(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x154ee
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x28(%rbp), %rcx
movq (%rcx), %rcx
movq -0x8(%rbp), %rdx
movq 0x38(%rdx), %rdx
subq %rdx, %rcx
shrl %ecx
movl %ecx, %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x13c50
movq -0x28(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
jmp 0x154b9
cmpq $0x0, -0x38(%rbp)
je 0x1553b
jmp 0x1555a
leaq 0x96bd(%rip), %rdi      # 0x1ebff
leaq 0x7d5b(%rip), %rsi      # 0x1d2a4
movl $0x9d9, %edx            # imm = 0x9D9
leaq 0x9357(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movq -0x50(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpl $0x2, -0x1c(%rbp)
jne 0x15646
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rax
cmpq -0x38(%rbp), %rax
jne 0x15597
movq -0x50(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rax
movsbl (%rax), %eax
cmpl $-0x1, %eax
jne 0x155a8
jmp 0x155c7
leaq 0x94d5(%rip), %rdi      # 0x1ea84
leaq 0x7cee(%rip), %rsi      # 0x1d2a4
movl $0x9e3, %edx            # imm = 0x9E3
leaq 0x92ea(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x160(%rbp), %rcx
movq -0x8(%rbp), %rdx
movq 0x38(%rdx), %rdx
subq %rdx, %rcx
xorq $0x1, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jne 0x155f0
jmp 0x1560f
leaq 0x94a1(%rip), %rdi      # 0x1ea98
leaq 0x7ca6(%rip), %rsi      # 0x1d2a4
movl $0x9e4, %edx            # imm = 0x9E4
leaq 0x92a2(%rip), %rcx      # 0x1e8ac
callq 0x10b0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x160(%rbp), %rcx
movq -0x8(%rbp), %rdx
movq 0x38(%rdx), %rdx
subq %rdx, %rcx
xorq $0x1, %rcx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
shlq %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x58(%rbp), %rdx
callq 0x13850
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jne 0x156c1
movq -0x8(%rbp), %rax
cmpq $0x0, 0x250(%rax)
jne 0x156c1
movq -0x50(%rbp), %rax
movq -0x8(%rbp), %rcx
addq $0x70, %rcx
cmpq %rcx, %rax
jne 0x156b0
movq -0x8(%rbp), %rdi
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x50(%rbp), %rax
movq 0x20(%rax), %rdx
callq 0x13ad0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x250(%rax)
jmp 0x156bf
movq -0x50(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x250(%rax)
jmp 0x156c1
cmpl $0x0, -0xc(%rbp)
jne 0x156e0
cmpl $0x0, -0x10(%rbp)
jne 0x156e0
cmpl $0x0, -0x14(%rbp)
je 0x156e0
movq -0x8(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x16500
movq -0x50(%rbp), %rax
movq -0x8(%rbp), %rcx
addq $0x70, %rcx
cmpq %rcx, %rax
jne 0x156fa
movq -0x8(%rbp), %rdi
callq 0x13ec0
movq -0x50(%rbp), %rax
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
nopw (%rax,%rax)