// File: /workspace/github_c_makefile_star2_O1/mist64[P]cbm6502asm/src/direct1.c
// Function: direct1
int direct1(char *macprmbgn, char **maclinptr, char *macargbgn) {
	int i, j;
	long l;

	print = clist;
	spechar = '1';

	/* conditional assembly directives */

	if (!strcmp(s2, ".ELSE")) {
		if (!isspace(line[0])) display_error(error = 'F');
		if (condlevel) {
			condstk[condlevel >> 4] ^= 1 << (condlevel & 15);
			for (condit = TRUE, i = 1; condit && i <= condlevel;
			     i++)
				condit &= condstk[i >> 4] >> (i & 15) & 1;
		} else
			display_error(error = 'N'); /* no if */
		return 1;
	}

	if (!strcmp(s2, ".ENDIF")) {
		if (!isspace(line[0])) display_error(error = 'F');
		if (condlevel) {
			condlevel--;
			for (condit = TRUE, i = 1; condit && i <= condlevel;
			     i++)
				condit &= condstk[i >> 4] >> (i & 15) & 1;
		} else
			display_error(error = 'N'); /* no if */
		return 1;
	}

	if (!strcmp(s2, ".IFB") || !strcmp(s2, ".IFNB") ||
	    !strcmp(s2, ".IFIDN") || !strcmp(s2, ".IFNIDN") ||
	    !strcmp(s2, ".IFDEF") || !strcmp(s2, ".IFNDEF") ||
	    !strcmp(s2, ".IFN") || !strcmp(s2, ".IFE") ||
	    !strcmp(s2, ".IFGT") || !strcmp(s2, ".IFGE") ||
	    !strcmp(s2, ".IFLT") || !strcmp(s2, ".IFLE") ||
	    !strcmp(s2, ".IF")) {
		if (!isspace(line[0])) display_error(error = 'F');
		if (!condit) /* not interest in type if condit is false */
			return (pushcond(condit));
		if (!strcmp(s2, ".IFB")) {
			i = strlen(s3) - 1;
			if (*s3 != '<' || s3[i] != '>' || i < 1) {
				display_error(error = 'F');
				return 1;
			}
			return (pushcond(i == 1));
		}
		if (!strcmp(s2, ".IFNB")) {
			i = strlen(s3) - 1;
			if (*s3 != '<' || s3[i] != '>' || i < 1) {
				display_error(error = 'F');
				return 1;
			}
			return (pushcond(i > 1));
		}
		if (!strcmp(&p2[strlen(s2) - 3], "IDN")) {
			parses3(1);
			while (*s3) s3++;
			s3++;
			if (!strcmp(s2, ".IFIDN")) {
				j = strlen(p3) - 1;
				i = strlen(s3) - 1;
				if (*s3 != '<' || s3[i] != '>' || i < 1 ||
				    *p3 != '<' || p3[j] != '>' || j < 1) {
					display_error(error = 'F');
					return 1;
				}
				return (pushcond(!strcmp(s3, p3)));
			}
			if (!strcmp(s2, ".IFNIDN")) {
				j = strlen(p3) - 1;
				i = strlen(s3) - 1;
				if (*s3 != '<' || s3[i] != '>' || i < 1 ||
				    *p3 != '<' || p3[j] != '>' || j < 1) {
					display_error(error = 'F');
					return 1;
				}
				return (pushcond(strcmp(s3, p3)));
			}
		} else {
			i = evaluate(s3, &l); /* i is defined, l is value */
			equ = TRUE;
			d[data++] = (l >> 8) & 255;
			d[data++] = l & 255;
			if (!i && !strcmp(&p2[strlen(s2) - 3], "DEF"))
				for (error = j = 0; j < 5; j++) {
					if (error_field[j] ==
					    'U') /* no undefined error if */
						error_field[j] =
						        ' '; /* testing for
						                defined */
					error |= !isspace(error_field[j]);
				}
			if (!strcmp(s2, ".IFDEF")) return (pushcond(i));
			if (!strcmp(s2, ".IFNDEF")) return (pushcond(!i));
			if (i) {
				if (!strcmp(s2, ".IFE"))
					return (pushcond(l == 0));
				if (!strcmp(s2, ".IFGE"))
					return (pushcond(l >= 0));
				if (!strcmp(s2, ".IFGT"))
					return (pushcond(l > 0));
				if (!strcmp(s2, ".IFLE"))
					return (pushcond(l <= 0));
				if (!strcmp(s2, ".IFLT"))
					return (pushcond(l < 0));
				if (!strcmp(s2, ".IFN") || !strcmp(s2, ".IF"))
					return (pushcond(l != 0));
				display_error(error = 'O');
				return 1;
			} else {
				display_error(error = 'U');
				return 1;
			}
		}
	}
	if (!condit)
		return 1; /* not interested in others if conditional false */

	/* macro directives */

	print = 0;
	if (!strcmp(s2, ".REPT")) {    /* repeat directive */
		if (!isspace(line[0])) /* save label if any */
			if (good_label(s1)) get_label(s1, 1);
		sprintf(p1, "___T.M.P.$$$%08.8ld", tmpcounter++);
		i = evaluate(s3, &l);
		if (i) {
			char *linptr, args[4], parm[4];
			struct macdef *reptmac;
			p3[0] = p3[1] = 0;
			macro_def(macprmbgn, maclinptr, macargbgn, 2);
			outline(addr = 0, data = 0, (char *)0, (char)0,
			        (char)1);
			reptmac = macro_head; /* copy macro address for deletion
			                       */
			for (i = 0; i < l; i++) {
				parm[0] = parm[1] = parm[2] = parm[3] = 0;
				args[0] = args[1] = args[2] = args[3] = 0;
				s3 = reptmac->name;
				s3 += 21;
				while (!*s3) s3++;
				linptr = s3;
				macrolevel++;
				pass1(parm, &linptr, args);
				macrolevel--;
			}
			if ((tmpmac = macro_head) == reptmac)
				macro_head = reptmac->nextmac; /* unlink rept
				                                  macro */
			else {
				while (tmpmac->nextmac != reptmac)
					tmpmac = tmpmac->nextmac;
				tmpmac->nextmac =
				        reptmac->nextmac; /* unlink rept macro
				                           */
			}
			free((char *)reptmac); /* destroy temporary macro
			                          definition */
		} else
			display_error(error = 'U');
		addr = data = 0;
		return 1;
	}

	if (!strcmp(s2, ".IRPC")) { /* repeat directive */
		char *linptr, args[4], *parm, *chars;
		struct macdef *reptmac;
		if (!isspace(line[0])) /* save label if any */
			if (good_label(s1)) get_label(s1, 1);
		sprintf(p1, "___T.M.P.$$$%08.8ld", tmpcounter++);
		while (*s3 != ',' && *s3) s3++;
		*s3 = 0;
		if (!(chars = (char *)malloc(strlen(++s3) + 2))) memallocerr();
		strcpy(chars, s3);
		s3 = p3;
		macro_def(macprmbgn, maclinptr, macargbgn, 3);
		outline(addr = 0, data = 0, (char *)0, (char)0, (char)1);
		reptmac = macro_head; /* copy macro address for deletion */
		for (i = 0; i < strlen(chars); i++) {
			args[0] = chars[i];
			args[1] = args[2] = args[3] = 0;
			s3 = reptmac->name;
			while (*s3) s3++;
			while (!*s3) s3++;
			parm = s3;
			while (*s3) s3++;
			while (!*s3) s3++;
			linptr = s3;
			macrolevel++;
			pass1(parm, &linptr, args);
			macrolevel--;
		}
		if ((tmpmac = macro_head) == reptmac)
			macro_head = reptmac->nextmac; /* unlink rept macro */
		else {
			while (tmpmac->nextmac != reptmac)
				tmpmac = tmpmac->nextmac;
			tmpmac->nextmac =
			        reptmac->nextmac; /* unlink rept macro */
		}
		free((char *)reptmac); /* destroy temporary macro definition */
		free((char *)chars); /* return memory used for character string
		                      */
		addr = data = 0;
		return 1;
	}

	if (!strcmp(s2, ".IRP")) { /* repeat directive */
		char *linptr, *parm, *chars;
		struct macdef *reptmac;
		if (!isspace(line[0])) /* save label if any */
			if (good_label(s1)) get_label(s1, 1);
		sprintf(p1, "___T.M.P.$$$%08.8ld", tmpcounter++);
		if (!(chars = (char *)calloc(strlen(p3), 1))) memallocerr();
		parses3(1);
		while (*s3) s3++;
		s3++;
		i = 0;
		while (*s3 || s3[1]) chars[i++] = *s3++;
		s3 = p3;
		macro_def(macprmbgn, maclinptr, macargbgn, 4);
		outline((char)0, (char)0, (char *)0, (char)0, (char)1);
		reptmac = macro_head; /* copy macro address for deletion */
		i = 0;
		while (chars[i]) {
			s3 = reptmac->name;
			while (*s3) s3++;
			while (!*s3) s3++;
			parm = s3;
			while (*s3) s3++;
			while (!*s3) s3++;
			linptr = s3;
			macrolevel++;
			pass1(parm, &linptr, &chars[i]);
			macrolevel--;
			while (chars[i++])
				; /* point to next arg */
		}
		if ((tmpmac = macro_head) == reptmac)
			macro_head = reptmac->nextmac; /* unlink rept macro */
		else {
			while (tmpmac->nextmac != reptmac)
				tmpmac = tmpmac->nextmac;
			tmpmac->nextmac =
			        reptmac->nextmac; /* unlink rept macro */
		}
		free((char *)reptmac); /* destroy temporary macro definition */
		free((char *)chars); /* return memory used for character string
		                      */
		addr = data = 0;
		return 1;
	}

	if (!strcmp(s2, ".MACRO") ||
	    !strcmp(s2, ".MAC")) { /* macro definition? */
		if (isspace(line[0])) display_error(error = 'F');
		macro_def(macprmbgn, maclinptr, macargbgn, 1);
		return 1;
	}

	if (!strcmp(s2, ".INCLUDE")) { /* include ? */
		if (!isspace(line[0])) display_error(error = 'F');
		if (!incl_sp) {
			display_error(error = 'N');
			return 1;
		}
		for (i = 0; i < strlen(s3); i++)
			if (s3[i] <= ' ' || s3[i] == ';')
				s3[i] = 0; /* blank or ; terminates file name */
		incl_stack[--incl_sp] = file_src;
		filnamptr[incl_sp] = fnptr;
		strcpy(&filename[fnptr], srcfile);
		fnptr += strlen(srcfile) + 1;
		appendef(s3, ".src");
		for (i = strlen(s3) - 1; i > 0; i--)
			if (s3[i] == '\\' || s3[i] == ']' ||
			    s3[i] == ':') /* explicit path? */
				break;    /* yes */
		if (i <= 0) {
			strcpy(srcfile, defipath); /* default incl path */
			strcat(srcfile, s3);
			strcpy(s3, srcfile);
		}
		for (i = 0; (srcfile[i] = toupper(s3[i])); i++)
			;
		fprintf(file_tmp, "%sF%s\n", STATLINE, srcfile);
		file_src = fopen(s3, "r");
		if (!file_src) {
			file_src = incl_stack[incl_sp++];
			error_msg("Could not open included file:", s3, 0);
		}
		return (print = 1);
	}
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdx, %rbp
movq %rsi, %r13
movq %rdi, %r14
leaq 0xbbf0(%rip), %rax      # 0xdb7c
movl (%rax), %eax
leaq 0xbe57(%rip), %rbx      # 0xddec
movl %eax, (%rbx)
leaq 0xbc78(%rip), %rax      # 0xdc16
movb $0x31, (%rax)
leaq 0xc0f0(%rip), %r15      # 0xe098
movq (%r15), %r12
leaq 0x82b5(%rip), %rsi      # 0xa267
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x232f
leaq 0x82a4(%rip), %rsi      # 0xa26d
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x23d9
leaq 0x8294(%rip), %rsi      # 0xa274
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x8282(%rip), %rsi      # 0xa279
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x8271(%rip), %rsi      # 0xa27f
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x8261(%rip), %rsi      # 0xa286
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x8252(%rip), %rsi      # 0xa28e
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x8242(%rip), %rsi      # 0xa295
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x8233(%rip), %rsi      # 0xa29d
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x8225(%rip), %rsi      # 0xa2a2
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x8217(%rip), %rsi      # 0xa2a7
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x820a(%rip), %rsi      # 0xa2ad
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x81fd(%rip), %rsi      # 0xa2b3
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x81f0(%rip), %rsi      # 0xa2b9
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20ec
leaq 0x81e3(%rip), %rsi      # 0xa2bf
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
jne 0x2579
callq 0x1230
movq %rax, %r12
movq (%rax), %rax
leaq 0xbfb2(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x211d
leaq 0xbce0(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ed1
leaq 0xba44(%rip), %rax      # 0xdb68
cmpl $0x0, (%rax)
je 0x2478
movq %r14, %rbx
movq %r13, %r14
movq (%r15), %r13
leaq 0x8137(%rip), %rsi      # 0xa274
movq %r13, %rdi
callq 0x1130
testl %eax, %eax
je 0x247f
leaq 0x8125(%rip), %rsi      # 0xa279
movq %r13, %rdi
callq 0x1130
testl %eax, %eax
je 0x24c0
movq %r13, %rdi
callq 0x10b0
leaq 0xbe0d(%rip), %r13      # 0xdf80
leaq (%rax,%r13), %rdi
addq $-0x3, %rdi
leaq 0x8100(%rip), %rsi      # 0xa282
callq 0x1130
testl %eax, %eax
je 0x2505
leaq 0xbf0a(%rip), %rax      # 0xe0a0
movq (%rax), %rdi
leaq 0x8(%rsp), %r14
movq %r14, %rsi
callq 0x49bd
movl %eax, %ebp
leaq 0xc113(%rip), %rax      # 0xe2c2
movb $0x1, (%rax)
movq (%r14), %rbx
leaq 0xc105(%rip), %rax      # 0xe2c1
movsbq (%rax), %rcx
leal 0x1(%rcx), %edx
movb %dl, (%rax)
leaq 0xbff4(%rip), %rsi      # 0xe1c0
movb %bh, (%rsi,%rcx)
addl $0x2, %ecx
movb %cl, (%rax)
movsbq %dl, %rax
movq %rbx, (%rsp)
movb %bl, (%rsi,%rax)
testl %ebp, %ebp
jne 0x2241
movq (%r15), %rdi
callq 0x10b0
leaq (%rax,%r13), %rdi
addq $-0x3, %rdi
leaq 0x8097(%rip), %rsi      # 0xa291
callq 0x1130
testl %eax, %eax
jne 0x2241
leaq 0xbbe6(%rip), %rax      # 0xddf0
movb $0x0, (%rax)
xorl %ecx, %ecx
leaq 0xba5a(%rip), %rdx      # 0xdc70
cmpb $0x55, (%rdx,%rcx)
jne 0x2220
movb $0x20, (%rdx,%rcx)
movq (%r12), %rsi
movsbq (%rdx,%rcx), %rdi
movzwl (%rsi,%rdi,2), %esi
btl $0xd, %esi
setae %sil
orb %sil, (%rax)
incq %rcx
cmpq $0x5, %rcx
jne 0x2216
movq (%r15), %r14
leaq 0x8043(%rip), %rsi      # 0xa28e
movq %r14, %rdi
callq 0x1130
testl %eax, %eax
je 0x283c
leaq 0x8033(%rip), %rsi      # 0xa295
movq %r14, %rdi
callq 0x1130
testl %eax, %eax
je 0x2843
testl %ebp, %ebp
je 0x28c2
leaq 0x8021(%rip), %rsi      # 0xa2a2
movq %r14, %rdi
callq 0x1130
testl %eax, %eax
je 0x293b
leaq 0x8015(%rip), %rsi      # 0xa2ad
movq %r14, %rdi
callq 0x1130
testl %eax, %eax
je 0x2ace
leaq 0x7ff8(%rip), %rsi      # 0xa2a7
movq %r14, %rdi
callq 0x1130
testl %eax, %eax
je 0x2d15
leaq 0x7ff3(%rip), %rsi      # 0xa2b9
movq %r14, %rdi
callq 0x1130
testl %eax, %eax
je 0x2fa8
leaq 0x7fd6(%rip), %rsi      # 0xa2b3
movq %r14, %rdi
callq 0x1130
testl %eax, %eax
je 0x300b
leaq 0x7fa9(%rip), %rsi      # 0xa29d
movq %r14, %rdi
callq 0x1130
testl %eax, %eax
je 0x2ffb
leaq 0x7fb4(%rip), %rsi      # 0xa2bf
movq %r14, %rdi
callq 0x1130
testl %eax, %eax
je 0x2ffb
leaq 0xbace(%rip), %rax      # 0xddf0
movb $0x4f, (%rax)
movl $0x4f, %edi
jmp 0x2934
callq 0x1230
movq (%rax), %rax
leaq 0xbd72(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x235d
leaq 0xbaa0(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ed1
leaq 0xb7fc(%rip), %rax      # 0xdb60
movl (%rax), %eax
testl %eax, %eax
je 0x2828
movl %eax, %ecx
andb $0xf, %cl
movl $0x1, %esi
shll %cl, %esi
movl %eax, %ecx
sarl $0x4, %ecx
movslq %ecx, %rcx
leaq 0xb947(%rip), %rdx      # 0xdcd0
xorw %si, (%rdx,%rcx,2)
movl $0x1, %ebp
leaq 0xb7cf(%rip), %rsi      # 0xdb68
movl %ebp, (%rsi)
testl %eax, %eax
jle 0x2950
movl $0x1, %edi
movl $0x1, %r8d
movl %r8d, %r9d
movl %edi, %ecx
shrl $0x4, %ecx
movswl (%rdx,%rcx,2), %r8d
movl %edi, %ecx
andb $0xf, %cl
shrl %cl, %r8d
andl %r9d, %r8d
je 0x23d1
leal 0x1(%rdi), %ecx
cmpl %eax, %edi
movl %ecx, %edi
jl 0x23ae
movl %r8d, (%rsi)
jmp 0x294b
callq 0x1230
movq (%rax), %rax
leaq 0xbcc8(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x2407
leaq 0xb9f6(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ed1
leaq 0xb752(%rip), %rcx      # 0xdb60
movl (%rcx), %eax
testl %eax, %eax
je 0x2828
leal -0x1(%rax), %edx
movl %edx, (%rcx)
leaq 0xb744(%rip), %rdx      # 0xdb68
movl $0x1, (%rdx)
movl $0x1, %ebp
cmpl $0x2, %eax
jl 0x2950
movl $0x1, %r8d
movl $0x2, %edi
leaq 0xb886(%rip), %rsi      # 0xdcd0
movl %r8d, %r9d
leal -0x1(%rdi), %ecx
movl %ecx, %r8d
shrl $0x4, %r8d
movswl (%rsi,%r8,2), %r8d
andb $0xf, %cl
shrl %cl, %r8d
andl %r9d, %r8d
je 0x2470
leal 0x1(%rdi), %ecx
cmpl %eax, %edi
movl %ecx, %edi
jl 0x244a
movl %r8d, (%rdx)
jmp 0x294b
xorl %edi, %edi
jmp 0x2946
leaq 0xbc1a(%rip), %rax      # 0xe0a0
movq (%rax), %rbx
movq %rbx, %rdi
callq 0x10b0
cmpb $0x3c, (%rbx)
jne 0x2925
decl %eax
movslq %eax, %rcx
cmpb $0x3e, (%rbx,%rcx)
setne %dl
testl %ecx, %ecx
setle %cl
orb %dl, %cl
cmpb $0x1, %cl
je 0x2925
xorl %edi, %edi
cmpl $0x1, %eax
jmp 0x2942
leaq 0xbbd9(%rip), %rax      # 0xe0a0
movq (%rax), %rbx
movq %rbx, %rdi
callq 0x10b0
cmpb $0x3c, (%rbx)
jne 0x2925
decl %eax
movslq %eax, %rcx
cmpb $0x3e, (%rbx,%rcx)
setne %dl
testl %ecx, %ecx
setle %cl
orb %dl, %cl
cmpb $0x1, %cl
je 0x2925
xorl %edi, %edi
cmpl $0x2, %eax
setge %dil
jmp 0x2946
movl $0x1, %edi
callq 0x5171
leaq 0xbb8a(%rip), %rax      # 0xe0a0
movq (%rax), %r12
cmpb $0x0, (%r12)
je 0x2535
incq %r12
movq %r12, (%rax)
cmpb $0x0, (%r12)
leaq 0x1(%r12), %r12
jne 0x2523
decq %r12
incq %r12
movq %r12, (%rax)
movq (%r15), %r13
leaq 0x7d3a(%rip), %rsi      # 0xa27f
movq %r13, %rdi
callq 0x1130
testl %eax, %eax
je 0x284c
leaq 0x7d2a(%rip), %rsi      # 0xa286
movq %r13, %rdi
callq 0x1130
testl %eax, %eax
movq %r14, %r13
movq %rbx, %r14
leaq 0xb879(%rip), %rbx      # 0xddec
je 0x28d3
movq %r13, (%rsp)
movq %rbp, %r13
leaq 0xb5e1(%rip), %rax      # 0xdb68
movl $0x1, %ebp
cmpl $0x0, (%rax)
je 0x2950
movl $0x0, (%rbx)
movq (%r15), %r12
leaq 0x7d1e(%rip), %rsi      # 0xa2c3
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
movq %r13, %rbp
je 0x2961
leaq 0x7d1e(%rip), %rsi      # 0xa2dd
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x2ade
leaq 0x7d0d(%rip), %rsi      # 0xa2e3
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x2d71
leaq 0x7cfb(%rip), %rsi      # 0xa2e8
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x2d25
leaq 0x7ceb(%rip), %rsi      # 0xa2ef
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x2d25
leaq 0x7cd9(%rip), %rsi      # 0xa2f4
movq %r12, %rdi
callq 0x1130
xorl %ebp, %ebp
testl %eax, %eax
jne 0x2950
callq 0x1230
movq (%rax), %rax
leaq 0xba74(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x265b
leaq 0xb7a2(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ed1
leaq 0xb916(%rip), %r12      # 0xdf78
cmpl $0x0, (%r12)
je 0x2828
leaq 0xba2c(%rip), %rbp      # 0xe0a0
movq (%rbp), %r14
cmpb $0x0, (%r14)
je 0x26ac
xorl %r15d, %r15d
movb (%r14,%r15), %al
cmpb $0x21, %al
setge %cl
cmpb $0x3b, %al
setne %al
testb %al, %cl
jne 0x2698
movb $0x0, (%r14,%r15)
incq %r15
movq (%rbp), %r14
movq %r14, %rdi
callq 0x10b0
cmpq %r15, %rax
ja 0x2681
leaq 0xb125(%rip), %rax      # 0xd7d8
movq (%rax), %rax
movslq (%r12), %rcx
leaq -0x1(%rcx), %rdx
movl %edx, (%r12)
leaq 0xb737(%rip), %rdx      # 0xde00
movq %rax, -0x8(%rdx,%rcx,8)
leaq 0xb3ef(%rip), %r15      # 0xdac4
movslq (%r15), %r13
leaq 0xb881(%rip), %rax      # 0xdf60
movl %r13d, -0x4(%rax,%rcx,4)
movq %r13, %rdi
addq 0xa8ea(%rip), %rdi      # 0xcfd8
leaq 0xafcb(%rip), %r12      # 0xd6c0
movq %r12, %rsi
callq 0x1080
movq %r12, %rdi
callq 0x10b0
addl %r13d, %eax
incl %eax
movl %eax, (%r15)
leaq 0x7f62(%rip), %rsi      # 0xa676
movq %r14, %rdi
callq 0x1e4d
movq (%rbp), %r14
movq %r14, %rdi
callq 0x10b0
movl %eax, %eax
movabsq $0xc00000001, %rcx      # imm = 0xC00000001
decq %rax
testl %eax, %eax
jle 0x275a
movl %eax, %edx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
movzbl (%r14,%rdx), %edx
addl $-0x3a, %edx
cmpl $0x23, %edx
ja 0x2734
btq %rdx, %rcx
jae 0x2734
testl %eax, %eax
jg 0x2786
leaq 0xaf5f(%rip), %r15      # 0xd6c0
leaq 0xafe8(%rip), %rsi      # 0xd750
movq %r15, %rdi
callq 0x1080
movq %r15, %rdi
movq %r14, %rsi
callq 0x11e0
movq %r14, %rdi
movq %r15, %rsi
callq 0x1080
callq 0x1030
movq (%rbp), %rcx
xorl %edx, %edx
movq (%rax), %rsi
movsbq (%rcx,%rdx), %rdi
movb (%rsi,%rdi,4), %sil
movb %sil, (%r12,%rdx)
incq %rdx
testb %sil, %sil
jne 0x2791
leaq 0xaf98(%rip), %rax      # 0xd748
movq (%rax), %rdi
leaq 0x78aa(%rip), %rsi      # 0xa064
leaq 0x78aa(%rip), %rdx      # 0xa06b
leaq 0xaef8(%rip), %rcx      # 0xd6c0
xorl %eax, %eax
callq 0x1140
movq (%rbp), %rdi
leaq 0x7a54(%rip), %rsi      # 0xa22e
callq 0x11c0
leaq 0xaff2(%rip), %rsi      # 0xd7d8
movq %rax, (%rsi)
testq %rax, %rax
jne 0x281d
leaq 0xb783(%rip), %rdx      # 0xdf78
movslq (%rdx), %rax
leal 0x1(%rax), %ecx
movl %ecx, (%rdx)
leaq 0xb5fc(%rip), %rcx      # 0xde00
movq (%rcx,%rax,8), %rax
movq %rax, (%rsi)
movq (%rbp), %rsi
leaq 0x7ae7(%rip), %rdi      # 0xa2fd
xorl %edx, %edx
callq 0x1e94
movl $0x1, (%rbx)
jmp 0x294b
leaq 0xb5c1(%rip), %rax      # 0xddf0
movb $0x4e, (%rax)
movl $0x4e, %edi
jmp 0x2934
movl %ebp, %edi
jmp 0x2946
xorl %edi, %edi
testl %ebp, %ebp
jmp 0x2942
leaq 0xb7bd(%rip), %rbx      # 0xe010
movq %rbx, %rdi
callq 0x10b0
cmpb $0x3c, (%r12)
jne 0x2925
movq %rax, %r14
movq %r12, %rdi
callq 0x10b0
decl %eax
movslq %eax, %rcx
cmpb $0x3e, (%r12,%rcx)
jne 0x2925
testl %eax, %eax
jle 0x2925
cmpb $0x3c, (%rbx)
jne 0x2925
decl %r14d
movslq %r14d, %rax
cmpb $0x3e, (%rbx,%rax)
setne %cl
testl %eax, %eax
setle %al
orb %cl, %al
cmpb $0x1, %al
je 0x2925
leaq 0xb75f(%rip), %rsi      # 0xe010
movq %r12, %rdi
callq 0x1130
xorl %edi, %edi
testl %eax, %eax
jmp 0x2942
leaq 0xb527(%rip), %rax      # 0xddf0
movb $0x55, (%rax)
movl $0x55, %edi
jmp 0x2934
leaq 0xb736(%rip), %rbx      # 0xe010
movq %rbx, %rdi
callq 0x10b0
cmpb $0x3c, (%r12)
jne 0x2925
movq %rax, %r14
movq %r12, %rdi
callq 0x10b0
decl %eax
movslq %eax, %rcx
cmpb $0x3e, (%r12,%rcx)
jne 0x2925
testl %eax, %eax
jle 0x2925
cmpb $0x3c, (%rbx)
jne 0x2925
decl %r14d
movslq %r14d, %rax
cmpb $0x3e, (%rbx,%rax)
setne %cl
testl %eax, %eax
setle %al
orb %cl, %al
cmpb $0x1, %al
jne 0x2fe5
leaq 0xb4c4(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ed1
jmp 0x294b
xorl %edi, %edi
cmpq $0x0, (%rsp)
sete %dil
callq 0x1f04
movl $0x1, %ebp
movl %ebp, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1230
movq (%rax), %rax
leaq 0xb740(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x299b
leaq 0xb106(%rip), %rbx      # 0xda88
movq (%rbx), %rdi
callq 0x7db8
testl %eax, %eax
je 0x299b
movq (%rbx), %rdi
movl $0x1, %esi
callq 0x7e93
leaq 0xb116(%rip), %rax      # 0xdab8
movq (%rax), %rdx
leaq 0x1(%rdx), %rcx
movq %rcx, (%rax)
leaq 0xb04d(%rip), %rdi      # 0xda00
leaq 0x790f(%rip), %rsi      # 0xa2c9
xorl %eax, %eax
callq 0x11f0
leaq 0xb6d8(%rip), %r13      # 0xe0a0
movq (%r13), %rdi
leaq 0x8(%rsp), %rsi
callq 0x49bd
testl %eax, %eax
je 0x2fb8
leaq 0xb62b(%rip), %rax      # 0xe010
movw $0x0, (%rax)
movq %r14, %rdi
movq (%rsp), %rsi
movq %rbp, %rdx
movl $0x2, %ecx
callq 0x5788
leaq 0xb8bb(%rip), %rax      # 0xe2c0
xorl %r14d, %r14d
movb %r14b, (%rax)
leaq 0xb8af(%rip), %rax      # 0xe2c1
movb %r14b, (%rax)
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x7bf7
leaq 0xb079(%rip), %rbp      # 0xdaa8
movq (%rbp), %rax
movq %rax, (%rsp)
cmpq $0x0, 0x8(%rsp)
jle 0x2a98
movq (%rsp), %rax
leaq 0x21(%rax), %r15
leaq 0xb10e(%rip), %r12      # 0xdb5c
xorl %ebx, %ebx
movl %r14d, 0x18(%rsp)
movl %r14d, 0x1c(%rsp)
movq %r15, %rax
movq %rax, (%r13)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
je 0x2a5d
decq %rax
movq %rax, 0x10(%rsp)
incl (%r12)
leaq 0x18(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x1c(%rsp), %rdx
callq 0x7fb4
decl (%r12)
incq %rbx
cmpq %rbx, 0x8(%rsp)
jg 0x2a50
movq (%rbp), %rcx
leaq 0xb1d5(%rip), %rax      # 0xdc78
movq %rcx, (%rax)
movq (%rsp), %rdi
cmpq %rdi, %rcx
je 0x2b5f
movq (%rax), %rbp
movq (%rbp), %rcx
cmpq %rdi, %rcx
je 0x2b5f
movq %rcx, %rbp
movq %rcx, (%rax)
movq (%rcx), %rcx
jmp 0x2aba
xorl %edi, %edi
cmpq $0x0, (%rsp)
setns %dil
jmp 0x2946
callq 0x1230
movq (%rax), %rax
leaq 0xb5c3(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x2b18
leaq 0xaf89(%rip), %rbx      # 0xda88
movq (%rbx), %rdi
callq 0x7db8
testl %eax, %eax
je 0x2b18
movq (%rbx), %rdi
movl $0x1, %esi
callq 0x7e93
leaq 0xaf99(%rip), %rax      # 0xdab8
movq (%rax), %rdx
leaq 0x1(%rdx), %rcx
movq %rcx, (%rax)
leaq 0xaed0(%rip), %rdi      # 0xda00
leaq 0x7792(%rip), %rsi      # 0xa2c9
xorl %eax, %eax
callq 0x11f0
leaq 0xb55b(%rip), %r13      # 0xe0a0
movq (%r13), %rax
incq %rax
movzbl -0x1(%rax), %ecx
testl %ecx, %ecx
je 0x2b6b
cmpl $0x2c, %ecx
je 0x2b6b
movq %rax, (%r13)
jmp 0x2b49
movq (%rdi), %rax
movq %rax, (%rbp)
jmp 0x2fa1
movb $0x0, -0x1(%rax)
movq (%r13), %rdi
incq %rdi
movq %rdi, (%r13)
callq 0x10b0
leaq 0x2(%rax), %rdi
callq 0x1180
movq %rax, %r12
testq %rax, %rax
jne 0x2b9c
leaq 0x7784(%rip), %rdi      # 0xa31b
callq 0x1090
movq (%r13), %rsi
movq %r12, %rdi
callq 0x1080
leaq 0xb461(%rip), %rax      # 0xe010
movq %rax, (%r13)
movq %r14, %rdi
movq (%rsp), %rsi
movq %rbp, %rdx
movl $0x3, %ecx
callq 0x5788
leaq 0xb6f2(%rip), %rax      # 0xe2c0
xorl %ebx, %ebx
movb %bl, (%rax)
leaq 0xb6e8(%rip), %rax      # 0xe2c1
movb %bl, (%rax)
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x7bf7
leaq 0xaeb3(%rip), %rbp      # 0xdaa8
movq (%rbp), %rax
movq %rax, (%rsp)
cmpb %bl, (%r12)
je 0x2cba
movq (%rsp), %rax
leaq 0xc(%rax), %r14
xorl %r15d, %r15d
leaq 0xaf43(%rip), %rbx      # 0xdb5c
movb (%r12,%r15), %al
movb %al, 0x10(%rsp)
movb $0x0, 0x13(%rsp)
movw $0x0, 0x11(%rsp)
movq %r14, %rax
movq %rax, (%r13)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
jne 0x2c30
movq (%r13), %rdi
cmpb $0x0, (%rdi)
jne 0x2c59
incq %rdi
movq %rdi, (%r13)
cmpb $0x0, (%rdi)
leaq 0x1(%rdi), %rdi
je 0x2c49
decq %rdi
movq (%r13), %rax
cmpb $0x0, (%rax)
je 0x2c72
incq %rax
movq %rax, (%r13)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
jne 0x2c65
movq (%r13), %rax
cmpb $0x0, (%rax)
jne 0x2c8e
incq %rax
movq %rax, (%r13)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
je 0x2c7e
decq %rax
movq %rax, 0x8(%rsp)
incl (%rbx)
leaq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x7fb4
decl (%rbx)
incq %r15
movq %r12, %rdi
callq 0x10b0
cmpq %r15, %rax
ja 0x2c19
movq (%rbp), %rcx
leaq 0xafb3(%rip), %rax      # 0xdc78
movq %rcx, (%rax)
movq (%rsp), %rdi
cmpq %rdi, %rcx
je 0x2ce8
movq (%rax), %rbp
movq (%rbp), %rcx
cmpq %rdi, %rcx
je 0x2ce8
movq %rcx, %rbp
movq %rcx, (%rax)
movq (%rcx), %rcx
jmp 0x2cd8
movq (%rdi), %rax
movq %rax, (%rbp)
callq 0x1040
movq %r12, %rdi
callq 0x1040
xorl %eax, %eax
leaq 0xb5bc(%rip), %rcx      # 0xe2c1
movb %al, (%rcx)
leaq 0xb5b2(%rip), %rcx      # 0xe2c0
movb %al, (%rcx)
jmp 0x294b
xorl %edi, %edi
cmpq $0x0, (%rsp)
setg %dil
jmp 0x2946
callq 0x1230
movq (%rax), %rax
leaq 0xb37c(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
je 0x2d53
leaq 0xb0aa(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ed1
movl $0x1, %ebp
movq %r14, %rdi
movq (%rsp), %rsi
movq %r13, %rdx
movl $0x1, %ecx
callq 0x5788
jmp 0x2950
callq 0x1230
movq (%rax), %rax
leaq 0xb330(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x2dab
leaq 0xacf6(%rip), %rbx      # 0xda88
movq (%rbx), %rdi
callq 0x7db8
testl %eax, %eax
je 0x2dab
movq (%rbx), %rdi
movl $0x1, %esi
callq 0x7e93
leaq 0xad06(%rip), %rax      # 0xdab8
movq (%rax), %rdx
leaq 0x1(%rdx), %rcx
movq %rcx, (%rax)
leaq 0xac3d(%rip), %rdi      # 0xda00
leaq 0x74ff(%rip), %rsi      # 0xa2c9
xorl %eax, %eax
callq 0x11f0
leaq 0xb238(%rip), %r13      # 0xe010
movq %r13, %rdi
callq 0x10b0
movl $0x1, %esi
movq %rax, %rdi
callq 0x1120
movq %rax, %r12
testq %rax, %rax
jne 0x2e01
leaq 0x751f(%rip), %rdi      # 0xa31b
callq 0x1090
movl $0x1, %edi
callq 0x5171
leaq 0xb28e(%rip), %r15      # 0xe0a0
movq (%r15), %rax
cmpb $0x0, (%rax)
je 0x2e2c
incq %rax
movq %rax, (%r15)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
jne 0x2e1d
decq %rax
leaq 0x1(%rax), %rcx
movq %rcx, (%r15)
addq $0x2, %rax
xorl %ecx, %ecx
cmpb $0x0, -0x1(%rax,%rcx)
jne 0x2e46
cmpb $0x0, (%rax,%rcx)
je 0x2e5f
leaq (%rax,%rcx), %rdx
decq %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, (%r15)
movb (%rdx), %dl
movb %dl, (%r12,%rcx)
incq %rcx
jmp 0x2e39
movq %r13, (%r15)
movq %r14, %rdi
movq (%rsp), %rsi
movq %rbp, %rdx
movl $0x4, %ecx
callq 0x5788
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x7bf7
leaq 0xac18(%rip), %r13      # 0xdaa8
movq (%r13), %rax
movq %rax, 0x20(%rsp)
cmpb $0x0, (%r12)
je 0x2f63
movq 0x20(%rsp), %rax
addq $0xc, %rax
movq %rax, (%rsp)
xorl %r14d, %r14d
movabsq $0x100000000, %rbx      # imm = 0x100000000
movq %r12, %rdx
movq (%rsp), %rax
movq %rax, (%r15)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
jne 0x2ec5
movq (%r15), %rdi
cmpb $0x0, (%rdi)
jne 0x2eeb
incq %rdi
movq %rdi, (%r15)
cmpb $0x0, (%rdi)
leaq 0x1(%rdi), %rdi
je 0x2edc
decq %rdi
movq (%r15), %rax
cmpb $0x0, (%rax)
je 0x2f02
incq %rax
movq %rax, (%r15)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
jne 0x2ef6
movq (%r15), %rax
cmpb $0x0, (%rax)
jne 0x2f1c
incq %rax
movq %rax, (%r15)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
je 0x2f0d
decq %rax
movq %rax, 0x8(%rsp)
leaq 0xac34(%rip), %rbp      # 0xdb5c
incl (%rbp)
leaq 0x8(%rsp), %rsi
callq 0x7fb4
decl (%rbp)
movq %r14, %rax
shlq $0x20, %rax
movslq %r14d, %r14
addq %rbx, %rax
cmpb $0x0, (%r12,%r14)
leaq 0x1(%r14), %r14
jne 0x2f42
sarq $0x20, %rax
leaq (%r12,%rax), %rdx
cmpb $0x0, (%r12,%rax)
jne 0x2ec1
movq (%r13), %rcx
leaq 0xad0a(%rip), %rax      # 0xdc78
movq %rcx, (%rax)
movq 0x20(%rsp), %rdi
cmpq %rdi, %rcx
je 0x2f92
movq (%rax), %r13
movq (%r13), %rcx
cmpq %rdi, %rcx
je 0x2f92
movq %rcx, %r13
movq %rcx, (%rax)
movq (%rcx), %rcx
jmp 0x2f82
movq (%rdi), %rax
movq %rax, (%r13)
callq 0x1040
movq %r12, %rdi
callq 0x1040
jmp 0x2fcc
xorl %edi, %edi
cmpq $0x0, (%rsp)
setle %dil
jmp 0x2946
leaq 0xae31(%rip), %rax      # 0xddf0
movb $0x55, (%rax)
movl $0x55, %edi
callq 0x1ed1
leaq 0xb2ee(%rip), %rax      # 0xe2c1
xorl %ecx, %ecx
movb %cl, (%rax)
leaq 0xb2e2(%rip), %rax      # 0xe2c0
movb %cl, (%rax)
jmp 0x294b
leaq 0xb024(%rip), %rsi      # 0xe010
movq %r12, %rdi
callq 0x1130
movl %eax, %edi
jmp 0x2946
xorl %edi, %edi
cmpq $0x0, (%rsp)
setne %dil
jmp 0x2946
movq (%rsp), %rdi
shrq $0x3f, %rdi
jmp 0x2946