// File: /workspace/github_c_makefile_star2_O0/reactive-systems[P]aiger-ltl-model-checker/aiger.c
// Function: aiger_reencode
void
aiger_reencode (aiger * public)
{
  unsigned *code, i, j, size_code, old, new, lhs, rhs0, rhs1, tmp;
  unsigned *stack, size_stack;
  IMPORT_private_FROM (public);

  assert (!aiger_error (public));

  aiger_symbol *symbol;
  aiger_type *type;
  aiger_and *and;

  if (aiger_is_reencoded (public))
    return;

  size_code = 2 * (public->maxvar + 1);
  if (size_code < 2)
    size_code = 2;

  NEWN (code, size_code);

  code[1] = 1;			/* not used actually */

  new = 2;

  for (i = 0; i < public->num_inputs; i++)
    {
      old = public->inputs[i].lit;

      code[old] = new;
      code[old + 1] = new + 1;

      new += 2;
    }

  for (i = 0; i < public->num_latches; i++)
    {
      old = public->latches[i].lit;

      code[old] = new;
      code[old + 1] = new + 1;

      new += 2;
    }

  stack = 0;
  size_stack = 0;

  for (i = 0; i < public->num_latches; i++)
    {
      old = public->latches[i].next;
      public->latches[i].next =
	aiger_reencode_lit (public, old, &new, code, &stack, &size_stack);

      old = public->latches[i].reset;
      public->latches[i].reset =
	aiger_reencode_lit (public, old, &new, code, &stack, &size_stack);
    }

  for (i = 0; i < public->num_outputs; i++)
    {
      old = public->outputs[i].lit;
      public->outputs[i].lit =
	aiger_reencode_lit (public, old, &new, code, &stack, &size_stack);
    }

  for (i = 0; i < public->num_bad; i++)
    {
      old = public->bad[i].lit;
      public->bad[i].lit =
	aiger_reencode_lit (public, old, &new, code, &stack, &size_stack);
    }

  for (i = 0; i < public->num_constraints; i++)
    {
      old = public->constraints[i].lit;
      public->constraints[i].lit =
	aiger_reencode_lit (public, old, &new, code, &stack, &size_stack);
    }

  for (i = 0; i < public->num_justice; i++)
    {
      for (j = 0; j < public->justice[i].size; j++)
	{
	  old = public->justice[i].lits[j];
	  public->justice[i].lits[j] =
	    aiger_reencode_lit (public, old, &new, code, &stack, &size_stack);
	}
    }

  for (i = 0; i < public->num_fairness; i++)
    {
      old = public->fairness[i].lit;
      public->fairness[i].lit =
	aiger_reencode_lit (public, old, &new, code, &stack, &size_stack);
    }

  DELETEN (stack, size_stack);

  j = 0;
  for (i = 0; i < public->num_ands; i++)
    {
      and = public->ands + i;
      lhs = code[and->lhs];
      if (!lhs)
	continue;

      rhs0 = code[and->rhs0];
      rhs1 = code[and->rhs1];

      and = public->ands + j++;

      if (rhs0 < rhs1)
	{
	  tmp = rhs1;
	  rhs1 = rhs0;
	  rhs0 = tmp;
	}

      assert (lhs > rhs0);
      assert (rhs0 >= rhs1);

      and->lhs = lhs;
      and->rhs0 = rhs0;
      and->rhs1 = rhs1;
    }
  public->num_ands = j;

  qsort (public->ands, j, sizeof (*and), cmp_lhs);

  assert (new);
  assert (public->maxvar >= aiger_lit2var (new - 1));
  public->maxvar = aiger_lit2var (new - 1);

  /* Reset types.
   */
  for (i = 1; i <= public->maxvar; i++)
    {
      type = private->types + i;
      type->input = 0;
      type->latch = 0;
      type->and = 0;
      type->idx = 0;
    }

  /* Fix types for ANDs.
   */
  for (i = 0; i < public->num_ands; i++)
    {
      and = public->ands + i;
      type = private->types + aiger_lit2var (and->lhs);
      type->and = 1;
      type->idx = i;
    }

  /* Fix types for inputs.
   */
  for (i = 0; i < public->num_inputs; i++)
    {
      symbol = public->inputs + i;
      assert (symbol->lit < size_code);
      symbol->lit = code[symbol->lit];
      type = private->types + aiger_lit2var (symbol->lit);
      type->input = 1;
      type->idx = i;
    }

  /* Fix types for latches.
   */
  for (i = 0; i < public->num_latches; i++)
    {
      symbol = public->latches + i;
      symbol->lit = code[symbol->lit];
      type = private->types + aiger_lit2var (symbol->lit);
      type->latch = 1;
      type->idx = i;
    }

  DELETEN (code, size_code);

#ifndef NDEBUG
  for (i = 0; i <= public->maxvar; i++)
    {
      type = private->types + i;
      assert (!(type->input && type->latch));
      assert (!(type->input && type->and));
      assert (!(type->latch && type->and));
    }
#endif
  assert (aiger_is_reencoded (public));
  assert (!aiger_check (public));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
callq 0x2a70
cmpq $0x0, %rax
jne 0x54f8
jmp 0x5517
leaq 0x6df8(%rip), %rdi      # 0xc2f7
leaq 0x6da3(%rip), %rsi      # 0xc2a9
movl $0x5cd, %edx            # imm = 0x5CD
leaq 0x706d(%rip), %rcx      # 0xc57f
callq 0x10f0
movq -0x8(%rbp), %rdi
callq 0x5250
cmpl $0x0, %eax
je 0x552a
jmp 0x5eeb
movq -0x8(%rbp), %rax
movl (%rax), %eax
addl $0x1, %eax
shll %eax
movl %eax, -0x1c(%rbp)
cmpl $0x2, -0x1c(%rbp)
jae 0x5545
movl $0x2, -0x1c(%rbp)
jmp 0x5547
movl -0x1c(%rbp), %eax
shlq $0x2, %rax
movq %rax, -0x70(%rbp)
movq -0x50(%rbp), %rax
movq 0xc0(%rax), %rax
movq -0x50(%rbp), %rcx
movq 0xb8(%rcx), %rdi
movq -0x70(%rbp), %rsi
callq *%rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x70(%rbp), %rdx
xorl %esi, %esi
callq 0x1100
movq -0x10(%rbp), %rax
movl $0x1, 0x4(%rax)
movl $0x2, -0x24(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jae 0x55f3
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
movl -0x24(%rbp), %edx
movq -0x10(%rbp), %rax
movl -0x20(%rbp), %ecx
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %edx
addl $0x1, %edx
movq -0x10(%rbp), %rax
movl -0x20(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, %ecx
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x24(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x559a
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jae 0x5653
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
movl -0x24(%rbp), %edx
movq -0x10(%rbp), %rax
movl -0x20(%rbp), %ecx
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %edx
addl $0x1, %edx
movq -0x10(%rbp), %rax
movl -0x20(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, %ecx
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x24(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x55fa
movq $0x0, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jae 0x571d
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x10(%rbp), %rcx
leaq -0x24(%rbp), %rdx
leaq -0x40(%rbp), %r8
leaq -0x44(%rbp), %r9
callq 0x5f00
movl %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movl -0x14(%rbp), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x10(%rbp), %rcx
leaq -0x24(%rbp), %rdx
leaq -0x40(%rbp), %r8
leaq -0x44(%rbp), %r9
callq 0x5f00
movl %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movl -0x14(%rbp), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5669
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jae 0x5784
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x10(%rbp), %rcx
leaq -0x24(%rbp), %rdx
leaq -0x40(%rbp), %r8
leaq -0x44(%rbp), %r9
callq 0x5f00
movl %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movl -0x14(%rbp), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5724
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x14(%rcx), %eax
jae 0x57eb
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x10(%rbp), %rcx
leaq -0x24(%rbp), %rdx
leaq -0x40(%rbp), %r8
leaq -0x44(%rbp), %r9
callq 0x5f00
movl %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movl -0x14(%rbp), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x578b
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x18(%rcx), %eax
jae 0x5852
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x10(%rbp), %rcx
leaq -0x24(%rbp), %rdx
leaq -0x40(%rbp), %r8
leaq -0x44(%rbp), %r9
callq 0x5f00
movl %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movl -0x14(%rbp), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x57f2
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x1c(%rcx), %eax
jae 0x58fe
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x50(%rcx), %rcx
movl -0x14(%rbp), %edx
shlq $0x5, %rdx
addq %rdx, %rcx
cmpl 0xc(%rcx), %eax
jae 0x58ee
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movl -0x18(%rbp), %ecx
movl (%rax,%rcx,4), %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x10(%rbp), %rcx
leaq -0x24(%rbp), %rdx
leaq -0x40(%rbp), %r8
leaq -0x44(%rbp), %r9
callq 0x5f00
movl %eax, %edx
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movl -0x18(%rbp), %ecx
movl %edx, (%rax,%rcx,4)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x5870
jmp 0x58f0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5859
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x20(%rcx), %eax
jae 0x5965
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x10(%rbp), %rcx
leaq -0x24(%rbp), %rdx
leaq -0x40(%rbp), %r8
leaq -0x44(%rbp), %r9
callq 0x5f00
movl %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl -0x14(%rbp), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5905
jmp 0x5967
movl -0x44(%rbp), %eax
shlq $0x2, %rax
movq %rax, -0x78(%rbp)
movq -0x50(%rbp), %rax
movq 0xc8(%rax), %rax
movq -0x50(%rbp), %rcx
movq 0xb8(%rcx), %rdi
movq -0x40(%rbp), %rsi
movq -0x78(%rbp), %rdx
callq *%rax
movq $0x0, -0x40(%rbp)
movl $0x0, -0x18(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jae 0x5ac2
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movl -0x14(%rbp), %ecx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rax
movq -0x68(%rbp), %rcx
movl (%rcx), %ecx
movl (%rax,%rcx,4), %eax
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x28(%rbp)
jne 0x59e9
jmp 0x5ab4
movq -0x10(%rbp), %rax
movq -0x68(%rbp), %rcx
movl 0x4(%rcx), %ecx
movl (%rax,%rcx,4), %eax
movl %eax, -0x2c(%rbp)
movq -0x10(%rbp), %rax
movq -0x68(%rbp), %rcx
movl 0x8(%rcx), %ecx
movl (%rax,%rcx,4), %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movl -0x18(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x18(%rbp)
movl %ecx, %ecx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x2c(%rbp), %eax
cmpl -0x30(%rbp), %eax
jae 0x5a45
movl -0x30(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x30(%rbp)
movl -0x34(%rbp), %eax
movl %eax, -0x2c(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jbe 0x5a4f
jmp 0x5a6e
leaq 0x6b46(%rip), %rdi      # 0xc59c
leaq 0x684c(%rip), %rsi      # 0xc2a9
movl $0x63e, %edx            # imm = 0x63E
leaq 0x6b16(%rip), %rcx      # 0xc57f
callq 0x10f0
movl -0x2c(%rbp), %eax
cmpl -0x30(%rbp), %eax
jb 0x5a78
jmp 0x5a97
leaq 0x6b28(%rip), %rdi      # 0xc5a7
leaq 0x6823(%rip), %rsi      # 0xc2a9
movl $0x63f, %edx            # imm = 0x63F
leaq 0x6aed(%rip), %rcx      # 0xc57f
callq 0x10f0
movl -0x28(%rbp), %ecx
movq -0x68(%rbp), %rax
movl %ecx, (%rax)
movl -0x2c(%rbp), %ecx
movq -0x68(%rbp), %rax
movl %ecx, 0x4(%rax)
movl -0x30(%rbp), %ecx
movq -0x68(%rbp), %rax
movl %ecx, 0x8(%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x59a8
movl -0x18(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rdi
movl -0x18(%rbp), %eax
movl %eax, %esi
movl $0xc, %edx
leaq 0x106b(%rip), %rcx      # 0x6b50
callq 0x1090
cmpl $0x0, -0x24(%rbp)
je 0x5af2
jmp 0x5b11
leaq 0x732e(%rip), %rdi      # 0xce27
leaq 0x67a9(%rip), %rsi      # 0xc2a9
movl $0x649, %edx            # imm = 0x649
leaq 0x6a73(%rip), %rcx      # 0xc57f
callq 0x10f0
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl -0x24(%rbp), %ecx
subl $0x1, %ecx
shrl %ecx
cmpl %ecx, %eax
jb 0x5b25
jmp 0x5b44
leaq 0x6a88(%rip), %rdi      # 0xc5b4
leaq 0x6776(%rip), %rsi      # 0xc2a9
movl $0x64a, %edx            # imm = 0x64A
leaq 0x6a40(%rip), %rcx      # 0xc57f
callq 0x10f0
movl -0x24(%rbp), %ecx
subl $0x1, %ecx
shrl %ecx
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
movl $0x1, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl (%rcx), %eax
ja 0x5bba
movq -0x50(%rbp), %rax
movq 0x70(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movb (%rax), %cl
andb $-0x2, %cl
orb $0x0, %cl
movb %cl, (%rax)
movq -0x60(%rbp), %rax
movb (%rax), %cl
andb $-0x3, %cl
orb $0x0, %cl
movb %cl, (%rax)
movq -0x60(%rbp), %rax
movb (%rax), %cl
andb $-0x5, %cl
orb $0x0, %cl
movb %cl, (%rax)
movq -0x60(%rbp), %rax
movl $0x0, 0x4(%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5b59
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jae 0x5c23
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movl -0x14(%rbp), %ecx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x50(%rbp), %rax
movq 0x70(%rax), %rax
movq -0x68(%rbp), %rcx
movl (%rcx), %ecx
shrl %ecx
movl %ecx, %ecx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movb (%rax), %cl
andb $-0x5, %cl
orb $0x4, %cl
movb %cl, (%rax)
movl -0x14(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x4(%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5bc1
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jae 0x5cd2
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movl (%rax), %eax
cmpl -0x1c(%rbp), %eax
jae 0x5c5d
jmp 0x5c7c
leaq 0x697a(%rip), %rdi      # 0xc5de
leaq 0x663e(%rip), %rsi      # 0xc2a9
movl $0x667, %edx            # imm = 0x667
leaq 0x6908(%rip), %rcx      # 0xc57f
callq 0x10f0
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
movl (%rcx), %ecx
movl (%rax,%rcx,4), %ecx
movq -0x58(%rbp), %rax
movl %ecx, (%rax)
movq -0x50(%rbp), %rax
movq 0x70(%rax), %rax
movq -0x58(%rbp), %rcx
movl (%rcx), %ecx
shrl %ecx
movl %ecx, %ecx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movb (%rax), %cl
andb $-0x2, %cl
orb $0x1, %cl
movb %cl, (%rax)
movl -0x14(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x4(%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5c2a
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jae 0x5d4e
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
movl (%rcx), %ecx
movl (%rax,%rcx,4), %ecx
movq -0x58(%rbp), %rax
movl %ecx, (%rax)
movq -0x50(%rbp), %rax
movq 0x70(%rax), %rax
movq -0x58(%rbp), %rcx
movl (%rcx), %ecx
shrl %ecx
movl %ecx, %ecx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movb (%rax), %cl
andb $-0x3, %cl
orb $0x2, %cl
movb %cl, (%rax)
movl -0x14(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x4(%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5cd9
jmp 0x5d50
movl -0x1c(%rbp), %eax
shlq $0x2, %rax
movq %rax, -0x80(%rbp)
movq -0x50(%rbp), %rax
movq 0xc8(%rax), %rax
movq -0x50(%rbp), %rcx
movq 0xb8(%rcx), %rdi
movq -0x10(%rbp), %rsi
movq -0x80(%rbp), %rdx
callq *%rax
movq $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl (%rcx), %eax
ja 0x5e8c
movq -0x50(%rbp), %rax
movq 0x70(%rax), %rax
movl -0x14(%rbp), %ecx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movb (%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x5dd1
movq -0x60(%rbp), %rax
movb (%rax), %al
shrb %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x5dd3
jmp 0x5df2
leaq 0x681c(%rip), %rdi      # 0xc5f6
leaq 0x64c8(%rip), %rsi      # 0xc2a9
movl $0x67f, %edx            # imm = 0x67F
leaq 0x6792(%rip), %rcx      # 0xc57f
callq 0x10f0
movq -0x60(%rbp), %rax
movb (%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x5e15
movq -0x60(%rbp), %rax
movb (%rax), %al
shrb $0x2, %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x5e17
jmp 0x5e36
leaq 0x67f6(%rip), %rdi      # 0xc614
leaq 0x6484(%rip), %rsi      # 0xc2a9
movl $0x680, %edx            # imm = 0x680
leaq 0x674e(%rip), %rcx      # 0xc57f
callq 0x10f0
movq -0x60(%rbp), %rax
movb (%rax), %al
shrb %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x5e5b
movq -0x60(%rbp), %rax
movb (%rax), %al
shrb $0x2, %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x5e5d
jmp 0x5e7c
leaq 0x67cc(%rip), %rdi      # 0xc630
leaq 0x643e(%rip), %rsi      # 0xc2a9
movl $0x681, %edx            # imm = 0x681
leaq 0x6708(%rip), %rcx      # 0xc57f
callq 0x10f0
jmp 0x5e7e
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5d8a
movq -0x8(%rbp), %rdi
callq 0x5250
cmpl $0x0, %eax
je 0x5e9c
jmp 0x5ebb
leaq 0x67a9(%rip), %rdi      # 0xc64c
leaq 0x63ff(%rip), %rsi      # 0xc2a9
movl $0x684, %edx            # imm = 0x684
leaq 0x66c9(%rip), %rcx      # 0xc57f
callq 0x10f0
movq -0x8(%rbp), %rdi
callq 0x3fc0
cmpq $0x0, %rax
jne 0x5ecc
jmp 0x5eeb
leaq 0x6795(%rip), %rdi      # 0xc668
leaq 0x63cf(%rip), %rsi      # 0xc2a9
movl $0x685, %edx            # imm = 0x685
leaq 0x6699(%rip), %rcx      # 0xc57f
callq 0x10f0
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)