// File: marxn[P]pupp/3rdparty/gmp/mpn/toom8h_mul.c
// Function: _gmpn_toom8h_mul
void
mpn_toom8h_mul   (mp_ptr pp,
		  mp_srcptr ap, mp_size_t an,
		  mp_srcptr bp, mp_size_t bn, mp_ptr scratch)
{
  mp_size_t n, s, t;
  int p, q, half;
  int sign;

  /***************************** decomposition *******************************/

  ASSERT (an >= bn);
  /* Can not handle too small operands */
  ASSERT (bn >= 86);
  /* Can not handle too much unbalancement */
  ASSERT (an <= bn*4);
  ASSERT (GMP_NUMB_BITS > 11*3 || an*4 <= bn*11);
  ASSERT (GMP_NUMB_BITS > 10*3 || an*1 <= bn* 2);
  ASSERT (GMP_NUMB_BITS >  9*3 || an*2 <= bn* 3);

  /* Limit num/den is a rational number between
     (16/15)^(log(6)/log(2*6-1)) and (16/15)^(log(8)/log(2*8-1))             */
#define LIMIT_numerator (21)
#define LIMIT_denominat (20)

  if (LIKELY (an == bn) || an * (LIMIT_denominat>>1) < LIMIT_numerator * (bn>>1) ) /* is 8*... < 8*... */
    {
      half = 0;
      n = 1 + ((an - 1)>>3);
      p = q = 7;
      s = an - 7 * n;
      t = bn - 7 * n;
    }
  else
    {
      if (an * 13 < 16 * bn) /* (an*7*LIMIT_numerator<LIMIT_denominat*9*bn) */
	{ p = 9; q = 8; }
      else if (GMP_NUMB_BITS <= 9*3 ||
	       an *(LIMIT_denominat>>1) < (LIMIT_numerator/7*9) * (bn>>1))
	{ p = 9; q = 7; }
      else if (an * 10 < 33 * (bn>>1)) /* (an*3*LIMIT_numerator<LIMIT_denominat*5*bn) */
	{ p =10; q = 7; }
      else if (GMP_NUMB_BITS <= 10*3 ||
	       an * (LIMIT_denominat/5) < (LIMIT_numerator/3) * bn)
	{ p =10; q = 6; }
      else if (an * 6 < 13 * bn) /*(an * 5 * LIMIT_numerator < LIMIT_denominat *11 * bn)*/
	{ p =11; q = 6; }
      else if (GMP_NUMB_BITS <= 11*3 ||
	       an * 4 < 9 * bn)
	{ p =11; q = 5; }
      else if (an *(LIMIT_numerator/3) < LIMIT_denominat * bn)  /* is 4*... <12*... */
	{ p =12; q = 5; }
      else if (GMP_NUMB_BITS <= 12*3 ||
	       an * 9 < 28 * bn )  /* is 4*... <12*... */
	{ p =12; q = 4; }
      else
	{ p =13; q = 4; }

      half = (p+q)&1;
      n = 1 + (q * an >= p * bn ? (an - 1) / (size_t) p : (bn - 1) / (size_t) q);
      p--; q--;

      s = an - p * n;
      t = bn - q * n;

      if(half) { /* Recover from badly chosen splitting */
	if (UNLIKELY (s<1)) {p--; s+=n; half=0;}
	else if (UNLIKELY (t<1)) {q--; t+=n; half=0;}
      }
    }
#undef LIMIT_numerator
#undef LIMIT_denominat

  ASSERT (0 < s && s <= n);
  ASSERT (0 < t && t <= n);
  ASSERT (half || s + t > 3);
  ASSERT (n > 2);

#define   r6    (pp + 3 * n)			/* 3n+1 */
#define   r4    (pp + 7 * n)			/* 3n+1 */
#define   r2    (pp +11 * n)			/* 3n+1 */
#define   r0    (pp +15 * n)			/* s+t <= 2*n */
#define   r7    (scratch)			/* 3n+1 */
#define   r5    (scratch + 3 * n + 1)		/* 3n+1 */
#define   r3    (scratch + 6 * n + 2)		/* 3n+1 */
#define   r1    (scratch + 9 * n + 3)		/* 3n+1 */
#define   v0    (pp +11 * n)			/* n+1 */
#define   v1    (pp +12 * n+1)			/* n+1 */
#define   v2    (pp +13 * n+2)			/* n+1 */
#define   v3    (scratch +12 * n + 4)		/* n+1 */
#define   wsi   (scratch +12 * n + 4)		/* 3n+1 */
#define   wse   (scratch +13 * n + 5)		/* 2n+1 */

  /* Alloc also 3n+1 limbs for wsi... toom_interpolate_16pts may
     need all of them  */
/*   if (scratch == NULL) */
/*     scratch = TMP_SALLOC_LIMBS(mpn_toom8_sqr_itch(n * 8)); */
  ASSERT (15 * n + 6 <= mpn_toom8h_mul_itch (an, bn));
  ASSERT (15 * n + 6 <= mpn_toom8_sqr_itch (n * 8));

  /********************** evaluation and recursive calls *********************/

  /* $\pm1/8$ */
  sign = mpn_toom_eval_pm2rexp (v2, v0, p, ap, n, s, 3, pp) ^
	 mpn_toom_eval_pm2rexp (v3, v1, q, bp, n, t, 3, pp);
  /* A(-1/8)*B(-1/8)*8^. */ /* A(+1/8)*B(+1/8)*8^. */
  TOOM8H_MUL_N_REC(pp, v0, v1, 2, r7, v2, v3, n + 1, wse);
  mpn_toom_couple_handling (r7, 2 * n + 1 + BIT_CORRECTION, pp, sign, n, 3*(1+half), 3*(half));

  /* $\pm1/4$ */
  sign = mpn_toom_eval_pm2rexp (v2, v0, p, ap, n, s, 2, pp) ^
	 mpn_toom_eval_pm2rexp (v3, v1, q, bp, n, t, 2, pp);
  /* A(-1/4)*B(-1/4)*4^. */ /* A(+1/4)*B(+1/4)*4^. */
  TOOM8H_MUL_N_REC(pp, v0, v1, 2, r5, v2, v3, n + 1, wse);
  mpn_toom_couple_handling (r5, 2 * n + 1, pp, sign, n, 2*(1+half), 2*(half));

  /* $\pm2$ */
  sign = mpn_toom_eval_pm2 (v2, v0, p, ap, n, s, pp) ^
	 mpn_toom_eval_pm2 (v3, v1, q, bp, n, t, pp);
  /* A(-2)*B(-2) */ /* A(+2)*B(+2) */
  TOOM8H_MUL_N_REC(pp, v0, v1, 2, r3, v2, v3, n + 1, wse);
  mpn_toom_couple_handling (r3, 2 * n + 1, pp, sign, n, 1, 2);

  /* $\pm8$ */
  sign = mpn_toom_eval_pm2exp (v2, v0, p, ap, n, s, 3, pp) ^
	 mpn_toom_eval_pm2exp (v3, v1, q, bp, n, t, 3, pp);
  /* A(-8)*B(-8) */ /* A(+8)*B(+8) */
  TOOM8H_MUL_N_REC(pp, v0, v1, 2, r1, v2, v3, n + 1, wse);
  mpn_toom_couple_handling (r1, 2 * n + 1 + BIT_CORRECTION, pp, sign, n, 3, 6);

  /* $\pm1/2$ */
  sign = mpn_toom_eval_pm2rexp (v2, v0, p, ap, n, s, 1, pp) ^
	 mpn_toom_eval_pm2rexp (v3, v1, q, bp, n, t, 1, pp);
  /* A(-1/2)*B(-1/2)*2^. */ /* A(+1/2)*B(+1/2)*2^. */
  TOOM8H_MUL_N_REC(pp, v0, v1, 2, r6, v2, v3, n + 1, wse);
  mpn_toom_couple_handling (r6, 2 * n + 1, pp, sign, n, 1+half, half);

  /* $\pm1$ */
  sign = mpn_toom_eval_pm1 (v2, v0, p, ap, n, s,    pp);
  if (GMP_NUMB_BITS > 12*3 && UNLIKELY (q == 3))
    sign ^= mpn_toom_eval_dgr3_pm1 (v3, v1, bp, n, t,    pp);
  else
    sign ^= mpn_toom_eval_pm1 (v3, v1, q, bp, n, t,    pp);
  /* A(-1)*B(-1) */ /* A(1)*B(1) */
  TOOM8H_MUL_N_REC(pp, v0, v1, 2, r4, v2, v3, n + 1, wse);
  mpn_toom_couple_handling (r4, 2 * n + 1, pp, sign, n, 0, 0);

  /* $\pm4$ */
  sign = mpn_toom_eval_pm2exp (v2, v0, p, ap, n, s, 2, pp) ^
	 mpn_toom_eval_pm2exp (v3, v1, q, bp, n, t, 2, pp);
  /* A(-4)*B(-4) */ /* A(+4)*B(+4) */
  TOOM8H_MUL_N_REC(pp, v0, v1, 2, r2, v2, v3, n + 1, wse);
  mpn_toom_couple_handling (r2, 2 * n + 1, pp, sign, n, 2, 4);

#undef v0
#undef v1
#undef v2
#undef v3
#undef wse

  /* A(0)*B(0) */
  TOOM8H_MUL_N_REC(pp, ap, bp, 0, pp, ap, bp, n, wsi);

  /* Infinity */
  if (UNLIKELY (half != 0)) {
    if (s > t) {
      TOOM8H_MUL_REC(r0, ap + p * n, s, bp + q * n, t, wsi);
    } else {
      TOOM8H_MUL_REC(r0, bp + q * n, t, ap + p * n, s, wsi);
    };
  };

  mpn_toom_interpolate_16pts (pp, r1, r3, r5, r7, n, s+t, half, wsi);

#undef r0
#undef r1
#undef r2
#undef r3
#undef r4
#undef r5
#undef r6
#undef wsi
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x98, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
jmp 0x44d96
jmp 0x44d98
jmp 0x44d9a
jmp 0x44d9c
jmp 0x44d9e
jmp 0x44da0
jmp 0x44da2
jmp 0x44da4
jmp 0x44da6
jmp 0x44da8
jmp 0x44daa
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x44de2
imulq $0xa, -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
sarq %rcx
imulq $0x15, %rcx, %rcx
cmpq %rcx, %rax
jge 0x44e30
movl $0x0, -0x5c(%rbp)
movq -0x20(%rbp), %rax
subq $0x1, %rax
sarq $0x3, %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movl $0x7, -0x58(%rbp)
movl $0x7, -0x54(%rbp)
movq -0x20(%rbp), %rax
imulq $0x7, -0x40(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
imulq $0x7, -0x40(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x50(%rbp)
jmp 0x45080
imulq $0xd, -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
shlq $0x4, %rcx
cmpq %rcx, %rax
jge 0x44e55
movl $0x9, -0x54(%rbp)
movl $0x8, -0x58(%rbp)
jmp 0x44f65
imulq $0xa, -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
sarq %rcx
imulq $0x1b, %rcx, %rcx
cmpq %rcx, %rax
jge 0x44e7d
movl $0x9, -0x54(%rbp)
movl $0x7, -0x58(%rbp)
jmp 0x44f63
imulq $0xa, -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
sarq %rcx
imulq $0x21, %rcx, %rcx
cmpq %rcx, %rax
jge 0x44ea5
movl $0xa, -0x54(%rbp)
movl $0x7, -0x58(%rbp)
jmp 0x44f61
movq -0x20(%rbp), %rax
shlq $0x2, %rax
imulq $0x7, -0x30(%rbp), %rcx
cmpq %rcx, %rax
jge 0x44eca
movl $0xa, -0x54(%rbp)
movl $0x6, -0x58(%rbp)
jmp 0x44f5f
imulq $0x6, -0x20(%rbp), %rax
imulq $0xd, -0x30(%rbp), %rcx
cmpq %rcx, %rax
jge 0x44ee9
movl $0xb, -0x54(%rbp)
movl $0x6, -0x58(%rbp)
jmp 0x44f5d
movq -0x20(%rbp), %rax
shlq $0x2, %rax
imulq $0x9, -0x30(%rbp), %rcx
cmpq %rcx, %rax
jge 0x44f0b
movl $0xb, -0x54(%rbp)
movl $0x5, -0x58(%rbp)
jmp 0x44f5b
imulq $0x7, -0x20(%rbp), %rax
imulq $0x14, -0x30(%rbp), %rcx
cmpq %rcx, %rax
jge 0x44f2a
movl $0xc, -0x54(%rbp)
movl $0x5, -0x58(%rbp)
jmp 0x44f59
imulq $0x9, -0x20(%rbp), %rax
imulq $0x1c, -0x30(%rbp), %rcx
cmpq %rcx, %rax
jge 0x44f49
movl $0xc, -0x54(%rbp)
movl $0x4, -0x58(%rbp)
jmp 0x44f57
movl $0xd, -0x54(%rbp)
movl $0x4, -0x58(%rbp)
jmp 0x44f59
jmp 0x44f5b
jmp 0x44f5d
jmp 0x44f5f
jmp 0x44f61
jmp 0x44f63
jmp 0x44f65
movl -0x54(%rbp), %eax
addl -0x58(%rbp), %eax
andl $0x1, %eax
movl %eax, -0x5c(%rbp)
movslq -0x58(%rbp), %rax
imulq -0x20(%rbp), %rax
movslq -0x54(%rbp), %rcx
imulq -0x30(%rbp), %rcx
cmpq %rcx, %rax
jl 0x44f9f
movq -0x20(%rbp), %rax
subq $0x1, %rax
movslq -0x54(%rbp), %rcx
xorl %edx, %edx
divq %rcx
movq %rax, -0x68(%rbp)
jmp 0x44fb4
movq -0x30(%rbp), %rax
subq $0x1, %rax
movslq -0x58(%rbp), %rcx
xorl %edx, %edx
divq %rcx
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movl -0x54(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x54(%rbp)
movl -0x58(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x58(%rbp)
movq -0x20(%rbp), %rax
movslq -0x54(%rbp), %rcx
imulq -0x40(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
movslq -0x58(%rbp), %rcx
imulq -0x40(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x50(%rbp)
cmpl $0x0, -0x5c(%rbp)
je 0x4507e
cmpq $0x1, -0x48(%rbp)
setl %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x4503e
movl -0x54(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x54(%rbp)
movq -0x40(%rbp), %rax
addq -0x48(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x0, -0x5c(%rbp)
jmp 0x4507c
cmpq $0x1, -0x50(%rbp)
setl %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x4507a
movl -0x58(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x58(%rbp)
movq -0x40(%rbp), %rax
addq -0x50(%rbp), %rax
movq %rax, -0x50(%rbp)
movl $0x0, -0x5c(%rbp)
jmp 0x4507c
jmp 0x4507e
jmp 0x45080
jmp 0x45082
jmp 0x45084
jmp 0x45086
jmp 0x45088
jmp 0x4508a
jmp 0x4508c
jmp 0x4508e
jmp 0x45090
jmp 0x45092
jmp 0x45094
jmp 0x45096
jmp 0x45098
movq -0x10(%rbp), %rdi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movl -0x54(%rbp), %edx
movq -0x18(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x48(%rbp), %r9
movq -0x10(%rbp), %rax
movl $0x3, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4a510
movl %eax, -0x6c(%rbp)
movq -0x38(%rbp), %rdi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rsi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x8, %rsi
movl -0x58(%rbp), %edx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x50(%rbp), %r9
movq -0x10(%rbp), %rax
movl $0x3, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4a510
movl %eax, %ecx
movl -0x6c(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x60(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x51, %rax
jge 0x451f6
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
jmp 0x454df
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0xf2, %rax
jge 0x452b5
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
jmp 0x454dd
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x159, %rax            # imm = 0x159
jge 0x45374
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
jmp 0x454db
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x1e2, %rax            # imm = 0x1E2
jge 0x45433
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
jmp 0x454d9
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
jmp 0x454db
jmp 0x454dd
jmp 0x454df
jmp 0x454e1
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
shlq %rsi
addq $0x1, %rsi
addq $0x0, %rsi
movq -0x10(%rbp), %rdx
movl -0x60(%rbp), %ecx
movq -0x40(%rbp), %r8
movl -0x5c(%rbp), %eax
addl $0x1, %eax
imull $0x3, %eax, %r9d
imull $0x3, -0x5c(%rbp), %eax
movl %eax, (%rsp)
callq 0x48bc0
movq -0x10(%rbp), %rdi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movl -0x54(%rbp), %edx
movq -0x18(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x48(%rbp), %r9
movq -0x10(%rbp), %rax
movl $0x2, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4a510
movl %eax, -0x70(%rbp)
movq -0x38(%rbp), %rdi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rsi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x8, %rsi
movl -0x58(%rbp), %edx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x50(%rbp), %r9
movq -0x10(%rbp), %rax
movl $0x2, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4a510
movl %eax, %ecx
movl -0x70(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x60(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x51, %rax
jge 0x45683
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
movq -0x38(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
jmp 0x459ac
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0xf2, %rax
jge 0x45752
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
movq -0x38(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
jmp 0x459aa
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x159, %rax            # imm = 0x159
jge 0x45821
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
movq -0x38(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
jmp 0x459a8
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x1e2, %rax            # imm = 0x1E2
jge 0x458f0
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
movq -0x38(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
jmp 0x459a6
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
movq -0x38(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
jmp 0x459a8
jmp 0x459aa
jmp 0x459ac
jmp 0x459ae
movq -0x38(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x8, %rdi
movq -0x40(%rbp), %rsi
shlq %rsi
addq $0x1, %rsi
movq -0x10(%rbp), %rdx
movl -0x60(%rbp), %ecx
movq -0x40(%rbp), %r8
movl -0x5c(%rbp), %r9d
addl $0x1, %r9d
shll %r9d
movl -0x5c(%rbp), %eax
shll %eax
movl %eax, (%rsp)
callq 0x48bc0
movq -0x10(%rbp), %rdi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movl -0x54(%rbp), %edx
movq -0x18(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x48(%rbp), %r9
movq -0x10(%rbp), %rax
movq %rax, (%rsp)
callq 0x49f90
movl %eax, -0x74(%rbp)
movq -0x38(%rbp), %rdi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rsi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x8, %rsi
movl -0x58(%rbp), %edx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x50(%rbp), %r9
movq -0x10(%rbp), %rax
movq %rax, (%rsp)
callq 0x49f90
movl %eax, %ecx
movl -0x74(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x60(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x51, %rax
jge 0x45b4e
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
movq -0x38(%rbp), %rdi
imulq $0x6, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
jmp 0x45e77
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0xf2, %rax
jge 0x45c1d
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
movq -0x38(%rbp), %rdi
imulq $0x6, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
jmp 0x45e75
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x159, %rax            # imm = 0x159
jge 0x45cec
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
movq -0x38(%rbp), %rdi
imulq $0x6, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
jmp 0x45e73
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x1e2, %rax            # imm = 0x1E2
jge 0x45dbb
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
movq -0x38(%rbp), %rdi
imulq $0x6, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
jmp 0x45e71
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
movq -0x38(%rbp), %rdi
imulq $0x6, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
jmp 0x45e73
jmp 0x45e75
jmp 0x45e77
jmp 0x45e79
movq -0x38(%rbp), %rdi
imulq $0x6, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x40(%rbp), %rsi
shlq %rsi
addq $0x1, %rsi
movq -0x10(%rbp), %rdx
movl -0x60(%rbp), %ecx
movq -0x40(%rbp), %r8
movl $0x1, %r9d
movl $0x2, (%rsp)
callq 0x48bc0
movq -0x10(%rbp), %rdi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movl -0x54(%rbp), %edx
movq -0x18(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x48(%rbp), %r9
movq -0x10(%rbp), %rax
movl $0x3, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4a270
movl %eax, -0x78(%rbp)
movq -0x38(%rbp), %rdi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rsi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x8, %rsi
movl -0x58(%rbp), %edx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x50(%rbp), %r9
movq -0x10(%rbp), %rax
movl $0x3, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4a270
movl %eax, %ecx
movl -0x78(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x60(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x51, %rax
jge 0x46023
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
movq -0x38(%rbp), %rdi
imulq $0x9, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x18, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
jmp 0x4634c
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0xf2, %rax
jge 0x460f2
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
movq -0x38(%rbp), %rdi
imulq $0x9, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x18, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
jmp 0x4634a
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x159, %rax            # imm = 0x159
jge 0x461c1
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
movq -0x38(%rbp), %rdi
imulq $0x9, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x18, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
jmp 0x46348
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x1e2, %rax            # imm = 0x1E2
jge 0x46290
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
movq -0x38(%rbp), %rdi
imulq $0x9, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x18, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
jmp 0x46346
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
movq -0x38(%rbp), %rdi
imulq $0x9, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x18, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
jmp 0x46348
jmp 0x4634a
jmp 0x4634c
jmp 0x4634e
movq -0x38(%rbp), %rdi
imulq $0x9, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x18, %rdi
movq -0x40(%rbp), %rsi
shlq %rsi
addq $0x1, %rsi
addq $0x0, %rsi
movq -0x10(%rbp), %rdx
movl -0x60(%rbp), %ecx
movq -0x40(%rbp), %r8
movl $0x3, %r9d
movl $0x6, (%rsp)
callq 0x48bc0
movq -0x10(%rbp), %rdi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movl -0x54(%rbp), %edx
movq -0x18(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x48(%rbp), %r9
movq -0x10(%rbp), %rax
movl $0x1, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4a510
movl %eax, -0x7c(%rbp)
movq -0x38(%rbp), %rdi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rsi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x8, %rsi
movl -0x58(%rbp), %edx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x50(%rbp), %r9
movq -0x10(%rbp), %rax
movl $0x1, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4a510
movl %eax, %ecx
movl -0x7c(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x60(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x51, %rax
jge 0x464f8
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
movq -0x10(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
jmp 0x46811
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0xf2, %rax
jge 0x465c3
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
movq -0x10(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
jmp 0x4680f
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x159, %rax            # imm = 0x159
jge 0x4668e
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
movq -0x10(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
jmp 0x4680d
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x1e2, %rax            # imm = 0x1E2
jge 0x46759
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
movq -0x10(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
jmp 0x4680b
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
movq -0x10(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
jmp 0x4680d
jmp 0x4680f
jmp 0x46811
jmp 0x46813
movq -0x10(%rbp), %rdi
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x40(%rbp), %rsi
shlq %rsi
addq $0x1, %rsi
movq -0x10(%rbp), %rdx
movl -0x60(%rbp), %ecx
movq -0x40(%rbp), %r8
movl -0x5c(%rbp), %r9d
addl $0x1, %r9d
movl -0x5c(%rbp), %eax
movl %eax, (%rsp)
callq 0x48bc0
movq -0x10(%rbp), %rdi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movl -0x54(%rbp), %edx
movq -0x18(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x48(%rbp), %r9
movq -0x10(%rbp), %rax
movq %rax, (%rsp)
callq 0x49d70
movl %eax, -0x60(%rbp)
cmpl $0x3, -0x58(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x468f3
movq -0x38(%rbp), %rdi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rsi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x8, %rsi
movq -0x28(%rbp), %rdx
movq -0x40(%rbp), %rcx
movq -0x50(%rbp), %r8
movq -0x10(%rbp), %r9
callq 0x49ac0
xorl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
jmp 0x4693d
movq -0x38(%rbp), %rdi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rsi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x8, %rsi
movl -0x58(%rbp), %edx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x50(%rbp), %r9
movq -0x10(%rbp), %rax
movq %rax, (%rsp)
callq 0x49d70
xorl -0x60(%rbp), %eax
movl %eax, -0x60(%rbp)
jmp 0x4693f
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x51, %rax
jge 0x46a08
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
movq -0x10(%rbp), %rdi
imulq $0x7, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
jmp 0x46d21
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0xf2, %rax
jge 0x46ad3
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
movq -0x10(%rbp), %rdi
imulq $0x7, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
jmp 0x46d1f
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x159, %rax            # imm = 0x159
jge 0x46b9e
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
movq -0x10(%rbp), %rdi
imulq $0x7, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
jmp 0x46d1d
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x1e2, %rax            # imm = 0x1E2
jge 0x46c69
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
movq -0x10(%rbp), %rdi
imulq $0x7, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
jmp 0x46d1b
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
movq -0x10(%rbp), %rdi
imulq $0x7, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
jmp 0x46d1d
jmp 0x46d1f
jmp 0x46d21
jmp 0x46d23
movq -0x10(%rbp), %rdi
imulq $0x7, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x40(%rbp), %rsi
shlq %rsi
addq $0x1, %rsi
movq -0x10(%rbp), %rdx
movl -0x60(%rbp), %ecx
movq -0x40(%rbp), %r8
xorl %r9d, %r9d
movl $0x0, (%rsp)
callq 0x48bc0
movq -0x10(%rbp), %rdi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movl -0x54(%rbp), %edx
movq -0x18(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x48(%rbp), %r9
movq -0x10(%rbp), %rax
movl $0x2, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4a270
movl %eax, -0x80(%rbp)
movq -0x38(%rbp), %rdi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rsi
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x8, %rsi
movl -0x58(%rbp), %edx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x50(%rbp), %r9
movq -0x10(%rbp), %rax
movl $0x2, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4a270
movl %eax, %ecx
movl -0x80(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x60(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x51, %rax
jge 0x46ec2
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
movq -0x10(%rbp), %rdi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x3e800
jmp 0x471db
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0xf2, %rax
jge 0x46f8d
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
movq -0x10(%rbp), %rdi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x40340
jmp 0x471d9
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x159, %rax            # imm = 0x159
jge 0x47058
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
movq -0x10(%rbp), %rdi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x42930
jmp 0x471d7
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq $0x1e2, %rax            # imm = 0x1E2
jge 0x47123
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
movq -0x10(%rbp), %rdi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x434c0
jmp 0x471d5
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
movq -0x10(%rbp), %rdi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x38(%rbp), %rcx
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x20, %rcx
movq -0x40(%rbp), %r8
addq $0x1, %r8
movq -0x38(%rbp), %r9
imulq $0xd, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x28, %r9
callq 0x44d70
jmp 0x471d7
jmp 0x471d9
jmp 0x471db
jmp 0x471dd
movq -0x10(%rbp), %rdi
imulq $0xb, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x40(%rbp), %rsi
shlq %rsi
addq $0x1, %rsi
movq -0x10(%rbp), %rdx
movl -0x60(%rbp), %ecx
movq -0x40(%rbp), %r8
movl $0x2, %r9d
movl $0x4, (%rsp)
callq 0x48bc0
cmpq $0x51, -0x40(%rbp)
jge 0x4724e
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x38(%rbp), %r9
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x20, %r9
callq 0x3e800
jmp 0x4732f
cmpq $0xf2, -0x40(%rbp)
jge 0x4728a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x38(%rbp), %r9
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x20, %r9
callq 0x40340
jmp 0x4732d
cmpq $0x159, -0x40(%rbp)     # imm = 0x159
jge 0x472c3
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x38(%rbp), %r9
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x20, %r9
callq 0x42930
jmp 0x4732b
cmpq $0x1e2, -0x40(%rbp)     # imm = 0x1E2
jge 0x472fc
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x38(%rbp), %r9
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x20, %r9
callq 0x434c0
jmp 0x47329
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x38(%rbp), %r9
imulq $0xc, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %r9
addq $0x20, %r9
callq 0x44d70
jmp 0x4732b
jmp 0x4732d
jmp 0x4732f
jmp 0x47331
cmpl $0x0, -0x5c(%rbp)
setne %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x473f2
movq -0x48(%rbp), %rax
cmpq -0x50(%rbp), %rax
jle 0x473a7
jmp 0x47360
movq -0x10(%rbp), %rdi
imulq $0xf, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x18(%rbp), %rsi
movslq -0x54(%rbp), %rax
imulq -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x48(%rbp), %rdx
movq -0x28(%rbp), %rcx
movslq -0x58(%rbp), %rax
imulq -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x50(%rbp), %r8
callq 0x37f00
jmp 0x473f0
jmp 0x473a9
movq -0x10(%rbp), %rdi
imulq $0xf, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x28(%rbp), %rsi
movslq -0x58(%rbp), %rax
imulq -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x50(%rbp), %rdx
movq -0x18(%rbp), %rcx
movslq -0x54(%rbp), %rax
imulq -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq -0x48(%rbp), %r8
callq 0x37f00
jmp 0x473f0
jmp 0x473f2
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
imulq $0x9, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
addq $0x18, %rsi
movq -0x38(%rbp), %rdx
imulq $0x6, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdx
addq $0x10, %rdx
movq -0x38(%rbp), %rcx
imulq $0x3, -0x40(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq -0x38(%rbp), %r8
movq -0x40(%rbp), %r9
movq -0x48(%rbp), %r11
addq -0x50(%rbp), %r11
movl -0x5c(%rbp), %r10d
movq -0x38(%rbp), %rax
imulq $0xc, -0x40(%rbp), %rbx
shlq $0x3, %rbx
addq %rbx, %rax
addq $0x20, %rax
movq %r11, (%rsp)
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x4ce00
addq $0x98, %rsp
popq %rbx
popq %rbp
retq
nopw (%rax,%rax)