// File: biotomas[P]ipasir/sat/picosat961/picosat-961/picosat.c
// Function: reduce
static void
reduce (PS * ps, unsigned percentage)
{
  unsigned redcount, lcollect, collect, target;
#ifdef STATS
  size_t bytes_collected;
#endif
  Cls **p, *c;

  assert (ps->rhead == ps->resolved);

  ps->lastreduceconflicts = ps->conflicts;

  assert (percentage <= 100);
  LOG ( fprintf (ps->out, 
                "%sreducing %u%% learned clauses\n",
		ps->prefix, percentage));

  while (ps->nlclauses - ps->llocked > (unsigned)(ps->eor - ps->resolved))
    ENLARGE (ps->resolved, ps->rhead, ps->eor);

  collect = 0;
  lcollect = 0;

  for (p = ((ps->fsimplify < ps->fixed) ? SOC : ps->lclauses); p != EOC; p = NXC (p))
    {
      c = *p;
      if (!c)
	continue;

#ifdef TRACE
      if (c->collected)
	continue;
#endif

      if (c->locked)
	continue;

      assert (!c->collect);
      if (ps->fsimplify < ps->fixed && clause_is_toplevel_satisfied (ps, c))
	{
	  mark_clause_to_be_collected (c);
	  collect++;

	  if (c->learned && c->size > 2)
	    lcollect++;

	  continue;
	}

      if (!c->learned)
	continue;

      if (c->size <= 2)
	continue;

      assert (ps->rhead < ps->eor);
      *ps->rhead++ = c;
    }
  assert (ps->rhead <= ps->eor);

  ps->fsimplify = ps->fixed;

  redcount = ps->rhead - ps->resolved;
  SORT (Cls *, cmp_glue_activity_size, ps->resolved, redcount);

  assert (ps->nlclauses >= lcollect);
  target = ps->nlclauses - lcollect + 1;

  target = (percentage * target + 99) / 100;

  if (target >= redcount)
    target = redcount;

  ps->rhead = ps->resolved + target;
  while (ps->rhead > ps->resolved)
    {
      c = *--ps->rhead;
      mark_clause_to_be_collected (c);

      collect++;
      if (c->learned && c->size > 2)	/* just for consistency */
	lcollect++;
    }

  if (collect)
    {
      ps->reductions++;
#ifdef STATS
      bytes_collected = 
#endif
      collect_clauses (ps);
#ifdef STATS
      ps->rrecycled += bytes_collected;
#endif
      report (ps, 2, '-');
    }

  if (!lcollect)
    inc_lreduce (ps);		/* avoid dead lock */

  assert (ps->rhead == ps->resolved);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x2a8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2a0(%rcx), %rax
jne 0xbf5c
jmp 0xbf7b
leaq 0x12857(%rip), %rdi     # 0x1e7ba
leaq 0x1133a(%rip), %rsi     # 0x1d2a4
movl $0x1577, %edx           # imm = 0x1577
leaq 0x13ac7(%rip), %rcx     # 0x1fa3d
callq 0x10b0
movq -0x8(%rbp), %rax
movl 0x41c(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x3b4(%rax)
cmpl $0x64, -0xc(%rbp)
ja 0xbf97
jmp 0xbfb6
leaq 0x13abf(%rip), %rdi     # 0x1fa5d
leaq 0x112ff(%rip), %rsi     # 0x1d2a4
movl $0x157b, %edx           # imm = 0x157B
leaq 0x13a8c(%rip), %rcx     # 0x1fa3d
callq 0x10b0
jmp 0xbfb8
jmp 0xbfba
jmp 0xbfbc
movq -0x8(%rbp), %rax
movl 0x42c(%rax), %eax
movq -0x8(%rbp), %rcx
subl 0x3b8(%rcx), %eax
movq -0x8(%rbp), %rcx
movq 0x2b0(%rcx), %rcx
movq -0x8(%rbp), %rdx
movq 0x2a0(%rdx), %rdx
subq %rdx, %rcx
sarq $0x3, %rcx
cmpl %ecx, %eax
jbe 0xc125
jmp 0xbff7
movq -0x8(%rbp), %rax
movq 0x2b0(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x2a0(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0xc02a
movl -0x34(%rbp), %eax
shll %eax
movl %eax, -0x138(%rbp)
jmp 0xc037
movl $0x1, %eax
movl %eax, -0x138(%rbp)
jmp 0xc037
movl -0x138(%rbp), %eax
movl %eax, %eax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rax
movq 0x2a8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x2a0(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rax
movq 0x2a0(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2b0(%rcx), %rax
ja 0xc07d
jmp 0xc09c
leaq 0x127cc(%rip), %rdi     # 0x1e850
leaq 0x11219(%rip), %rsi     # 0x1d2a4
movl $0x1581, %edx           # imm = 0x1581
leaq 0x139a6(%rip), %rcx     # 0x1fa3d
callq 0x10b0
jmp 0xc09e
movl -0x34(%rbp), %eax
shlq $0x3, %rax
movq %rax, -0x50(%rbp)
movq -0x40(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x2a0(%rax), %rsi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
callq 0x4f30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2a0(%rax)
movq -0x8(%rbp), %rax
movq 0x2a0(%rax), %rcx
movl -0x44(%rbp), %eax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2a8(%rax)
movq -0x8(%rbp), %rax
movq 0x2a0(%rax), %rcx
movq -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2b0(%rax)
jmp 0xbfbc
movl $0x0, -0x18(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x8(%rbp), %rax
movl 0x39c(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x3e8(%rcx), %eax
jae 0xc197
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x1e8(%rcx), %rax
jne 0xc175
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rax
movq %rax, -0x140(%rbp)
jmp 0xc187
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rax
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rax
movq %rax, -0x148(%rbp)
jmp 0xc1a9
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rax
movq %rax, -0x148(%rbp)
movq -0x148(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x200(%rcx), %rax
je 0xc345
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0xc1e0
jmp 0xc2fd
movq -0x30(%rbp), %rax
movl 0x4(%rax), %eax
shrl $0x2, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xc1f7
jmp 0xc2fd
movq -0x30(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0xc208
jmp 0xc227
leaq 0x121e5(%rip), %rdi     # 0x1e3f4
leaq 0x1108e(%rip), %rsi     # 0x1d2a4
movl $0x1594, %edx           # imm = 0x1594
leaq 0x1381b(%rip), %rcx     # 0x1fa3d
callq 0x10b0
movq -0x8(%rbp), %rax
movl 0x39c(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x3e8(%rcx), %eax
jae 0xc286
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x11ed0
cmpl $0x0, %eax
je 0xc286
movq -0x30(%rbp), %rdi
callq 0x11f80
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x30(%rbp), %rax
movl 0x4(%rax), %eax
shrl %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xc284
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jbe 0xc284
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xc2fd
movq -0x30(%rbp), %rax
movl 0x4(%rax), %eax
shrl %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0xc299
jmp 0xc2fd
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
ja 0xc2a4
jmp 0xc2fd
movq -0x8(%rbp), %rax
movq 0x2a8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2b0(%rcx), %rax
jae 0xc2be
jmp 0xc2dd
leaq 0x125a7(%rip), %rdi     # 0x1e86c
leaq 0x10fd8(%rip), %rsi     # 0x1d2a4
movl $0x15a6, %edx           # imm = 0x15A6
leaq 0x13765(%rip), %rcx     # 0x1fa3d
callq 0x10b0
movq -0x30(%rbp), %rcx
movq -0x8(%rbp), %rdx
movq 0x2a8(%rdx), %rax
movq %rax, %rsi
addq $0x8, %rsi
movq %rsi, 0x2a8(%rdx)
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x8, %rax
movq -0x8(%rbp), %rcx
cmpq 0x1e8(%rcx), %rax
jne 0xc326
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rax
movq %rax, -0x150(%rbp)
jmp 0xc335
movq -0x28(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0xc1b4
movq -0x8(%rbp), %rax
movq 0x2a8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2b0(%rcx), %rax
ja 0xc35f
jmp 0xc37e
leaq 0x12b1c(%rip), %rdi     # 0x1ee82
leaq 0x10f37(%rip), %rsi     # 0x1d2a4
movl $0x15a9, %edx           # imm = 0x15A9
leaq 0x136c4(%rip), %rcx     # 0x1fa3d
callq 0x10b0
movq -0x8(%rbp), %rax
movl 0x3e8(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x39c(%rax)
movq -0x8(%rbp), %rax
movq 0x2a8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x2a0(%rcx), %rcx
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x2a0(%rax), %rax
movq %rax, -0x60(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x64(%rbp)
movl $0x0, -0x68(%rbp)
movl -0x64(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x6c(%rbp)
movq -0x8(%rbp), %rax
movq 0x478(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x470(%rcx), %rax
jne 0xc3f1
jmp 0xc410
leaq 0x120c0(%rip), %rdi     # 0x1e4b8
leaq 0x10ea5(%rip), %rsi     # 0x1d2a4
movl $0x15ae, %edx           # imm = 0x15AE
leaq 0x13632(%rip), %rcx     # 0x1fa3d
callq 0x10b0
movl -0x6c(%rbp), %eax
subl -0x68(%rbp), %eax
cmpl $0xa, %eax
jg 0xc420
jmp 0xcb1c
jmp 0xc422
movl -0x68(%rbp), %eax
addl -0x6c(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x70(%rbp)
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq -0x8(%rax,%rcx,8), %rax
movq %rax, -0x88(%rbp)
movq -0x60(%rbp), %rax
movslq -0x70(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq %rdx, -0x8(%rax,%rcx,8)
movq -0x88(%rbp), %rdx
movq -0x60(%rbp), %rax
movslq -0x70(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0xc475
movq -0x8(%rbp), %rdi
movq -0x60(%rbp), %rax
movslq -0x68(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq -0x8(%rax,%rcx,8), %rdx
callq 0x1b2b0
cmpl $0x0, %eax
jle 0xc4e0
jmp 0xc49e
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq -0x8(%rax,%rcx,8), %rax
movq %rax, -0x90(%rbp)
movq -0x60(%rbp), %rax
movslq -0x68(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq %rdx, -0x8(%rax,%rcx,8)
movq -0x90(%rbp), %rdx
movq -0x60(%rbp), %rax
movslq -0x68(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0xc4e0
jmp 0xc4e2
jmp 0xc4e4
movq -0x8(%rbp), %rdi
movq -0x60(%rbp), %rax
movslq -0x68(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
callq 0x1b2b0
cmpl $0x0, %eax
jle 0xc54c
jmp 0xc50c
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x60(%rbp), %rax
movslq -0x68(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x98(%rbp), %rdx
movq -0x60(%rbp), %rax
movslq -0x68(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0xc54c
jmp 0xc54e
jmp 0xc550
movq -0x8(%rbp), %rdi
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq -0x8(%rax,%rcx,8), %rsi
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
callq 0x1b2b0
cmpl $0x0, %eax
jle 0xc5bb
jmp 0xc579
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0xa0(%rbp)
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq -0x8(%rax,%rcx,8), %rdx
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0xa0(%rbp), %rdx
movq -0x60(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq %rdx, -0x8(%rax,%rcx,8)
jmp 0xc5bb
jmp 0xc5bd
jmp 0xc5bf
movl -0x68(%rbp), %eax
addl $0x1, %eax
subl $0x1, %eax
movl %eax, -0x7c(%rbp)
movl -0x6c(%rbp), %eax
subl $0x1, %eax
movl %eax, -0xac(%rbp)
movq -0x60(%rbp), %rax
movslq -0xac(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0xa8(%rbp)
jmp 0xc5ef
movq -0x8(%rbp), %rdi
movq -0x60(%rbp), %rax
movl -0x7c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x7c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
movq -0xa8(%rbp), %rdx
callq 0x1b2b0
cmpl $0x0, %eax
jge 0xc61a
jmp 0xc5ef
jmp 0xc61c
movq -0x8(%rbp), %rdi
movq -0xa8(%rbp), %rsi
movq -0x60(%rbp), %rax
movl -0xac(%rbp), %ecx
addl $-0x1, %ecx
movl %ecx, -0xac(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x1b2b0
cmpl $0x0, %eax
jge 0xc65f
movl -0xac(%rbp), %eax
movl -0x68(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jne 0xc65d
jmp 0xc65f
jmp 0xc61c
movl -0x7c(%rbp), %eax
cmpl -0xac(%rbp), %eax
jl 0xc66c
jmp 0xc6b7
jmp 0xc66e
movq -0x60(%rbp), %rax
movslq -0xac(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0xb8(%rbp)
movq -0x60(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x60(%rbp), %rax
movslq -0xac(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0xb8(%rbp), %rdx
movq -0x60(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0xc5ed
jmp 0xc6b9
movq -0x60(%rbp), %rax
movl -0x6c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0xc0(%rbp)
movq -0x60(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x60(%rbp), %rax
movl -0x6c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movq -0xc0(%rbp), %rdx
movq -0x60(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0xc703
movl -0x7c(%rbp), %eax
subl -0x68(%rbp), %eax
movl -0x6c(%rbp), %ecx
subl -0x7c(%rbp), %ecx
cmpl %ecx, %eax
jge 0xc72d
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
movl -0x6c(%rbp), %eax
movl %eax, -0x78(%rbp)
movl -0x7c(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x6c(%rbp)
jmp 0xc745
movl -0x68(%rbp), %eax
movl %eax, -0x74(%rbp)
movl -0x7c(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x78(%rbp)
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x68(%rbp)
movl -0x6c(%rbp), %eax
subl -0x68(%rbp), %eax
cmpl $0xa, %eax
jle 0xca9e
movl -0x78(%rbp), %eax
subl -0x74(%rbp), %eax
cmpl $0xa, %eax
jle 0xc761
jmp 0xc780
leaq 0x11d69(%rip), %rdi     # 0x1e4d1
leaq 0x10b35(%rip), %rsi     # 0x1d2a4
movl $0x15ae, %edx           # imm = 0x15AE
leaq 0x132c2(%rip), %rcx     # 0x1fa3d
callq 0x10b0
movq -0x8(%rbp), %rax
movq 0x478(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x480(%rcx), %rax
jne 0xc8f0
jmp 0xc79e
movq -0x8(%rbp), %rax
movq 0x480(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x470(%rcx), %rcx
subq %rcx, %rax
sarq $0x2, %rax
movl %eax, -0xc4(%rbp)
cmpl $0x0, -0xc4(%rbp)
je 0xc7da
movl -0xc4(%rbp), %eax
shll %eax
movl %eax, -0x154(%rbp)
jmp 0xc7e7
movl $0x1, %eax
movl %eax, -0x154(%rbp)
jmp 0xc7e7
movl -0x154(%rbp), %eax
movl %eax, %eax
movq %rax, -0xd0(%rbp)
movq -0x8(%rbp), %rax
movq 0x478(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x470(%rcx), %rcx
subq %rcx, %rax
sarq $0x2, %rax
movl %eax, -0xd4(%rbp)
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x480(%rcx), %rax
ja 0xc833
jmp 0xc852
leaq 0x11cb6(%rip), %rdi     # 0x1e4f0
leaq 0x10a63(%rip), %rsi     # 0x1d2a4
movl $0x15ae, %edx           # imm = 0x15AE
leaq 0x131f0(%rip), %rcx     # 0x1fa3d
callq 0x10b0
jmp 0xc854
movl -0xc4(%rbp), %eax
shlq $0x2, %rax
movq %rax, -0xe0(%rbp)
movq -0xd0(%rbp), %rax
shlq $0x2, %rax
movq %rax, -0xe8(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rsi
movq -0xe0(%rbp), %rdx
movq -0xe8(%rbp), %rcx
callq 0x4f30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x470(%rax)
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rcx
movl -0xd4(%rbp), %eax
shlq $0x2, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x478(%rax)
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rcx
movq -0xd0(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x480(%rax)
jmp 0xc8f0
movl -0x74(%rbp), %ecx
movq -0x8(%rbp), %rdx
movq 0x478(%rdx), %rax
movq %rax, %rsi
addq $0x4, %rsi
movq %rsi, 0x478(%rdx)
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movq 0x478(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x480(%rcx), %rax
jne 0xca7e
jmp 0xc92c
movq -0x8(%rbp), %rax
movq 0x480(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x470(%rcx), %rcx
subq %rcx, %rax
sarq $0x2, %rax
movl %eax, -0xec(%rbp)
cmpl $0x0, -0xec(%rbp)
je 0xc968
movl -0xec(%rbp), %eax
shll %eax
movl %eax, -0x158(%rbp)
jmp 0xc975
movl $0x1, %eax
movl %eax, -0x158(%rbp)
jmp 0xc975
movl -0x158(%rbp), %eax
movl %eax, %eax
movq %rax, -0xf8(%rbp)
movq -0x8(%rbp), %rax
movq 0x478(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x470(%rcx), %rcx
subq %rcx, %rax
sarq $0x2, %rax
movl %eax, -0xfc(%rbp)
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x480(%rcx), %rax
ja 0xc9c1
jmp 0xc9e0
leaq 0x11b28(%rip), %rdi     # 0x1e4f0
leaq 0x108d5(%rip), %rsi     # 0x1d2a4
movl $0x15ae, %edx           # imm = 0x15AE
leaq 0x13062(%rip), %rcx     # 0x1fa3d
callq 0x10b0
jmp 0xc9e2
movl -0xec(%rbp), %eax
shlq $0x2, %rax
movq %rax, -0x108(%rbp)
movq -0xf8(%rbp), %rax
shlq $0x2, %rax
movq %rax, -0x110(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rsi
movq -0x108(%rbp), %rdx
movq -0x110(%rbp), %rcx
callq 0x4f30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x470(%rax)
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rcx
movl -0xfc(%rbp), %eax
shlq $0x2, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x478(%rax)
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rcx
movq -0xf8(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x480(%rax)
jmp 0xca7e
movl -0x78(%rbp), %ecx
movq -0x8(%rbp), %rdx
movq 0x478(%rdx), %rax
movq %rax, %rsi
addq $0x4, %rsi
movq %rsi, 0x478(%rdx)
movl %ecx, (%rax)
jmp 0xcb15
movl -0x78(%rbp), %eax
subl -0x74(%rbp), %eax
cmpl $0xa, %eax
jle 0xcab7
movl -0x74(%rbp), %eax
movl %eax, -0x68(%rbp)
movl -0x78(%rbp), %eax
movl %eax, -0x6c(%rbp)
jmp 0xcb13
movq -0x8(%rbp), %rax
movq 0x478(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x470(%rcx), %rax
jbe 0xcb0f
movq -0x8(%rbp), %rcx
movq 0x478(%rcx), %rax
movq %rax, %rdx
addq $-0x4, %rdx
movq %rdx, 0x478(%rcx)
movl -0x4(%rax), %eax
movl %eax, -0x6c(%rbp)
movq -0x8(%rbp), %rcx
movq 0x478(%rcx), %rax
movq %rax, %rdx
addq $-0x4, %rdx
movq %rdx, 0x478(%rcx)
movl -0x4(%rax), %eax
movl %eax, -0x68(%rbp)
jmp 0xcb11
jmp 0xcb1a
jmp 0xcb13
jmp 0xcb15
jmp 0xc422
jmp 0xcb1c
jmp 0xcb1e
movl $0x0, -0x11c(%rbp)
movl -0x64(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x120(%rbp)
movl -0x120(%rbp), %eax
movl %eax, -0x124(%rbp)
movl -0x124(%rbp), %eax
cmpl -0x11c(%rbp), %eax
jle 0xcbe9
jmp 0xcb54
movq -0x8(%rbp), %rdi
movq -0x60(%rbp), %rax
movslq -0x124(%rbp), %rcx
movq -0x8(%rax,%rcx,8), %rsi
movq -0x60(%rbp), %rax
movslq -0x124(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
callq 0x1b2b0
cmpl $0x0, %eax
jle 0xcbd1
jmp 0xcb83
movq -0x60(%rbp), %rax
movslq -0x124(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x130(%rbp)
movq -0x60(%rbp), %rax
movslq -0x124(%rbp), %rcx
movq -0x8(%rax,%rcx,8), %rdx
movq -0x60(%rbp), %rax
movslq -0x124(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x130(%rbp), %rdx
movq -0x60(%rbp), %rax
movslq -0x124(%rbp), %rcx
movq %rdx, -0x8(%rax,%rcx,8)
jmp 0xcbd1
jmp 0xcbd3
jmp 0xcbd5
movl -0x124(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x124(%rbp)
jmp 0xcb40
movl -0x11c(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x124(%rbp)
movl -0x124(%rbp), %eax
cmpl -0x120(%rbp), %eax
jg 0xccb3
movl -0x124(%rbp), %eax
movl %eax, -0x128(%rbp)
movq -0x60(%rbp), %rax
movslq -0x124(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x118(%rbp)
movq -0x8(%rbp), %rdi
movq -0x118(%rbp), %rsi
movq -0x60(%rbp), %rax
movl -0x128(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x1b2b0
cmpl $0x0, %eax
jge 0xcc89
movq -0x60(%rbp), %rax
movl -0x128(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
movq -0x60(%rbp), %rax
movslq -0x128(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x128(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x128(%rbp)
jmp 0xcc2c
movq -0x118(%rbp), %rdx
movq -0x60(%rbp), %rax
movslq -0x128(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x124(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x124(%rbp)
jmp 0xcbf8
jmp 0xccb5
movq -0x8(%rbp), %rax
movq 0x478(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x470(%rcx), %rax
jne 0xcccf
jmp 0xccee
leaq 0x117e2(%rip), %rdi     # 0x1e4b8
leaq 0x105c7(%rip), %rsi     # 0x1d2a4
movl $0x15ae, %edx           # imm = 0x15AE
leaq 0x12d54(%rip), %rcx     # 0x1fa3d
callq 0x10b0
jmp 0xccf0
movl $0x0, -0x134(%rbp)
movl -0x134(%rbp), %eax
movl -0x64(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0xcd6f
movq -0x8(%rbp), %rdi
movq -0x60(%rbp), %rax
movslq -0x134(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x60(%rbp), %rax
movl -0x134(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x1b2b0
cmpl $0x0, %eax
jg 0xcd3d
jmp 0xcd5c
leaq 0x12d2b(%rip), %rdi     # 0x1fa6f
leaq 0x10559(%rip), %rsi     # 0x1d2a4
movl $0x15ae, %edx           # imm = 0x15AE
leaq 0x12ce6(%rip), %rcx     # 0x1fa3d
callq 0x10b0
jmp 0xcd5e
movl -0x134(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x134(%rbp)
jmp 0xccfa
jmp 0xcd71
jmp 0xcd73
movq -0x8(%rbp), %rax
movl 0x42c(%rax), %eax
cmpl -0x14(%rbp), %eax
jb 0xcd84
jmp 0xcda3
leaq 0x12d1d(%rip), %rdi     # 0x1faa8
leaq 0x10512(%rip), %rsi     # 0x1d2a4
movl $0x15b0, %edx           # imm = 0x15B0
leaq 0x12c9f(%rip), %rcx     # 0x1fa3d
callq 0x10b0
movq -0x8(%rbp), %rax
movl 0x42c(%rax), %eax
subl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movl -0xc(%rbp), %eax
imull -0x1c(%rbp), %eax
addl $0x63, %eax
movl $0x64, %ecx
xorl %edx, %edx
divl %ecx
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x10(%rbp), %eax
jb 0xcdda
movl -0x10(%rbp), %eax
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq 0x2a0(%rax), %rcx
movl -0x1c(%rbp), %eax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2a8(%rax)
movq -0x8(%rbp), %rax
movq 0x2a8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2a0(%rcx), %rax
jbe 0xce6a
movq -0x8(%rbp), %rcx
movq 0x2a8(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x2a8(%rcx)
movq -0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x11f80
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x30(%rbp), %rax
movl 0x4(%rax), %eax
shrl %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xce68
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jbe 0xce68
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xcdfa
cmpl $0x0, -0x18(%rbp)
je 0xce9f
movq -0x8(%rbp), %rax
movl 0x3a4(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x3a4(%rax)
movq -0x8(%rbp), %rdi
callq 0x11fe0
movq -0x8(%rbp), %rdi
movl $0x2, %esi
movl $0x2d, %edx
callq 0x79c0
cmpl $0x0, -0x14(%rbp)
jne 0xceae
movq -0x8(%rbp), %rdi
callq 0x17930
movq -0x8(%rbp), %rax
movq 0x2a8(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x2a0(%rcx), %rax
jne 0xcec8
jmp 0xcee7
leaq 0x118eb(%rip), %rdi     # 0x1e7ba
leaq 0x103ce(%rip), %rsi     # 0x1d2a4
movl $0x15d3, %edx           # imm = 0x15D3
leaq 0x12b5b(%rip), %rcx     # 0x1fa3d
callq 0x10b0
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq