// File: /workspace/github_c_makefile_star2_O1/azhai[P]mlite/mlite.c
// Function: xeval
cell xeval(cell x, int cbn) {
	cell	m2,	/* Root of result list */
		a,	/* Used to append to result */
		rib;	/* Temp storage for args */
	cell	n, new;
	int	s,	/* Current state */
		c;	/* Continue */
	cell	name;	/* Name of procedure to apply */

	save(x);
	save(State_stack);
	save(Stack_bottom);
	Stack_bottom = Stack;
	s = EV_ATOM;
	c = 0;
	while (!Error_flag) {
		if (Run_stats)
			count(&Reductions);
		if (symbol_p(x)) {		/* Symbol -> Value */
			if (cbn) {
				Acc = x;
				cbn = 0;
			}
			else {
				Acc = lookup(x, Environment, 1);
				if (Error_flag)
					break;
				Acc = box_value(Acc);
			}
		}
		else if (auto_quoting_p(x) || cbn == 2) {
			Acc = x;		/* Object -> Object */
			cbn = 0;
		}
		else {				/* (...) -> Value */
			/*
			 * This block is used to DESCEND into lists.
			 * The following structure is saved on the
			 * Stack: RIB = (args append result source)
			 * The current s is saved on the State_stack.
			 */
			Acc = x;
			x = car(x);
			save_state(s);
			/* Check call-by-name built-ins and flag */
			if (special_p(x) || cbn) {
				cbn = 0;
				rib = node(Acc, Acc);	/* result/source */
				rib = node(NIL, rib);	/* append */
				rib = node(NIL, rib);	/* args */
				x = NIL;
			}
			else {
				Tmp = node(NIL, NIL);
				rib = node(Tmp, Acc);	/* result/source */
				rib = node(Tmp, rib);	/* append */
				rib = node(cdr(Acc), rib); /* args */
				Tmp = NIL;
				x = car(Acc);
			}
			save(rib);
			s = EV_ARGS;
			continue;
		}
		/*
		 * The following loop is used to ASCEND back to the
		 * root of a list, thereby performing BETA REDUCTION.
		 */
		while (!Error_flag) {
		if (s == EV_BETA) {
			/* Finish BETA reduction */
			Environment = unsave(1);
			unsave(1);		/* source expression */
			s = restore_state();
		}
		else if (s == EV_ARGS) {	/* append to list, reduce */
			rib = car(Stack);
			x = rib_args(rib);
			a = rib_append(rib);
			m2 = rib_result(rib);
			if (a != NIL) 	/* Append new member */
				car(a) = Acc;
			if (x == NIL) {	/* End of list */
				Acc = m2;
				/* Remember name of caller */
				name = car(rib_source(rib));
				if (primitive_p(car(Acc))) {
					if (cadar(Acc) == Callcc_magic)
						c = cbn = 1;
					Cons_stats = 1;
					Acc = x = apply_primitive(Acc);
					Cons_stats = 0;
				}
				else if (special_p(car(Acc))) {
					Acc = x = apply_special(Acc, &c, &s);
				}
				else if (procedure_p(car(Acc))) {
					name = symbol_p(name)? name: NIL;
					Called_procedures[Proc_ptr] = name;
					Proc_ptr++;
					if (Proc_ptr >= Proc_max)
						Proc_ptr = 0;
					tail_call();
					x = fnmatch(Acc, &s);
					c = 2;
				}
				else if (continuation_p(car(Acc))) {
					Acc = resume(Acc);
				}
				else {
					error("application of non-procedure",
						name);
					x = NIL;
				}
				if (c != 2) {
					unsave(1); /* drop source expr */
					s = restore_state();
				}
				/* Leave the ASCENDING loop and descend */
				/* once more into X. */
				if (c)
					break;
			}
			else if (atom_p(x)) {
				error("syntax error", rib_source(rib));
				x = NIL;
				break;
			}
			else {		/* X =/= NIL: append to list */
				/* Create space for next argument */
				Acc = node(NIL, NIL);
				cdr(a) = Acc;
				rib_append(rib) = cdr(a);
				rib_args(rib) = cdr(x);
				x = car(x);	/* evaluate next member */
				break;
			}
		}
		else if (s == EV_GUARD) {
			if (Acc != FALSE) {
				x = cdddar(unsave(1));	/* cases */
				x = cadar(x);		/* current body */
			}
			else {
				x = car(Stack);		/* application */
				n = cddddr(car(x));	/* next case */
				x = next_case(x, n);
				unsave(1);
				Environment = cdr(Environment);
				cbn = 1;
			}
			s = EV_BETA;
			c = 1;
			break;
		}
		else if (s == EV_IF_PRED) {
			x = unsave(1);
			unsave(1);	/* source expression */
			s = restore_state();
			if (Acc != FALSE)
				x = cadr(x);
			else
				x = caddr(x);
			c = 1;
			break;
		}
		else if (s == EV_AND || s == EV_OR) {
			Stack = node(cdar(Stack), cdr(Stack));
			if (	(Acc == FALSE && s == EV_AND) ||
				(Acc != FALSE && s == EV_OR) ||
				car(Stack) == NIL
			) {
				unsave(2);	/* state, source expr */
				s = restore_state();
				x = Acc;
				cbn = 2;
			}
			else if (cdar(Stack) == NIL) {
				x = caar(Stack);
				unsave(2);	/* state, source expr */
				s = restore_state();
			}
			else {
				x = caar(Stack);
			}
			c = 1;
			break;
		}
		else if (s == EV_BEGIN) {
			Stack = node(cdar(Stack), cdr(Stack));
			if (cdar(Stack) == NIL) {
				x = caar(Stack);
				unsave(2);	/* state, source expr */
				s = restore_state();
			}
			else {
				x = caar(Stack);
			}
			c = 1;
			break;
		}
		else if (s == EV_SET_VAL || s == EV_MACRO) {
			char err[] = "define_syntax: expected fn, got";

			if (s == EV_MACRO) {
				if (procedure_p(Acc)) {
					Acc = new_atom(T_SYNTAX, Acc);
				}
				if (syntax_p(Acc)) {
					/* Acc = Acc; */
				}
				else {
					error(err, Acc);
					break;
				}
			}
			x = unsave(1);
			unsave(1);	/* source expression */
			s = restore_state();
			box_value(x) = Acc;
			Acc = x = UNIT;
			c = 0;
			break;
		}
		else if (s == EV_RAISE) {
			x = raise_exception(Acc);
			unsave(1);
			s = restore_state();
			c = 0;
			break;
		}
		else if (s == EV_INPUT || s == EV_OUTPUT) {
			char inerr[]  = ">>: expected instream, got";
			char outerr[] = "<<: expected outstream, got";

			if (	instream_p(car(Stack)) ||
				outstream_p(car(Stack))
			) {
				if (s == EV_INPUT) {
					Stream_flags[Instream] &= ~LOCK_TAG;
					Instream = stream_id(car(Stack));
				}
				else {
					Stream_flags[Outstream] &= ~LOCK_TAG;
					Outstream = stream_id(car(Stack));
				}
				unsave(2);
				s = restore_state();
			}
			else {
				x = car(Stack);
				if (s == EV_INPUT) {
					if (!instream_p(Acc))
						error(inerr, Acc);
					set(car(Stack), make_stream(Instream,
								T_INSTREAM));
					Instream = stream_id(Acc);
					Stream_flags[Instream] |= LOCK_TAG;
				}
				else {
					if (!outstream_p(Acc))
						error(outerr, Acc);
					set(car(Stack), make_stream(Outstream,
								T_OUTSTREAM));
					Outstream = stream_id(Acc);
					Stream_flags[Outstream] |= LOCK_TAG;
				}
				c = 1;
				break;
			}
		}
		else { /* s == EV_ATOM */
			break;
		}}
		if (c) {	/* Continue evaluation if requested */
			c = 0;
			continue;
		}
		if (Stack == Stack_bottom)
			break;
	}
	Stack = Stack_bottom;
	Stack_bottom = unsave(1);
	State_stack = unsave(1);
	unsave(1);
	return Acc;		/* Return the evaluated expr */
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %esi, %r12d
movq %rdi, %r13
movq 0xb0da(%rip), %rsi      # 0x1e128
xorl %ebx, %ebx
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xb0ca(%rip)      # 0x1e128
movq 0xb0d3(%rip), %rdi      # 0x1e138
movq %rax, %rsi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xb0b2(%rip)      # 0x1e128
movq 0xb0b3(%rip), %rdi      # 0x1e130
movq %rax, %rsi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xb09a(%rip)      # 0x1e128
movq %rax, 0xb09b(%rip)      # 0x1e130
movl %ebx, -0x2c(%rbp)
movl %ebx, -0x30(%rbp)
cmpl %ebx, 0xb513(%rip)      # 0x1e5b4
je 0x130f3
movq 0xb086(%rip), %rax      # 0x1e130
movq %rax, 0xb077(%rip)      # 0x1e128
movl $0x1, %edi
callq 0x3851
movq %rax, 0xb06e(%rip)      # 0x1e130
movl $0x1, %edi
callq 0x3851
movq %rax, 0xb065(%rip)      # 0x1e138
movl $0x1, %edi
callq 0x3851
movq 0xb05c(%rip), %rax      # 0x1e140
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3042(%rip), %r15      # 0x1613c
cmpl $0x0, 0xb51f(%rip)      # 0x1e620
je 0x1310f
leaq 0xbab6(%rip), %rdi      # 0x1ebc0
callq 0x334f
movq %r13, %rax
testq %r13, %r13
js 0x1330c
movq 0xb4be(%rip), %rax      # 0x1e5e0
movzbl (%rax,%r13), %ecx
testb $0x10, %cl
je 0x1317e
movq 0xb03d(%rip), %rax      # 0x1e170
cmpq $-0x22, (%rax,%r13,8)
jne 0x1317e
movq %r13, %rax
testl %r12d, %r12d
jne 0x1330c
movq 0xafbb(%rip), %rsi      # 0x1e108
movq %r13, %rdi
movl $0x1, %edx
callq 0xdd28
movq %rax, 0xafdf(%rip)      # 0x1e140
cmpl $0x0, 0xb44c(%rip)      # 0x1e5b4
jne 0x130a3
movq 0xb44b(%rip), %rcx      # 0x1e5c0
movq (%rcx,%rax,8), %rax
jmp 0x1330c
movq %r13, %rax
testb $0x1, %cl
jne 0x1330c
movq %r13, %rax
testb $0x10, %cl
jne 0x1330c
movq %r13, %rax
cmpl $0x2, %r12d
je 0x1330c
movq %r13, 0xaf96(%rip)      # 0x1e140
movq 0xafbf(%rip), %rax      # 0x1e170
movq (%rax,%r13,8), %rbx
movslq -0x2c(%rbp), %rdi
movq 0xaf78(%rip), %rsi      # 0x1e138
movl $0x1, %edx
callq 0x36e8
movq %rax, 0xaf67(%rip)      # 0x1e138
cmpq 0xb4d0(%rip), %rbx      # 0x1e6a8
je 0x1384a
cmpq 0xb573(%rip), %rbx      # 0x1e758
je 0x1384a
cmpq 0xb54e(%rip), %rbx      # 0x1e740
je 0x1384a
cmpq 0xb4e9(%rip), %rbx      # 0x1e6e8
je 0x1384a
cmpq 0xb4f4(%rip), %rbx      # 0x1e700
je 0x1384a
cmpq 0xb4ef(%rip), %rbx      # 0x1e708
je 0x1384a
cmpq 0xb542(%rip), %rbx      # 0x1e768
je 0x1384a
cmpq 0xb555(%rip), %rbx      # 0x1e788
je 0x1384a
cmpq 0xb4f8(%rip), %rbx      # 0x1e738
je 0x1384a
cmpq 0xb513(%rip), %rbx      # 0x1e760
je 0x1384a
cmpq 0xb516(%rip), %rbx      # 0x1e770
je 0x1384a
cmpq 0xb4e1(%rip), %rbx      # 0x1e748
je 0x1384a
cmpq 0xb4dc(%rip), %rbx      # 0x1e750
je 0x1384a
cmpq 0xb50f(%rip), %rbx      # 0x1e790
je 0x1384a
testl %r12d, %r12d
jne 0x1384a
movq $-0x1, %rdi
movq $-0x1, %rsi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xae64(%rip)      # 0x1e110
movq 0xae8d(%rip), %rsi      # 0x1e140
movq %rax, %rdi
xorl %edx, %edx
callq 0x36e8
movq 0xae4c(%rip), %rdi      # 0x1e110
movq %rax, %rsi
xorl %edx, %edx
callq 0x36e8
movq 0xb2eb(%rip), %rcx      # 0x1e5c0
movq 0xae64(%rip), %rdx      # 0x1e140
movq (%rcx,%rdx,8), %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x36e8
movq $-0x1, 0xae1b(%rip) # 0x1e110
movq 0xae74(%rip), %rcx      # 0x1e170
movq 0xae3d(%rip), %rdx      # 0x1e140
movq (%rcx,%rdx,8), %r13
jmp 0x13884
movq %rax, 0xae2d(%rip)      # 0x1e140
xorl %r12d, %r12d
cmpl $0x0, 0xb297(%rip)      # 0x1e5b4
je 0x13335
cmpl $0x0, -0x30(%rbp)
je 0x13835
movl $0x0, -0x30(%rbp)
jmp 0x138a6
xorl %r12d, %r12d
movl -0x2c(%rbp), %ebx
leal -0x1(%rbx), %eax
cmpl $0x3, %eax
ja 0x1341f
movslq (%r15,%rax,4), %rax
addq %r15, %rax
jmpq *%rax
movq 0xae19(%rip), %rax      # 0x1e170
movq 0xadca(%rip), %rcx      # 0x1e128
movq (%rax,%rcx,8), %rbx
movq (%rax,%rbx,8), %r14
movq 0xb253(%rip), %rdx      # 0x1e5c0
movq (%rdx,%rbx,8), %rcx
movq (%rax,%rcx,8), %r13
movq (%rdx,%rcx,8), %rcx
movq (%rax,%rcx,8), %rdi
cmpq $-0x1, %r13
je 0x1338e
movq 0xadb6(%rip), %rcx      # 0x1e140
movq %rcx, (%rax,%r13,8)
cmpq $-0x1, %r14
jne 0x13971
movq %rdi, 0xada1(%rip)      # 0x1e140
movq (%rdx,%rbx,8), %rcx
movq (%rdx,%rcx,8), %rcx
movq (%rdx,%rcx,8), %rcx
movq (%rax,%rcx,8), %rsi
movq (%rax,%rdi,8), %rcx
testq %rcx, %rcx
js 0x13556
movq 0xb21d(%rip), %r8       # 0x1e5e0
testb $0x1, (%r8,%rcx)
je 0x13556
cmpq $-0x1d, (%rax,%rcx,8)
jne 0x13556
movq (%rdx,%rcx,8), %rcx
movq (%rax,%rcx,8), %rax
cmpq 0xb800(%rip), %rax      # 0x1ebe8
jne 0x133f7
movl $0x1, -0x30(%rbp)
movl $0x1, %r12d
movl $0x1, 0xb253(%rip)      # 0x1e654
callq 0x12923
movq %rax, %r13
movq %rax, 0xad30(%rip)      # 0x1e140
movl $0x0, 0xb23a(%rip)      # 0x1e654
jmp 0x13789
movl %ebx, %eax
andl $-0x2, %eax
cmpl $0x8, %eax
je 0x139ac
cmpl $0x7, %ebx
je 0x13a3b
leal -0x5(%rbx), %ecx
cmpl $0x1, %ecx
jbe 0x13aa2
cmpl $0xc, %ebx
je 0x13b7e
cmpl $0xa, %eax
jne 0x1331f
movups 0x4550(%rip), %xmm0     # 0x179ab
movups %xmm0, -0x65(%rbp)
movaps 0x453a(%rip), %xmm0     # 0x179a0
movaps %xmm0, -0x70(%rbp)
movups 0x455b(%rip), %xmm0     # 0x179cc
movups %xmm0, -0x44(%rbp)
movaps 0x4544(%rip), %xmm0     # 0x179c0
movaps %xmm0, -0x50(%rbp)
movq 0xace9(%rip), %rax      # 0x1e170
movq 0xac9a(%rip), %rcx      # 0x1e128
movq (%rax,%rcx,8), %r14
testq %r14, %r14
js 0x136a3
movq 0xb13e(%rip), %rdx      # 0x1e5e0
movb (%rdx,%r14), %dl
notb %dl
testb $0x21, %dl
jne 0x134b4
cmpq $-0x17, (%rax,%r14,8)
je 0x134de
testq %r14, %r14
js 0x136a3
movq 0xb11c(%rip), %rdx      # 0x1e5e0
movb (%rdx,%r14), %dl
notb %dl
testb $0x21, %dl
jne 0x136a3
cmpq $-0x19, (%rax,%r14,8)
jne 0x136a3
cmpl $0xa, %ebx
leaq 0xad98(%rip), %rdx      # 0x1e280
leaq 0xb1a9(%rip), %rsi      # 0x1e698
cmoveq %rsi, %rdx
movslq (%rdx), %rsi
leaq 0xb103(%rip), %rdi      # 0x1e600
andb $0x7f, (%rsi,%rdi)
movq 0xb0b8(%rip), %rsi      # 0x1e5c0
movq (%rax,%rcx,8), %rcx
movq (%rsi,%rcx,8), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, (%rdx)
movl $0x2, %edi
callq 0x3851
callq 0x13d0f
movl %eax, -0x2c(%rbp)
movb $0x1, %al
jmp 0x1381b
movl $0x1, %edi
callq 0x3851
movq %rax, 0xabc9(%rip)      # 0x1e108
movl $0x1, %edi
callq 0x3851
callq 0x13d0f
movl %eax, -0x2c(%rbp)
jmp 0x13823
cmpq 0xb14b(%rip), %rcx      # 0x1e6a8
je 0x136f6
cmpq 0xb1ee(%rip), %rcx      # 0x1e758
je 0x136f6
cmpq 0xb1c9(%rip), %rcx      # 0x1e740
je 0x136f6
cmpq 0xb164(%rip), %rcx      # 0x1e6e8
je 0x136f6
cmpq 0xb16f(%rip), %rcx      # 0x1e700
je 0x136f6
cmpq 0xb16a(%rip), %rcx      # 0x1e708
je 0x136f6
cmpq 0xb1bd(%rip), %rcx      # 0x1e768
je 0x136f6
cmpq 0xb1d0(%rip), %rcx      # 0x1e788
je 0x136f6
cmpq 0xb173(%rip), %rcx      # 0x1e738
je 0x136f6
cmpq 0xb18e(%rip), %rcx      # 0x1e760
je 0x136f6
cmpq 0xb191(%rip), %rcx      # 0x1e770
je 0x136f6
cmpq 0xb15c(%rip), %rcx      # 0x1e748
je 0x136f6
cmpq 0xb157(%rip), %rcx      # 0x1e750
je 0x136f6
cmpq 0xb18a(%rip), %rcx      # 0x1e790
je 0x136f6
testq %rcx, %rcx
js 0x13776
movq 0xafc4(%rip), %rdx      # 0x1e5e0
testb $0x1, (%rdx,%rcx)
je 0x1374f
cmpq $-0x1e, (%rax,%rcx,8)
jne 0x1374f
movq $-0x1, %rcx
testq %rsi, %rsi
js 0x13656
testb $0x10, (%rdx,%rsi)
je 0x13656
cmpq $-0x22, (%rax,%rsi,8)
movq $-0x1, %rax
cmovneq %rax, %rsi
movq %rsi, %rcx
movslq 0xaf53(%rip), %rax      # 0x1e5b0
leal 0x1(%rax), %edx
cmpl 0xac26(%rip), %edx      # 0x1e28c
leaq 0xac23(%rip), %rsi      # 0x1e290
movq %rcx, (%rsi,%rax,8)
movl $0x0, %eax
cmovgel %eax, %edx
movl %edx, 0xaf31(%rip)      # 0x1e5b0
callq 0x1421a
movq 0xaab5(%rip), %rdi      # 0x1e140
leaq -0x2c(%rbp), %rsi
callq 0x14044
movq %rax, %r13
movl $0x2, -0x30(%rbp)
jmp 0x13789
movq 0xaa96(%rip), %rsi      # 0x1e140
cmpl $0xa, %ebx
jne 0x1370f
movq $-0x17, %r13
testq %rsi, %rsi
js 0x137b0
movq 0xaf1a(%rip), %rcx      # 0x1e5e0
movb (%rcx,%rsi), %cl
notb %cl
leaq -0x70(%rbp), %rdi
leaq 0xafc2(%rip), %rbx      # 0x1e698
testb $0x21, %cl
jne 0x137c8
cmpq $-0x17, (%rax,%rsi,8)
leaq 0xafad(%rip), %rbx      # 0x1e698
jne 0x137c8
jmp 0x137cd
leaq -0x30(%rbp), %rsi
leaq -0x2c(%rbp), %rdx
callq 0xf08e
movq %rax, %r13
movq %rax, 0xaa33(%rip)      # 0x1e140
jmp 0x13789
movq $-0x19, %r13
testq %rsi, %rsi
js 0x137bd
movq 0xaeba(%rip), %rcx      # 0x1e5e0
movb (%rcx,%rsi), %cl
notb %cl
leaq -0x50(%rbp), %rdi
leaq 0xab4a(%rip), %rbx      # 0x1e280
testb $0x21, %cl
jne 0x137c8
cmpq $-0x19, (%rax,%rsi,8)
leaq 0xab35(%rip), %rbx      # 0x1e280
jne 0x137c8
jmp 0x137cd
testq %rcx, %rcx
js 0x13776
movq 0xae85(%rip), %rdx      # 0x1e5e0
testb $0x1, (%rdx,%rcx)
je 0x13776
cmpq $-0x25, (%rax,%rcx,8)
jne 0x13776
callq 0x108b1
movq %rax, 0xa9cc(%rip)      # 0x1e140
jmp 0x13782
leaq 0x39e9(%rip), %rdi      # 0x17166
callq 0x33eb
movq $-0x1, %r13
movl -0x30(%rbp), %ebx
cmpl $0x2, %ebx
je 0x1331f
movl $0x1, %edi
callq 0x3851
callq 0x13d0f
movl %eax, -0x2c(%rbp)
testl %ebx, %ebx
je 0x13823
jmp 0x1331f
leaq -0x70(%rbp), %rdi
leaq 0xaedd(%rip), %rbx      # 0x1e698
jmp 0x137c8
leaq -0x50(%rbp), %rdi
leaq 0xaab8(%rip), %rbx      # 0x1e280
callq 0x33eb
movl (%rbx), %edi
movq %r13, %rsi
callq 0x119bd
movq 0xa992(%rip), %rcx      # 0x1e170
movq 0xa943(%rip), %rdx      # 0x1e128
movq %rax, (%rcx,%rdx,8)
movq 0xadd0(%rip), %rax      # 0x1e5c0
movq 0xa949(%rip), %rdx      # 0x1e140
movq (%rax,%rdx,8), %rax
movq (%rcx,%rax,8), %rax
movslq %eax, %rcx
leaq 0xadf7(%rip), %rdx      # 0x1e600
orb $-0x80, (%rcx,%rdx)
movl %eax, (%rbx)
movl $0x1, -0x30(%rbp)
xorl %eax, %eax
movq %r14, %r13
testb %al, %al
je 0x1331f
cmpl $0x0, 0xad8a(%rip)      # 0x1e5b4
je 0x13338
jmp 0x1331f
movq 0xa8ec(%rip), %rax      # 0x1e128
cmpq 0xa8ed(%rip), %rax      # 0x1e130
jne 0x138a6
jmp 0x130a3
movq 0xa8ef(%rip), %rdi      # 0x1e140
movq %rdi, %rsi
xorl %edx, %edx
callq 0x36e8
movq $-0x1, %r13
movq $-0x1, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x36e8
movq $-0x1, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x36e8
movq 0xa89d(%rip), %rsi      # 0x1e128
xorl %r12d, %r12d
movq %rax, %rdi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xa889(%rip)      # 0x1e128
movl $0x1, -0x2c(%rbp)
cmpl $0x0, 0xad07(%rip)      # 0x1e5b4
je 0x130fa
jmp 0x130a3
cmpq $-0x3, 0xa880(%rip)     # 0x1e140
jne 0x13bcc
movq 0xa8a3(%rip), %rax      # 0x1e170
movq 0xa854(%rip), %rcx      # 0x1e128
movq (%rax,%rcx,8), %rdi
movq 0xace1(%rip), %rcx      # 0x1e5c0
movq (%rax,%rdi,8), %rax
movq (%rcx,%rax,8), %rax
movq (%rcx,%rax,8), %rax
movq (%rcx,%rax,8), %rax
movq (%rcx,%rax,8), %rsi
callq 0x13fc8
movq %rax, %r13
movl $0x1, %r12d
movl $0x1, %edi
callq 0x3851
movq 0xacae(%rip), %rax      # 0x1e5c0
movq 0xa7ef(%rip), %rcx      # 0x1e108
movq (%rax,%rcx,8), %rax
movq %rax, 0xa7e4(%rip)      # 0x1e108
jmp 0x13c0e
movl $0x1, %edi
callq 0x3851
movq %rax, %r14
movl $0x1, %edi
callq 0x3851
callq 0x13d0f
movl %eax, -0x2c(%rbp)
cmpq $-0x3, 0xa7f0(%rip)     # 0x1e140
movq 0xac69(%rip), %rcx      # 0x1e5c0
movq (%rcx,%r14,8), %rax
jne 0x13961
movq (%rcx,%rax,8), %rax
movq 0xa808(%rip), %rcx      # 0x1e170
movq (%rcx,%rax,8), %r13
jmp 0x13c15
testq %r14, %r14
js 0x13988
movq 0xac63(%rip), %rax      # 0x1e5e0
testb $0x11, (%rax,%r14)
je 0x13c2f
movq (%rdx,%rbx,8), %rax
movq (%rdx,%rax,8), %rax
movq (%rdx,%rax,8), %rsi
leaq 0x3256(%rip), %rdi      # 0x16bf1
callq 0x33eb
movq $-0x1, %r13
jmp 0x1331f
movq 0xac0d(%rip), %rax      # 0x1e5c0
movq 0xa7b6(%rip), %rcx      # 0x1e170
movq 0xa767(%rip), %rdx      # 0x1e128
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdi
movq (%rax,%rdx,8), %rsi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xa74d(%rip)      # 0x1e128
movq 0xa75e(%rip), %rcx      # 0x1e140
cmpq $-0x3, %rcx
sete %dl
cmpl $0x8, %ebx
sete %sil
testb %dl, %sil
jne 0x13bab
cmpq $-0x3, %rcx
setne %cl
cmpl $0x9, %ebx
sete %dl
testb %cl, %dl
jne 0x13bab
movq 0xa75b(%rip), %rcx      # 0x1e170
movq (%rcx,%rax,8), %rax
cmpq $-0x1, %rax
je 0x13bab
movq 0xab96(%rip), %rdx      # 0x1e5c0
cmpq $-0x1, (%rdx,%rax,8)
movq (%rcx,%rax,8), %r13
jne 0x13c15
jmp 0x13a8b
movq 0xab7e(%rip), %rax      # 0x1e5c0
movq 0xa727(%rip), %rcx      # 0x1e170
movq 0xa6d8(%rip), %rdx      # 0x1e128
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdi
movq (%rax,%rdx,8), %rsi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xa6be(%rip)      # 0x1e128
movq 0xab4f(%rip), %rcx      # 0x1e5c0
movq 0xa6f8(%rip), %rdx      # 0x1e170
movq (%rdx,%rax,8), %rax
cmpq $-0x1, (%rcx,%rax,8)
movq (%rdx,%rax,8), %r13
jne 0x13c15
movl $0x2, %edi
callq 0x3851
callq 0x13d0f
movl %eax, -0x2c(%rbp)
jmp 0x13c15
movaps 0x3ee7(%rip), %xmm0     # 0x17990
movaps %xmm0, -0x40(%rbp)
movaps 0x3ecc(%rip), %xmm0     # 0x17980
movaps %xmm0, -0x50(%rbp)
cmpl $0x6, %ebx
jne 0x13b2f
movq 0xa67c(%rip), %rsi      # 0x1e140
testq %rsi, %rsi
js 0x13afc
movq 0xab10(%rip), %rax      # 0x1e5e0
testb $0x1, (%rax,%rsi)
je 0x13afc
movq 0xa693(%rip), %rax      # 0x1e170
cmpq $-0x1e, (%rax,%rsi,8)
jne 0x13afc
movq $-0x23, %rdi
movl $0x1, %edx
callq 0x36e8
movq %rax, 0xa644(%rip)      # 0x1e140
movq 0xa63d(%rip), %rsi      # 0x1e140
testq %rsi, %rsi
js 0x13c21
movq 0xaacd(%rip), %rax      # 0x1e5e0
testb $0x1, (%rax,%rsi)
je 0x13c21
movq 0xa64c(%rip), %rax      # 0x1e170
cmpq $-0x23, (%rax,%rsi,8)
jne 0x13c21
movl $0x1, %edi
callq 0x3851
movq %rax, %r14
movl $0x1, %edi
callq 0x3851
callq 0x13d0f
movl %eax, -0x2c(%rbp)
movq 0xa5eb(%rip), %rax      # 0x1e140
movq 0xaa64(%rip), %rcx      # 0x1e5c0
movq %rax, (%rcx,%r14,8)
movq $-0x6, 0xa5d5(%rip) # 0x1e140
movl $0x0, -0x30(%rbp)
movq $-0x6, %r13
jmp 0x1331f
movq 0xa5bb(%rip), %rdi      # 0x1e140
callq 0x142ab
movq %rax, %r13
movl $0x1, %edi
callq 0x3851
callq 0x13d0f
movl %eax, -0x2c(%rbp)
movl $0x0, -0x30(%rbp)
jmp 0x1331f
movl $0x2, %r12d
movl $0x2, %edi
callq 0x3851
callq 0x13d0f
movl %eax, -0x2c(%rbp)
movq 0xa576(%rip), %r13      # 0x1e140
jmp 0x13c15
movq 0xa9ed(%rip), %rbx      # 0x1e5c0
movq 0xa596(%rip), %r14      # 0x1e170
movl $0x1, %edi
callq 0x3851
movq (%r14,%rax,8), %rax
movq (%rbx,%rax,8), %rax
movq (%rbx,%rax,8), %rax
movq (%rbx,%rax,8), %rax
movq 0xa575(%rip), %rcx      # 0x1e170
movq 0xa9be(%rip), %rdx      # 0x1e5c0
movq (%rcx,%rax,8), %rax
movq (%rdx,%rax,8), %rax
movq (%rcx,%rax,8), %r13
movl $0x2, -0x2c(%rbp)
movl $0x1, -0x30(%rbp)
jmp 0x1331f
leaq -0x50(%rbp), %rdi
callq 0x33eb
jmp 0x1331f
movq $-0x1, %rdi
movq $-0x1, %rsi
xorl %edx, %edx
callq 0x36e8
movq %rax, 0xa4f5(%rip)      # 0x1e140
movq 0xa96e(%rip), %rcx      # 0x1e5c0
movq %rax, (%rcx,%r13,8)
movq 0xa513(%rip), %rdx      # 0x1e170
movq (%rcx,%rbx,8), %rsi
movq %rax, (%rdx,%rsi,8)
movq (%rcx,%r14,8), %rax
movq %rax, (%rdx,%rbx,8)
movq (%rdx,%r14,8), %r13
jmp 0x1331f