// File: /workspace/github_c_makefile_star2_O0/LemonBoy[P]autobahn/xdiff/xdiffi.c
// Function: xdl_split
static long xdl_split(unsigned long const *ha1, long off1, long lim1,
		      unsigned long const *ha2, long off2, long lim2,
		      long *kvdf, long *kvdb, int need_min, xdpsplit_t *spl,
		      xdalgoenv_t *xenv) {
	long dmin = off1 - lim2, dmax = lim1 - off2;
	long fmid = off1 - off2, bmid = lim1 - lim2;
	long odd = (fmid - bmid) & 1;
	long fmin = fmid, fmax = fmid;
	long bmin = bmid, bmax = bmid;
	long ec, d, i1, i2, prev1, best, dd, v, k;

	/*
	 * Set initial diagonal values for both forward and backward path.
	 */
	kvdf[fmid] = off1;
	kvdb[bmid] = lim1;

	for (ec = 1;; ec++) {
		int got_snake = 0;

		/*
		 * We need to extent the diagonal "domain" by one. If the next
		 * values exits the box boundaries we need to change it in the
		 * opposite direction because (max - min) must be a power of two.
		 * Also we initialize the external K value to -1 so that we can
		 * avoid extra conditions check inside the core loop.
		 */
		if (fmin > dmin)
			kvdf[--fmin - 1] = -1;
		else
			++fmin;
		if (fmax < dmax)
			kvdf[++fmax + 1] = -1;
		else
			--fmax;

		for (d = fmax; d >= fmin; d -= 2) {
			if (kvdf[d - 1] >= kvdf[d + 1])
				i1 = kvdf[d - 1] + 1;
			else
				i1 = kvdf[d + 1];
			prev1 = i1;
			i2 = i1 - d;
			for (; i1 < lim1 && i2 < lim2 && ha1[i1] == ha2[i2]; i1++, i2++);
			if (i1 - prev1 > xenv->snake_cnt)
				got_snake = 1;
			kvdf[d] = i1;
			if (odd && bmin <= d && d <= bmax && kvdb[d] <= i1) {
				spl->i1 = i1;
				spl->i2 = i2;
				spl->min_lo = spl->min_hi = 1;
				return ec;
			}
		}

		/*
		 * We need to extent the diagonal "domain" by one. If the next
		 * values exits the box boundaries we need to change it in the
		 * opposite direction because (max - min) must be a power of two.
		 * Also we initialize the external K value to -1 so that we can
		 * avoid extra conditions check inside the core loop.
		 */
		if (bmin > dmin)
			kvdb[--bmin - 1] = XDL_LINE_MAX;
		else
			++bmin;
		if (bmax < dmax)
			kvdb[++bmax + 1] = XDL_LINE_MAX;
		else
			--bmax;

		for (d = bmax; d >= bmin; d -= 2) {
			if (kvdb[d - 1] < kvdb[d + 1])
				i1 = kvdb[d - 1];
			else
				i1 = kvdb[d + 1] - 1;
			prev1 = i1;
			i2 = i1 - d;
			for (; i1 > off1 && i2 > off2 && ha1[i1 - 1] == ha2[i2 - 1]; i1--, i2--);
			if (prev1 - i1 > xenv->snake_cnt)
				got_snake = 1;
			kvdb[d] = i1;
			if (!odd && fmin <= d && d <= fmax && i1 <= kvdf[d]) {
				spl->i1 = i1;
				spl->i2 = i2;
				spl->min_lo = spl->min_hi = 1;
				return ec;
			}
		}

		if (need_min)
			continue;

		/*
		 * If the edit cost is above the heuristic trigger and if
		 * we got a good snake, we sample current diagonals to see
		 * if some of the, have reached an "interesting" path. Our
		 * measure is a function of the distance from the diagonal
		 * corner (i1 + i2) penalized with the distance from the
		 * mid diagonal itself. If this value is above the current
		 * edit cost times a magic factor (XDL_K_HEUR) we consider
		 * it interesting.
		 */
		if (got_snake && ec > xenv->heur_min) {
			for (best = 0, d = fmax; d >= fmin; d -= 2) {
				dd = d > fmid ? d - fmid: fmid - d;
				i1 = kvdf[d];
				i2 = i1 - d;
				v = (i1 - off1) + (i2 - off2) - dd;

				if (v > XDL_K_HEUR * ec && v > best &&
				    off1 + xenv->snake_cnt <= i1 && i1 < lim1 &&
				    off2 + xenv->snake_cnt <= i2 && i2 < lim2) {
					for (k = 1; ha1[i1 - k] == ha2[i2 - k]; k++)
						if (k == xenv->snake_cnt) {
							best = v;
							spl->i1 = i1;
							spl->i2 = i2;
							break;
						}
				}
			}
			if (best > 0) {
				spl->min_lo = 1;
				spl->min_hi = 0;
				return ec;
			}

			for (best = 0, d = bmax; d >= bmin; d -= 2) {
				dd = d > bmid ? d - bmid: bmid - d;
				i1 = kvdb[d];
				i2 = i1 - d;
				v = (lim1 - i1) + (lim2 - i2) - dd;

				if (v > XDL_K_HEUR * ec && v > best &&
				    off1 < i1 && i1 <= lim1 - xenv->snake_cnt &&
				    off2 < i2 && i2 <= lim2 - xenv->snake_cnt) {
					for (k = 0; ha1[i1 + k] == ha2[i2 + k]; k++)
						if (k == xenv->snake_cnt - 1) {
							best = v;
							spl->i1 = i1;
							spl->i2 = i2;
							break;
						}
				}
			}
			if (best > 0) {
				spl->min_lo = 0;
				spl->min_hi = 1;
				return ec;
			}
		}

		/*
		 * Enough is enough. We spent too much time here and now we collect
		 * the furthest reaching path using the (i1 + i2) measure.
		 */
		if (ec >= xenv->mxcost) {
			long fbest, fbest1, bbest, bbest1;

			fbest = fbest1 = -1;
			for (d = fmax; d >= fmin; d -= 2) {
				i1 = XDL_MIN(kvdf[d], lim1);
				i2 = i1 - d;
				if (lim2 < i2)
					i1 = lim2 + d, i2 = lim2;
				if (fbest < i1 + i2) {
					fbest = i1 + i2;
					fbest1 = i1;
				}
			}

			bbest = bbest1 = XDL_LINE_MAX;
			for (d = bmax; d >= bmin; d -= 2) {
				i1 = XDL_MAX(off1, kvdb[d]);
				i2 = i1 - d;
				if (i2 < off2)
					i1 = off2 + d, i2 = off2;
				if (i1 + i2 < bbest) {
					bbest = i1 + i2;
					bbest1 = i1;
				}
			}

			if ((lim1 + lim2) - bbest < fbest - (off1 + off2)) {
				spl->i1 = fbest1;
				spl->i2 = fbest - fbest1;
				spl->min_lo = 1;
				spl->min_hi = 0;
			} else {
				spl->i1 = bbest1;
				spl->i2 = bbest - bbest1;
				spl->min_lo = 0;
				spl->min_hi = 1;
			}
			return ec;
		}
	}
}

// Assembly:
subq $0x98, %rsp
movq 0xc0(%rsp), %rax
movq 0xb8(%rsp), %rax
movl 0xb0(%rsp), %eax
movq 0xa8(%rsp), %rax
movq 0xa0(%rsp), %rax
movq %rdi, 0x88(%rsp)
movq %rsi, 0x80(%rsp)
movq %rdx, 0x78(%rsp)
movq %rcx, 0x70(%rsp)
movq %r8, 0x68(%rsp)
movq %r9, 0x60(%rsp)
movq 0x80(%rsp), %rax
subq 0x60(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x78(%rsp), %rax
subq 0x68(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x80(%rsp), %rax
subq 0x68(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x78(%rsp), %rax
subq 0x60(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x48(%rsp), %rax
subq 0x40(%rsp), %rax
andq $0x1, %rax
movq %rax, 0x38(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x80(%rsp), %rdx
movq 0xa0(%rsp), %rax
movq 0x48(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x78(%rsp), %rdx
movq 0xa8(%rsp), %rax
movq 0x40(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq $0x1, 0x10(%rsp)
movl $0x0, -0x34(%rsp)
movq 0x30(%rsp), %rax
cmpq 0x58(%rsp), %rax
jle 0x17bf
movq 0xa0(%rsp), %rax
movq 0x30(%rsp), %rcx
addq $-0x1, %rcx
movq %rcx, 0x30(%rsp)
subq $0x1, %rcx
movq $-0x1, (%rax,%rcx,8)
jmp 0x17cd
movq 0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x30(%rsp)
movq 0x28(%rsp), %rax
cmpq 0x50(%rsp), %rax
jge 0x17fd
movq 0xa0(%rsp), %rax
movq 0x28(%rsp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x28(%rsp)
movq $-0x1, 0x10(%rax,%rcx,8)
jmp 0x180b
movq 0x28(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x30(%rsp), %rax
jl 0x19da
movq 0xa0(%rsp), %rax
movq 0x8(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq 0xa0(%rsp), %rcx
movq 0x8(%rsp), %rdx
cmpq 0x8(%rcx,%rdx,8), %rax
jl 0x186d
movq 0xa0(%rsp), %rax
movq 0x8(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x1883
movq 0xa0(%rsp), %rax
movq 0x8(%rsp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, -0x10(%rsp)
movq (%rsp), %rax
subq 0x8(%rsp), %rax
movq %rax, -0x8(%rsp)
movq (%rsp), %rcx
xorl %eax, %eax
cmpq 0x78(%rsp), %rcx
movb %al, -0x59(%rsp)
jge 0x18e2
movq -0x8(%rsp), %rcx
xorl %eax, %eax
cmpq 0x60(%rsp), %rcx
movb %al, -0x59(%rsp)
jge 0x18e2
movq 0x88(%rsp), %rax
movq (%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x70(%rsp), %rcx
movq -0x8(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
sete %al
movb %al, -0x59(%rsp)
movb -0x59(%rsp), %al
testb $0x1, %al
jne 0x18ec
jmp 0x190a
jmp 0x18ee
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
movq -0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rsp)
jmp 0x189a
movq (%rsp), %rax
subq -0x10(%rsp), %rax
movq 0xc0(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jle 0x1929
movl $0x1, -0x34(%rsp)
movq (%rsp), %rdx
movq 0xa0(%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
cmpq $0x0, 0x38(%rsp)
je 0x19c5
movq 0x20(%rsp), %rax
cmpq 0x8(%rsp), %rax
jg 0x19c5
movq 0x8(%rsp), %rax
cmpq 0x18(%rsp), %rax
jg 0x19c5
movq 0xa8(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rax
cmpq (%rsp), %rax
jg 0x19c5
movq (%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, (%rax)
movq -0x8(%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0xb8(%rsp), %rax
movl $0x1, 0x14(%rax)
movq 0xb8(%rsp), %rax
movl $0x1, 0x10(%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x231c
jmp 0x19c7
movq 0x8(%rsp), %rax
subq $0x2, %rax
movq %rax, 0x8(%rsp)
jmp 0x1815
movq 0x20(%rsp), %rax
cmpq 0x58(%rsp), %rax
jle 0x1a10
movq 0xa8(%rsp), %rax
movq 0x20(%rsp), %rcx
addq $-0x1, %rcx
movq %rcx, 0x20(%rsp)
subq $0x1, %rcx
movabsq $0x7fffffffffffffff, %rdx # imm = 0x7FFFFFFFFFFFFFFF
movq %rdx, (%rax,%rcx,8)
jmp 0x1a1e
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x50(%rsp), %rax
jge 0x1a54
movq 0xa8(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rsp)
movabsq $0x7fffffffffffffff, %rdx # imm = 0x7FFFFFFFFFFFFFFF
movq %rdx, 0x10(%rax,%rcx,8)
jmp 0x1a62
movq 0x18(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x20(%rsp), %rax
jl 0x1c3c
movq 0xa8(%rsp), %rax
movq 0x8(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq 0xa8(%rsp), %rcx
movq 0x8(%rsp), %rdx
cmpq 0x8(%rcx,%rdx,8), %rax
jge 0x1ac0
movq 0xa8(%rsp), %rax
movq 0x8(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, (%rsp)
jmp 0x1ada
movq 0xa8(%rsp), %rax
movq 0x8(%rsp), %rcx
movq 0x8(%rax,%rcx,8), %rax
subq $0x1, %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, -0x10(%rsp)
movq (%rsp), %rax
subq 0x8(%rsp), %rax
movq %rax, -0x8(%rsp)
movq (%rsp), %rcx
xorl %eax, %eax
cmpq 0x80(%rsp), %rcx
movb %al, -0x5a(%rsp)
jle 0x1b44
movq -0x8(%rsp), %rcx
xorl %eax, %eax
cmpq 0x68(%rsp), %rcx
movb %al, -0x5a(%rsp)
jle 0x1b44
movq 0x88(%rsp), %rax
movq (%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq 0x70(%rsp), %rcx
movq -0x8(%rsp), %rdx
subq $0x1, %rdx
cmpq (%rcx,%rdx,8), %rax
sete %al
movb %al, -0x5a(%rsp)
movb -0x5a(%rsp), %al
testb $0x1, %al
jne 0x1b4e
jmp 0x1b6c
jmp 0x1b50
movq (%rsp), %rax
addq $-0x1, %rax
movq %rax, (%rsp)
movq -0x8(%rsp), %rax
addq $-0x1, %rax
movq %rax, -0x8(%rsp)
jmp 0x1af1
movq -0x10(%rsp), %rax
subq (%rsp), %rax
movq 0xc0(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jle 0x1b8b
movl $0x1, -0x34(%rsp)
movq (%rsp), %rdx
movq 0xa8(%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
cmpq $0x0, 0x38(%rsp)
jne 0x1c27
movq 0x30(%rsp), %rax
cmpq 0x8(%rsp), %rax
jg 0x1c27
movq 0x8(%rsp), %rax
cmpq 0x28(%rsp), %rax
jg 0x1c27
movq (%rsp), %rax
movq 0xa0(%rsp), %rcx
movq 0x8(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
jg 0x1c27
movq (%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, (%rax)
movq -0x8(%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0xb8(%rsp), %rax
movl $0x1, 0x14(%rax)
movq 0xb8(%rsp), %rax
movl $0x1, 0x10(%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x231c
jmp 0x1c29
movq 0x8(%rsp), %rax
subq $0x2, %rax
movq %rax, 0x8(%rsp)
jmp 0x1a6c
cmpl $0x0, 0xb0(%rsp)
je 0x1c4b
jmp 0x2309
cmpl $0x0, -0x34(%rsp)
je 0x2060
movq 0x10(%rsp), %rax
movq 0xc0(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jle 0x2060
movq $0x0, -0x18(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x30(%rsp), %rax
jl 0x1e27
movq 0x8(%rsp), %rax
cmpq 0x48(%rsp), %rax
jle 0x1cad
movq 0x8(%rsp), %rax
subq 0x48(%rsp), %rax
movq %rax, -0x68(%rsp)
jmp 0x1cbc
movq 0x48(%rsp), %rax
subq 0x8(%rsp), %rax
movq %rax, -0x68(%rsp)
movq -0x68(%rsp), %rax
movq %rax, -0x20(%rsp)
movq 0xa0(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
subq 0x8(%rsp), %rax
movq %rax, -0x8(%rsp)
movq (%rsp), %rax
subq 0x80(%rsp), %rax
movq -0x8(%rsp), %rcx
subq 0x68(%rsp), %rcx
addq %rcx, %rax
subq -0x20(%rsp), %rax
movq %rax, -0x28(%rsp)
movq -0x28(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x2, %rcx
cmpq %rcx, %rax
jle 0x1e12
movq -0x28(%rsp), %rax
cmpq -0x18(%rsp), %rax
jle 0x1e12
movq 0x80(%rsp), %rax
movq 0xc0(%rsp), %rcx
addq 0x8(%rcx), %rax
cmpq (%rsp), %rax
jg 0x1e12
movq (%rsp), %rax
cmpq 0x78(%rsp), %rax
jge 0x1e12
movq 0x68(%rsp), %rax
movq 0xc0(%rsp), %rcx
addq 0x8(%rcx), %rax
cmpq -0x8(%rsp), %rax
jg 0x1e12
movq -0x8(%rsp), %rax
cmpq 0x60(%rsp), %rax
jge 0x1e12
movq $0x1, -0x30(%rsp)
movq 0x88(%rsp), %rax
movq (%rsp), %rcx
subq -0x30(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x70(%rsp), %rcx
movq -0x8(%rsp), %rdx
subq -0x30(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
jne 0x1e10
movq -0x30(%rsp), %rax
movq 0xc0(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x1dfe
movq -0x28(%rsp), %rax
movq %rax, -0x18(%rsp)
movq (%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, (%rax)
movq -0x8(%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x1e10
jmp 0x1e00
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
jmp 0x1d95
jmp 0x1e12
jmp 0x1e14
movq 0x8(%rsp), %rax
subq $0x2, %rax
movq %rax, 0x8(%rsp)
jmp 0x1c80
cmpq $0x0, -0x18(%rsp)
jle 0x1e5f
movq 0xb8(%rsp), %rax
movl $0x1, 0x10(%rax)
movq 0xb8(%rsp), %rax
movl $0x0, 0x14(%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x231c
movq $0x0, -0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x20(%rsp), %rax
jl 0x2026
movq 0x8(%rsp), %rax
cmpq 0x40(%rsp), %rax
jle 0x1e9f
movq 0x8(%rsp), %rax
subq 0x40(%rsp), %rax
movq %rax, -0x70(%rsp)
jmp 0x1eae
movq 0x40(%rsp), %rax
subq 0x8(%rsp), %rax
movq %rax, -0x70(%rsp)
movq -0x70(%rsp), %rax
movq %rax, -0x20(%rsp)
movq 0xa8(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
subq 0x8(%rsp), %rax
movq %rax, -0x8(%rsp)
movq 0x78(%rsp), %rax
subq (%rsp), %rax
movq 0x60(%rsp), %rcx
subq -0x8(%rsp), %rcx
addq %rcx, %rax
subq -0x20(%rsp), %rax
movq %rax, -0x28(%rsp)
movq -0x28(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x2, %rcx
cmpq %rcx, %rax
jle 0x2011
movq -0x28(%rsp), %rax
cmpq -0x18(%rsp), %rax
jle 0x2011
movq 0x80(%rsp), %rax
cmpq (%rsp), %rax
jge 0x2011
movq (%rsp), %rax
movq 0x78(%rsp), %rcx
movq 0xc0(%rsp), %rdx
subq 0x8(%rdx), %rcx
cmpq %rcx, %rax
jg 0x2011
movq 0x68(%rsp), %rax
cmpq -0x8(%rsp), %rax
jge 0x2011
movq -0x8(%rsp), %rax
movq 0x60(%rsp), %rcx
movq 0xc0(%rsp), %rdx
subq 0x8(%rdx), %rcx
cmpq %rcx, %rax
jg 0x2011
movq $0x0, -0x30(%rsp)
movq 0x88(%rsp), %rax
movq (%rsp), %rcx
addq -0x30(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x70(%rsp), %rcx
movq -0x8(%rsp), %rdx
addq -0x30(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
jne 0x200f
movq -0x30(%rsp), %rax
movq 0xc0(%rsp), %rcx
movq 0x8(%rcx), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x1ffa
movq -0x28(%rsp), %rax
movq %rax, -0x18(%rsp)
movq (%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, (%rax)
movq -0x8(%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x200f
jmp 0x1ffc
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
jmp 0x1f8a
jmp 0x2011
jmp 0x2013
movq 0x8(%rsp), %rax
subq $0x2, %rax
movq %rax, 0x8(%rsp)
jmp 0x1e72
cmpq $0x0, -0x18(%rsp)
jle 0x205e
movq 0xb8(%rsp), %rax
movl $0x0, 0x10(%rax)
movq 0xb8(%rsp), %rax
movl $0x1, 0x14(%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x231c
jmp 0x2060
movq 0x10(%rsp), %rax
movq 0xc0(%rsp), %rcx
cmpq (%rcx), %rax
jl 0x2307
movq $-0x1, -0x48(%rsp)
movq $-0x1, -0x40(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x30(%rsp), %rax
jl 0x2156
movq 0xa0(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rax
cmpq 0x78(%rsp), %rax
jge 0x20d2
movq 0xa0(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x78(%rsp)
jmp 0x20dc
movq 0x78(%rsp), %rax
movq %rax, -0x78(%rsp)
movq -0x78(%rsp), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
subq 0x8(%rsp), %rax
movq %rax, -0x8(%rsp)
movq 0x60(%rsp), %rax
cmpq -0x8(%rsp), %rax
jge 0x2117
movq 0x60(%rsp), %rax
addq 0x8(%rsp), %rax
movq %rax, (%rsp)
movq 0x60(%rsp), %rax
movq %rax, -0x8(%rsp)
movq -0x40(%rsp), %rax
movq (%rsp), %rcx
addq -0x8(%rsp), %rcx
cmpq %rcx, %rax
jge 0x2141
movq (%rsp), %rax
addq -0x8(%rsp), %rax
movq %rax, -0x40(%rsp)
movq (%rsp), %rax
movq %rax, -0x48(%rsp)
jmp 0x2143
movq 0x8(%rsp), %rax
subq $0x2, %rax
movq %rax, 0x8(%rsp)
jmp 0x2092
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
movq %rax, -0x58(%rsp)
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
movq %rax, -0x50(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x20(%rsp), %rax
jl 0x2245
movq 0x80(%rsp), %rax
movq 0xa8(%rsp), %rcx
movq 0x8(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
jle 0x21b8
movq 0x80(%rsp), %rax
movq %rax, -0x80(%rsp)
jmp 0x21ce
movq 0xa8(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x80(%rsp)
movq -0x80(%rsp), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
subq 0x8(%rsp), %rax
movq %rax, -0x8(%rsp)
movq -0x8(%rsp), %rax
cmpq 0x68(%rsp), %rax
jge 0x2209
movq 0x68(%rsp), %rax
addq 0x8(%rsp), %rax
movq %rax, (%rsp)
movq 0x68(%rsp), %rax
movq %rax, -0x8(%rsp)
movq (%rsp), %rax
addq -0x8(%rsp), %rax
cmpq -0x50(%rsp), %rax
jge 0x2230
movq (%rsp), %rax
addq -0x8(%rsp), %rax
movq %rax, -0x50(%rsp)
movq (%rsp), %rax
movq %rax, -0x58(%rsp)
jmp 0x2232
movq 0x8(%rsp), %rax
subq $0x2, %rax
movq %rax, 0x8(%rsp)
jmp 0x217e
movq 0x78(%rsp), %rax
addq 0x60(%rsp), %rax
subq -0x50(%rsp), %rax
movq -0x40(%rsp), %rcx
movq 0x80(%rsp), %rdx
addq 0x68(%rsp), %rdx
subq %rdx, %rcx
cmpq %rcx, %rax
jge 0x22b4
movq -0x48(%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, (%rax)
movq -0x40(%rsp), %rcx
subq -0x48(%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0xb8(%rsp), %rax
movl $0x1, 0x10(%rax)
movq 0xb8(%rsp), %rax
movl $0x0, 0x14(%rax)
jmp 0x22f8
movq -0x58(%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, (%rax)
movq -0x50(%rsp), %rcx
subq -0x58(%rsp), %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0xb8(%rsp), %rax
movl $0x0, 0x10(%rax)
movq 0xb8(%rsp), %rax
movl $0x1, 0x14(%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x231c
jmp 0x2309
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x1787
movq 0x90(%rsp), %rax
addq $0x98, %rsp
retq
nopl (%rax)