// File: /workspace/github_c_makefile_star2_O3/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 $0x48, %rsp
movq %rdx, %r13
movq %rsi, %r14
movq %rdi, %r15
leaq 0xbc00(%rip), %rax      # 0xdb7c
movl (%rax), %eax
leaq 0xbe67(%rip), %rbx      # 0xddec
movl %eax, (%rbx)
leaq 0xbc88(%rip), %rax      # 0xdc16
movb $0x31, (%rax)
leaq 0xc100(%rip), %rbp      # 0xe098
movq (%rbp), %r12
leaq 0x82c4(%rip), %rsi      # 0xa267
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x232c
leaq 0x82b3(%rip), %rsi      # 0xa26d
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x23d6
movq %r13, 0x8(%rsp)
leaq 0x829e(%rip), %rsi      # 0xa274
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x828c(%rip), %rsi      # 0xa279
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x827b(%rip), %rsi      # 0xa27f
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x826b(%rip), %rsi      # 0xa286
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x825c(%rip), %rsi      # 0xa28e
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x824c(%rip), %rsi      # 0xa295
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x823d(%rip), %rsi      # 0xa29d
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x822f(%rip), %rsi      # 0xa2a2
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x8221(%rip), %rsi      # 0xa2a7
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x8214(%rip), %rsi      # 0xa2ad
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x8207(%rip), %rsi      # 0xa2b3
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x81fa(%rip), %rsi      # 0xa2b9
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x20e2
leaq 0x81ed(%rip), %rsi      # 0xa2bf
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
jne 0x2569
callq 0x1230
movq %rax, %r12
movq (%rax), %rax
leaq 0xbfbc(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x2113
leaq 0xbcea(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ec8
leaq 0xba4e(%rip), %rax      # 0xdb68
cmpl $0x0, (%rax)
je 0x2475
movq (%rbp), %r13
leaq 0x8146(%rip), %rsi      # 0xa274
movq %r13, %rdi
callq 0x1130
testl %eax, %eax
je 0x247c
leaq 0x8134(%rip), %rsi      # 0xa279
movq %r13, %rdi
callq 0x1130
testl %eax, %eax
je 0x24bd
movq %r13, %rdi
callq 0x10b0
leaq 0xbe1c(%rip), %r13      # 0xdf80
leaq (%rax,%r13), %rdi
addq $-0x3, %rdi
leaq 0x810f(%rip), %rsi      # 0xa282
callq 0x1130
testl %eax, %eax
je 0x2502
leaq 0xbf19(%rip), %rax      # 0xe0a0
movq (%rax), %rdi
leaq 0x10(%rsp), %rbx
movq %rbx, %rsi
callq 0x4a37
movl %eax, %r14d
leaq 0xc121(%rip), %rax      # 0xe2c2
movb $0x1, (%rax)
movq (%rbx), %rbx
leaq 0xc113(%rip), %rax      # 0xe2c1
movsbq (%rax), %rcx
leal 0x1(%rcx), %edx
leaq 0xc004(%rip), %rsi      # 0xe1c0
movb %bh, (%rsi,%rcx)
addl $0x2, %ecx
movb %cl, (%rax)
movsbq %dl, %rax
movq %rbx, %r15
movb %bl, (%rsi,%rax)
movq (%rbp), %rbx
testl %r14d, %r14d
jne 0x2240
movq %rbx, %rdi
callq 0x10b0
leaq (%rax,%r13), %rdi
addq $-0x3, %rdi
leaq 0x80a3(%rip), %rsi      # 0xa291
callq 0x1130
testl %eax, %eax
jne 0x2240
leaq 0xbbf2(%rip), %rax      # 0xddf0
movb $0x0, (%rax)
xorl %ecx, %ecx
leaq 0xba66(%rip), %rdx      # 0xdc70
xorl %esi, %esi
movb (%rdx,%rsi), %dil
cmpb $0x55, %dil
jne 0x221d
movb $0x20, (%rdx,%rsi)
movb $0x20, %dil
movq (%r12), %r8
movsbq %dil, %rdi
movzwl (%r8,%rdi,2), %edi
btl $0xd, %edi
setae %dil
orb %dil, %cl
movb %cl, (%rax)
incq %rsi
cmpq $0x5, %rsi
jne 0x220c
leaq 0x8047(%rip), %rsi      # 0xa28e
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x275d
leaq 0x8037(%rip), %rsi      # 0xa295
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x2765
testl %r14d, %r14d
je 0x27e3
leaq 0x8024(%rip), %rsi      # 0xa2a2
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x285d
leaq 0x8018(%rip), %rsi      # 0xa2ad
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x29f4
leaq 0x7ffb(%rip), %rsi      # 0xa2a7
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x2c4c
leaq 0x7ff6(%rip), %rsi      # 0xa2b9
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x2f08
leaq 0x7fd9(%rip), %rsi      # 0xa2b3
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x2f53
leaq 0x7fac(%rip), %rsi      # 0xa29d
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x2f45
leaq 0x7fb7(%rip), %rsi      # 0xa2bf
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x2f45
leaq 0xbad1(%rip), %rax      # 0xddf0
movb $0x4f, (%rax)
movl $0x4f, %edi
jmp 0x2856
callq 0x1230
movq (%rax), %rax
leaq 0xbd75(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x235a
leaq 0xbaa3(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ec8
leaq 0xb7ff(%rip), %rax      # 0xdb60
movl (%rax), %eax
testl %eax, %eax
je 0x2749
movl %eax, %ecx
andb $0xf, %cl
movl $0x1, %esi
shll %cl, %esi
movl %eax, %ecx
sarl $0x4, %ecx
movslq %ecx, %rcx
leaq 0xb94a(%rip), %rdx      # 0xdcd0
xorw %si, (%rdx,%rcx,2)
movl $0x1, %ebp
leaq 0xb7d2(%rip), %rsi      # 0xdb68
movl %ebp, (%rsi)
testl %eax, %eax
jle 0x2870
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 0x23ce
leal 0x1(%rdi), %ecx
cmpl %eax, %edi
movl %ecx, %edi
jl 0x23ab
movl %r8d, (%rsi)
jmp 0x286b
callq 0x1230
movq (%rax), %rax
leaq 0xbccb(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x2404
leaq 0xb9f9(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ec8
leaq 0xb755(%rip), %rcx      # 0xdb60
movl (%rcx), %eax
testl %eax, %eax
je 0x2749
leal -0x1(%rax), %edx
movl %edx, (%rcx)
leaq 0xb747(%rip), %rdx      # 0xdb68
movl $0x1, (%rdx)
movl $0x1, %ebp
cmpl $0x2, %eax
jl 0x2870
movl $0x1, %r8d
movl $0x2, %edi
leaq 0xb889(%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 0x246d
leal 0x1(%rdi), %ecx
cmpl %eax, %edi
movl %ecx, %edi
jl 0x2447
movl %r8d, (%rdx)
jmp 0x286b
xorl %edi, %edi
jmp 0x2866
leaq 0xbc1d(%rip), %rax      # 0xe0a0
movq (%rax), %rbx
movq %rbx, %rdi
callq 0x10b0
cmpb $0x3c, (%rbx)
jne 0x2847
decl %eax
movslq %eax, %rcx
cmpb $0x3e, (%rbx,%rcx)
setne %dl
testl %ecx, %ecx
setle %cl
orb %dl, %cl
cmpb $0x1, %cl
je 0x2847
xorl %edi, %edi
cmpl $0x1, %eax
jmp 0x2862
leaq 0xbbdc(%rip), %rax      # 0xe0a0
movq (%rax), %rbx
movq %rbx, %rdi
callq 0x10b0
cmpb $0x3c, (%rbx)
jne 0x2847
decl %eax
movslq %eax, %rcx
cmpb $0x3e, (%rbx,%rcx)
setne %dl
testl %ecx, %ecx
setle %cl
orb %dl, %cl
cmpb $0x1, %cl
je 0x2847
xorl %edi, %edi
cmpl $0x2, %eax
setae %dil
jmp 0x2866
movl $0x1, %edi
callq 0x5204
leaq 0xbb8d(%rip), %rax      # 0xe0a0
movq (%rax), %r13
cmpb $0x0, (%r13)
je 0x2531
incq %r13
movq %r13, (%rax)
cmpb $0x0, (%r13)
leaq 0x1(%r13), %r13
jne 0x2520
decq %r13
incq %r13
movq %r13, (%rax)
movq (%rbp), %r12
leaq 0x7d3d(%rip), %rsi      # 0xa27f
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x276f
leaq 0x7d2d(%rip), %rsi      # 0xa286
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x27f4
leaq 0xb5f8(%rip), %rax      # 0xdb68
movl $0x1, %ebp
cmpl $0x0, (%rax)
je 0x2870
movl $0x0, (%rbx)
leaq 0x7d38(%rip), %rsi      # 0xa2c3
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x2881
leaq 0x7d3b(%rip), %rsi      # 0xa2dd
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
movq 0x8(%rsp), %r13
je 0x2a02
leaq 0x7d25(%rip), %rsi      # 0xa2e3
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x2ca5
leaq 0x7d13(%rip), %rsi      # 0xa2e8
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x2c5a
leaq 0x7d03(%rip), %rsi      # 0xa2ef
movq %r12, %rdi
callq 0x1130
testl %eax, %eax
je 0x2c5a
leaq 0x7cf1(%rip), %rsi      # 0xa2f4
movq %r12, %rdi
callq 0x1130
xorl %ebp, %ebp
testl %eax, %eax
jne 0x2870
callq 0x1230
movq (%rax), %rax
leaq 0xba8c(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x2643
leaq 0xb7ba(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ec8
leaq 0xb92e(%rip), %r12      # 0xdf78
movl (%r12), %eax
testl %eax, %eax
je 0x2749
leaq 0xba43(%rip), %rbp      # 0xe0a0
movq (%rbp), %r14
cmpb $0x0, (%r14)
je 0x2699
xorl %r15d, %r15d
movb (%r14,%r15), %al
cmpb $0x21, %al
setge %cl
cmpb $0x3b, %al
setne %al
testb %al, %cl
jne 0x2685
movb $0x0, (%r14,%r15)
movq (%rbp), %r14
incq %r15
movq %r14, %rdi
callq 0x10b0
cmpq %r15, %rax
ja 0x266a
movl (%r12), %eax
leaq 0xb138(%rip), %rcx      # 0xd7d8
movq (%rcx), %rcx
leal -0x1(%rax), %edx
movl %edx, (%r12)
cltq
leaq 0xb74d(%rip), %rdx      # 0xde00
movq %rcx, -0x8(%rdx,%rax,8)
leaq 0xb405(%rip), %r15      # 0xdac4
movslq (%r15), %r13
leaq 0xb897(%rip), %rcx      # 0xdf60
movl %r13d, -0x4(%rcx,%rax,4)
movq %r13, %rdi
addq 0xa908(%rip), %rdi      # 0xcfe0
leaq 0xafe1(%rip), %r12      # 0xd6c0
movq %r12, %rsi
callq 0x1080
movq %r12, %rdi
callq 0x10b0
addl %r13d, %eax
incl %eax
movl %eax, (%r15)
leaq 0x7f78(%rip), %rsi      # 0xa676
movq %r14, %rdi
callq 0x1e44
movq (%rbp), %r14
movq %r14, %rdi
callq 0x10b0
movl %eax, %eax
movabsq $0xc00000001, %rcx      # imm = 0xC00000001
decq %rax
testl %eax, %eax
jle 0x2fd2
movl %eax, %edx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
movzbl (%r14,%rdx), %edx
addl $-0x3a, %edx
cmpl $0x23, %edx
ja 0x271e
btq %rdx, %rcx
jae 0x271e
jmp 0x3002
leaq 0xb6a0(%rip), %rax      # 0xddf0
movb $0x4e, (%rax)
movl $0x4e, %edi
jmp 0x2856
movl %r14d, %edi
jmp 0x2866
xorl %edi, %edi
testl %r14d, %r14d
jmp 0x2862
leaq 0xb89a(%rip), %rbx      # 0xe010
movq %rbx, %rdi
callq 0x10b0
cmpb $0x3c, (%r13)
jne 0x2847
movq %rax, %r14
movq %r13, %rdi
callq 0x10b0
decl %eax
movslq %eax, %rcx
cmpb $0x3e, (%r13,%rcx)
jne 0x2847
testl %eax, %eax
jle 0x2847
cmpb $0x3c, (%rbx)
jne 0x2847
decl %r14d
movslq %r14d, %rax
cmpb $0x3e, (%rbx,%rax)
setne %cl
testl %eax, %eax
setle %al
orb %cl, %al
cmpb $0x1, %al
je 0x2847
leaq 0xb83b(%rip), %rsi      # 0xe010
movq %r13, %rdi
callq 0x1130
xorl %edi, %edi
testl %eax, %eax
jmp 0x2862
leaq 0xb606(%rip), %rax      # 0xddf0
movb $0x55, (%rax)
movl $0x55, %edi
jmp 0x2856
leaq 0xb815(%rip), %rbx      # 0xe010
movq %rbx, %rdi
callq 0x10b0
cmpb $0x3c, (%r13)
jne 0x2847
movq %rax, %r14
movq %r13, %rdi
callq 0x10b0
decl %eax
movslq %eax, %rcx
cmpb $0x3e, (%r13,%rcx)
jne 0x2847
testl %eax, %eax
jle 0x2847
cmpb $0x3c, (%rbx)
jne 0x2847
decl %r14d
movslq %r14d, %rax
cmpb $0x3e, (%rbx,%rax)
setne %cl
testl %eax, %eax
setle %al
orb %cl, %al
cmpb $0x1, %al
jne 0x2f2f
leaq 0xb5a2(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ec8
jmp 0x286b
xorl %edi, %edi
testq %r15, %r15
sete %dil
callq 0x1ef4
movl $0x1, %ebp
movl %ebp, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1230
movq (%rax), %rax
leaq 0xb820(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x28bb
leaq 0xb1e6(%rip), %rbx      # 0xda88
movq (%rbx), %rdi
callq 0x7da0
testl %eax, %eax
je 0x28bb
movq (%rbx), %rdi
movl $0x1, %esi
callq 0x7e7b
leaq 0xb1f6(%rip), %rax      # 0xdab8
movq (%rax), %rdx
leaq 0x1(%rdx), %rcx
movq %rcx, (%rax)
leaq 0xb12d(%rip), %rdi      # 0xda00
leaq 0x79ef(%rip), %rsi      # 0xa2c9
xorl %eax, %eax
callq 0x11f0
leaq 0xb7b8(%rip), %r13      # 0xe0a0
movq (%r13), %rdi
leaq 0x10(%rsp), %rsi
callq 0x4a37
testl %eax, %eax
je 0x2f16
leaq 0xb70b(%rip), %rax      # 0xe010
movw $0x0, (%rax)
movq %r15, %rdi
movq %r14, %rsi
movq 0x8(%rsp), %rdx
movl $0x2, %ecx
callq 0x57fc
leaq 0xb99a(%rip), %rax      # 0xe2c0
xorl %ebp, %ebp
movb %bpl, (%rax)
leaq 0xb98f(%rip), %rax      # 0xe2c1
movb %bpl, (%rax)
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x7be8
leaq 0xb159(%rip), %rax      # 0xdaa8
movq (%rax), %rdi
cmpq $0x0, 0x10(%rsp)
jle 0x2f5f
movq %rdi, 0x8(%rsp)
leaq 0x21(%rdi), %rbx
leaq 0xb1ee(%rip), %r14      # 0xdb5c
leaq 0x3c(%rsp), %r12
xorl %r15d, %r15d
movl %ebp, 0x38(%rsp)
movl %ebp, 0x3c(%rsp)
movq %rbx, %rax
movq %rax, (%r13)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
je 0x2981
decq %rax
movq %rax, 0x18(%rsp)
incl (%r14)
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movq %r12, %rdx
callq 0x7f8a
decl (%r14)
incq %r15
cmpq %r15, 0x10(%rsp)
jg 0x2976
leaq 0xb0e9(%rip), %rax      # 0xdaa8
movq (%rax), %rsi
leaq 0xb2af(%rip), %rcx      # 0xdc78
movq %rsi, (%rcx)
movq 0x8(%rsp), %rdi
cmpq %rdi, %rsi
je 0x2f69
movq (%rsi), %rdx
movq %rsi, %rax
cmpq %rdi, %rdx
je 0x2f69
movq %rdx, %rax
movq %rdx, (%rcx)
movq (%rdx), %rdx
jmp 0x29e0
xorl %edi, %edi
testq %r15, %r15
setns %dil
jmp 0x2866
callq 0x1230
movq (%rax), %rax
leaq 0xb69f(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x2a3c
leaq 0xb065(%rip), %rbx      # 0xda88
movq (%rbx), %rdi
callq 0x7da0
testl %eax, %eax
je 0x2a3c
movq (%rbx), %rdi
movl $0x1, %esi
callq 0x7e7b
leaq 0xb075(%rip), %rax      # 0xdab8
movq (%rax), %rdx
leaq 0x1(%rdx), %rcx
movq %rcx, (%rax)
leaq 0xafac(%rip), %rdi      # 0xda00
leaq 0x786e(%rip), %rsi      # 0xa2c9
xorl %eax, %eax
callq 0x11f0
leaq 0xb637(%rip), %rbp      # 0xe0a0
movq (%rbp), %rax
incq %rax
movzbl -0x1(%rax), %ecx
testl %ecx, %ecx
je 0x2a83
cmpl $0x2c, %ecx
je 0x2a83
movq %rax, (%rbp)
jmp 0x2a6d
movb $0x0, -0x1(%rax)
movq (%rbp), %r13
incq %r13
movq %r13, (%rbp)
movq %r13, %rdi
callq 0x10b0
leaq 0x2(%rax), %rdi
callq 0x1180
movq %rax, %r12
testq %rax, %rax
jne 0x2abb
leaq 0x7869(%rip), %rdi      # 0xa31b
callq 0x1090
movq (%rbp), %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x1080
leaq 0xb543(%rip), %rax      # 0xe010
movq %rax, (%rbp)
movq %r15, %rdi
movq %r14, %rsi
movq 0x8(%rsp), %rdx
movl $0x3, %ecx
callq 0x57fc
leaq 0xb7d3(%rip), %r14      # 0xe2c0
xorl %ebx, %ebx
movb %bl, (%r14)
leaq 0xb7c8(%rip), %r15      # 0xe2c1
movb %bl, (%r15)
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x7be8
leaq 0xaf92(%rip), %r13      # 0xdaa8
movq (%r13), %rdi
cmpb %bl, (%r12)
je 0x2f71
leaq 0xc(%rdi), %rax
movq %rax, 0x8(%rsp)
leaq 0xd(%rdi), %rax
movq %rax, 0x30(%rsp)
leaq 0xe(%rdi), %rax
movq %rax, 0x28(%rsp)
movq %rdi, 0x20(%rsp)
leaq 0xf(%rdi), %r14
xorl %r15d, %r15d
leaq 0xb00a(%rip), %rbx      # 0xdb5c
movb (%r12,%r15), %al
movb %al, 0x18(%rsp)
movb $0x0, 0x1b(%rsp)
movw $0x0, 0x19(%rsp)
movq %r14, %rcx
movq 0x28(%rsp), %r8
movq 0x30(%rsp), %r9
movq 0x8(%rsp), %rsi
movq %r9, %rdi
movq %r8, %rdx
movq %rcx, %rax
movq %rsi, (%rbp)
cmpb $0x0, (%rsi)
leaq 0x1(%rsi), %rsi
leaq 0x1(%r9), %r9
leaq 0x1(%r8), %r8
leaq 0x1(%rcx), %rcx
jne 0x2b78
movq %rdx, %rcx
movq %rdi, (%rbp)
cmpb $0x0, (%rdi)
movq %rax, %rsi
leaq 0x1(%rdi), %rdi
leaq 0x1(%rdx), %rdx
leaq 0x1(%rax), %rax
je 0x2b9a
decq %rdi
movq %rcx, (%rbp)
cmpb $0x0, (%rcx)
movq %rsi, %rax
leaq 0x1(%rcx), %rcx
leaq 0x1(%rsi), %rsi
jne 0x2bb8
movq %rax, (%rbp)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
je 0x2bcc
decq %rax
movq %rax, 0x10(%rsp)
incl (%rbx)
leaq 0x10(%rsp), %rsi
leaq 0x18(%rsp), %rdx
callq 0x7f8a
decl (%rbx)
incq %r15
movq %r12, %rdi
callq 0x10b0
cmpq %r15, %rax
ja 0x2b52
movq (%r13), %rdx
leaq 0xb065(%rip), %rax      # 0xdc78
movq %rdx, (%rax)
movq 0x20(%rsp), %rdi
cmpq %rdi, %rdx
leaq 0xb69b(%rip), %r14      # 0xe2c0
leaq 0xb695(%rip), %r15      # 0xe2c1
je 0x2f7b
movq (%rdx), %rcx
movq %rdx, %r13
cmpq %rdi, %rcx
je 0x2f7b
movq %rcx, %r13
movq %rcx, (%rax)
movq (%rcx), %rcx
jmp 0x2c38
xorl %edi, %edi
testq %r15, %r15
setg %dil
jmp 0x2866
callq 0x1230
movq (%rax), %rax
leaq 0xb447(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
je 0x2c88
leaq 0xb175(%rip), %rax      # 0xddf0
movb $0x46, (%rax)
movl $0x46, %edi
callq 0x1ec8
movl $0x1, %ebp
movq %r15, %rdi
movq %r14, %rsi
movq %r13, %rdx
movl $0x1, %ecx
callq 0x57fc
jmp 0x2870
callq 0x1230
movq (%rax), %rax
leaq 0xb3fc(%rip), %rcx      # 0xe0b0
movsbq (%rcx), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
jne 0x2cdf
leaq 0xadc2(%rip), %rbx      # 0xda88
movq (%rbx), %rdi
callq 0x7da0
testl %eax, %eax
je 0x2cdf
movq (%rbx), %rdi
movl $0x1, %esi
callq 0x7e7b
leaq 0xadd2(%rip), %rax      # 0xdab8
movq (%rax), %rdx
leaq 0x1(%rdx), %rcx
movq %rcx, (%rax)
leaq 0xad09(%rip), %rdi      # 0xda00
leaq 0x75cb(%rip), %rsi      # 0xa2c9
xorl %eax, %eax
callq 0x11f0
leaq 0xb304(%rip), %r13      # 0xe010
movq %r13, %rdi
callq 0x10b0
movl $0x1, %esi
movq %rax, %rdi
callq 0x1120
movq %rax, %r12
testq %rax, %rax
jne 0x2d35
leaq 0x75eb(%rip), %rdi      # 0xa31b
callq 0x1090
movl $0x1, %edi
callq 0x5204
leaq 0xb35a(%rip), %rbp      # 0xe0a0
movq (%rbp), %rax
cmpb $0x0, (%rax)
je 0x2d62
incq %rax
movq %rax, (%rbp)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
jne 0x2d52
decq %rax
leaq 0x1(%rax), %rcx
movq %rcx, (%rbp)
addq $0x2, %rax
xorl %ecx, %ecx
cmpb $0x0, -0x1(%rax,%rcx)
jne 0x2d7d
cmpb $0x0, (%rax,%rcx)
je 0x2d97
leaq (%rax,%rcx), %rdx
decq %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, (%rbp)
movb (%rdx), %dl
movb %dl, (%r12,%rcx)
incq %rcx
jmp 0x2d70
movq %r13, (%rbp)
movq %r15, %rdi
movq %r14, %rsi
movq 0x8(%rsp), %rdx
movl $0x4, %ecx
callq 0x57fc
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x7be8
leaq 0xacde(%rip), %r15      # 0xdaa8
movq (%r15), %rdi
cmpb $0x0, (%r12)
je 0x2f9c
leaq 0xc(%rdi), %rax
movq %rax, 0x8(%rsp)
leaq 0xd(%rdi), %rax
movq %rax, 0x30(%rsp)
leaq 0xe(%rdi), %rax
movq %rax, 0x28(%rsp)
movq %rdi, 0x40(%rsp)
leaq 0xf(%rdi), %rax
movq %rax, 0x20(%rsp)
xorl %r14d, %r14d
movabsq $0x100000000, %rbx      # imm = 0x100000000
movq %r12, %rdx
movq 0x20(%rsp), %rcx
movq 0x28(%rsp), %r9
movq 0x30(%rsp), %r10
movq 0x8(%rsp), %r8
movq %r10, %rdi
movq %r9, %rsi
movq %rcx, %rax
movq %r8, (%rbp)
cmpb $0x0, (%r8)
leaq 0x1(%r8), %r8
leaq 0x1(%r10), %r10
leaq 0x1(%r9), %r9
leaq 0x1(%rcx), %rcx
jne 0x2e25
movq %rsi, %rcx
movq %rdi, (%rbp)
cmpb $0x0, (%rdi)
movq %rax, %r8
leaq 0x1(%rdi), %rdi
leaq 0x1(%rsi), %rsi
leaq 0x1(%rax), %rax
je 0x2e48
decq %rdi
movq %rcx, (%rbp)
cmpb $0x0, (%rcx)
movq %r8, %rax
leaq 0x1(%rcx), %rcx
leaq 0x1(%r8), %r8
jne 0x2e66
movq %rax, (%rbp)
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
je 0x2e7a
decq %rax
movq %rax, 0x10(%rsp)
leaq 0xacc6(%rip), %r13      # 0xdb5c
incl (%r13)
leaq 0x10(%rsp), %rsi
callq 0x7f8a
decl (%r13)
movq %r14, %rax
shlq $0x20, %rax
movslq %r14d, %r14
addq %rbx, %rax
cmpb $0x0, (%r12,%r14)
leaq 0x1(%r14), %r14
jne 0x2eb2
sarq $0x20, %rax
leaq (%r12,%rax), %rdx
cmpb $0x0, (%r12,%rax)
jne 0x2e11
movq (%r15), %rdx
leaq 0xad9b(%rip), %rax      # 0xdc78
movq %rdx, (%rax)
movq 0x40(%rsp), %rdi
cmpq %rdi, %rdx
je 0x2fa6
movq (%rdx), %rcx
movq %rdx, %r15
cmpq %rdi, %rcx
je 0x2fa6
movq %rcx, %r15
movq %rcx, (%rax)
movq (%rcx), %rcx
jmp 0x2ef4
xorl %edi, %edi
testq %r15, %r15
setle %dil
jmp 0x2866
leaq 0xaed3(%rip), %rax      # 0xddf0
movb $0x55, (%rax)
movl $0x55, %edi
callq 0x1ec8
jmp 0x2fb9
leaq 0xb0da(%rip), %rsi      # 0xe010
movq %r13, %rdi
callq 0x1130
movl %eax, %edi
jmp 0x2866
xorl %edi, %edi
testq %r15, %r15
setne %dil
jmp 0x2866
movq %r15, %rdi
shrq $0x3f, %rdi
jmp 0x2866
leaq 0xad12(%rip), %rcx      # 0xdc78
movq %rdi, (%rcx)
movq (%rdi), %rcx
movq %rcx, (%rax)
jmp 0x2fb4
leaq 0xad00(%rip), %rax      # 0xdc78
movq %rdi, (%rax)
movq (%rdi), %rax
movq %rax, (%r13)
callq 0x1040
movq %r12, %rdi
callq 0x1040
xorl %eax, %eax
movb %al, (%r15)
movb %al, (%r14)
jmp 0x286b
leaq 0xacd5(%rip), %rax      # 0xdc78
movq %rdi, (%rax)
movq (%rdi), %rax
movq %rax, (%r15)
callq 0x1040
movq %r12, %rdi
callq 0x1040
leaq 0xb301(%rip), %rax      # 0xe2c1
xorl %ecx, %ecx
movb %cl, (%rax)
leaq 0xb2f5(%rip), %rax      # 0xe2c0
movb %cl, (%rax)
jmp 0x286b
leaq 0xa6e7(%rip), %r15      # 0xd6c0
leaq 0xa770(%rip), %rsi      # 0xd750
movq %r15, %rdi
callq 0x1080
movq %r15, %rdi
movq %r14, %rsi
callq 0x11e0
movq %r14, %rdi
movq %r15, %rsi
callq 0x1080
movq (%rbp), %r14
leaq 0xa7cf(%rip), %r13      # 0xd7d8
xorl %r15d, %r15d
callq 0x1030
movq (%rax), %rcx
movsbq (%r14,%r15), %rdx
movb (%rcx,%rdx,4), %cl
movb %cl, (%r12,%r15)
incq %r15
testb %cl, %cl
jne 0x3011
leaq 0xa71a(%rip), %rax      # 0xd748
movq (%rax), %rdi
leaq 0x702c(%rip), %rsi      # 0xa064
leaq 0x702c(%rip), %rdx      # 0xa06b
leaq 0xa67a(%rip), %rcx      # 0xd6c0
xorl %eax, %eax
callq 0x1140
movq (%rbp), %rdi
leaq 0x71d6(%rip), %rsi      # 0xa22e
callq 0x11c0
movq %rax, (%r13)
testq %rax, %rax
jne 0x3096
leaq 0xaf0b(%rip), %rdx      # 0xdf78
movslq (%rdx), %rax
leal 0x1(%rax), %ecx
movl %ecx, (%rdx)
leaq 0xad84(%rip), %rcx      # 0xde00
movq (%rcx,%rax,8), %rax
movq %rax, (%r13)
movq (%rbp), %rsi
leaq 0x726e(%rip), %rdi      # 0xa2fd
xorl %edx, %edx
callq 0x1e8b
movl $0x1, (%rbx)
jmp 0x286b
nopl (%rax)