// File: /workspace/github_c_makefile_star2_O2/mist64[P]cbm6502asm/src/opcode.c
// Function: parseopr
char parseopr() {
	char tmp[LINELENG];
	long l;
	long s;
	int i, j, k, s3l;
	/*
	        check for implied address mode first to avoid wasting time
	        trying to parse a comment
	*/
	if ((j = searchstr(nm0, s2, 3)) >= 0) return (op0[j]);
	/*
	        test for valid opcode
	*/
	k = TRUE;
	if (strlen(s2) == 3) { /* three char opcode name */
		if (searchstr(nm1, s2, 3) >= 0) k = FALSE;
		if (searchstr(nm5, s2, 3) >= 0) k = FALSE;
		if (searchstr(nm7, s2, 3) >= 0) k = FALSE;
		if (searchstr(nmd, s2, 3) >= 0) k = FALSE;
		if (searchstr(nmh, s2, 3) >= 0) k = FALSE;
	}
	if (strlen(s2) == 4) { /* four char opcode name */
		if (searchstr(nm2, s2, 4) >= 0) k = FALSE;
		if (searchstr(nm3, s2, 4) >= 0) k = FALSE;
	}
	if (k) { /* unknown opcode */
		display_error(error = 'N');
		return (data = 0);
	}
	squote = dquote = i = 0;
	while (i < LINELENG && p3[i]) { /* change first space to null */
		if (p3[i] == '~') {
			i++;
			if (!p3[i]) {
				p3[i++] = ' ';
				p3[i] = 0;
			}
			continue;
		}
		if (p3[i] == '\'') squote = !squote;
		if (p3[i] == '\"') dquote = !dquote;
		if (isspace(p3[i]) && !dquote && !squote)
			p3[i] = 0;
		else
			i++;
	}
	/*
	        try some of these easiest to check addressing modes next
	*/
	if (toupper(*s3) == 'A' && !s3[1]) { /* accumulator addressing mode */
		if ((j = searchstr(nm1, s2, 3)) >= 0) return (op1[j]);
		display_error(error = 'O');
		return (data = 0);
	}
	if (*s3 == '#') { /* immediate addressing mode */
		s3++;
		if ((*s3 == '\'' || *s3 == '\"') && isspace(s3[2])) s3[2] = *s3;
		known = evaluate(s3, &l);
		j = searchstr(nm7, s2, 3);
		if (j >= 0) {
			d[data++] = l & 255;
			if ((op7[j] & 0x00ff) == 0x00f4) d[data++] = l >> 8;
			if (!known || l < 256 || (op7[j] & 0x00ff) == 0x00f4)
				return (op7[j]);
		}
		display_error(error = 'O');
		return (data = 0);
	}
	s3l = strlen(s3);

	if (toupper(s3[s3l - 5]) == 'S' &&
	    s3[s3l - 6] == ',' && /* SP indirect,Y */
	    toupper(s3[s3l - 4]) == 'P' && s3[s3l - 3] == ')' &&
	    toupper(s3[s3l - 1]) == 'Y' && s3[s3l - 2] == ',') {
		strcpy(tmp, &s3[1]);
		tmp[s3l - 7] = 0;
		known = evaluate(tmp, &l);
		d[data++] = l & 255;
		if (!known || l < 256)
			if ((j = searchstr(nmg, s2, 3)) >= 0) return (opg[j]);
		display_error(error = 'O');
		return (data = 0);
	}
	/*
	        calls and jmps
	*/
	if (!strcmp(s2, "BSR")) { /* relative call */
		known = evaluate(s3, &s);
		s -= loc_cntr + 2;
		d[data++] = s & 255;
		d[data++] = s >> 8;
		return (oph[0]);
	}
	if (!strcmp(s2, "JMP")) { /* jmp - 3 flavors */
		strcpy(tmp, s3);
		i = 1;
		if (s3[0] == '(' && s3[s3l - 1] == ')') {
			strcpy(tmp, &s3[1]);
			if ((i = (s3[s3l - 3] == ',' &&
			         toupper(s3[s3l - 2]) == 'X')))
				tmp[s3l - 4] = 0;
			else
				tmp[s3l - 2] = 0;
			i += 2;
		}
		known = evaluate(tmp, &l);
		d[data++] = l & 255;
		d[data++] = l >> 8;
		return (oph[i]);
	}
	if (!strcmp(s2, "JSR")) { /* call - 3 flavors */
		strcpy(tmp, s3);
		i = 4;
		if (s3[0] == '(' && s3[s3l - 1] == ')') {
			strcpy(tmp, &s3[1]);
			if ((i = (s3[s3l - 3] == ',' &&
			         toupper(s3[s3l - 2]) == 'X')))
				tmp[s3l - 4] = 0;
			else
				tmp[s3l - 2] = 0;
			i += 5;
		}
		known = evaluate(tmp, &l);
		d[data++] = l & 255;
		d[data++] = l >> 8;
		return (oph[i]);
	}
	/*      indirect X */
	if (s3[s3l - 3] == ',' && toupper(s3[s3l - 2]) == 'X' &&
	    s3[s3l - 1] == ')' && s3[0] == '(') {
		strcpy(tmp, &s3[1]);
		tmp[s3l - 4] = 0;
		known = evaluate(tmp, &l);
		d[data++] = l & 255;
		if (!known || l < 256)
			if ((j = searchstr(nm4, s2, 3)) >= 0) return (op4[j]);
		display_error(error = 'O');
		return (data = 0);
	}
	/*      indirect Y */
	if (s3[s3l - 3] == ')' && toupper(s3[s3l - 1]) == 'Y' &&
	    s3[s3l - 2] == ',' && s3[0] == '(') {
		strcpy(tmp, &s3[1]);
		tmp[s3l - 4] = 0;
		known = evaluate(tmp, &l);
		d[data++] = l;
		if (!known || l < 256)
			if ((j = searchstr(nma, s2, 3)) >= 0) return (opa[j]);
		display_error(error = 'O');
		return (data = 0);
	}
	/*
	        (bp),Z      indirect Z  if cputype = 3
	        (bp)        indirect    if cputype = 1 or 2
	                    error       if cputype = 0
	*/
	if (s3[0] == '(' && toupper(s3[s3l - 1]) == 'Z' && s3[s3l - 2] == ',' &&
	            s3[s3l - 3] == ')' && cputype == 3 ||
	    cputype && cputype < 3 && s3[0] == '(' && s3[s3l - 1] == ')') {
		strcpy(tmp, &s3[1]);
		tmp[s3l - 4] = 0;
		known = evaluate(tmp, &l);
		d[data++] = l & 255;
		if (!known || l < 256)
			if ((j = searchstr(nmf, s2, 3)) >= 0) return (opf[j]);
		display_error(error = 'O');
		return (data = 0);
	}

	if (s3[s3l - 2] == ',' &&
	    toupper(s3[s3l - 1]) == 'Y') { /* abs,Y or bp,Y */
		strcpy(tmp, s3);
		tmp[s3l - 2] = 0;
		known = evaluate(tmp, &l);
		d[data++] = l & 255;
		if (known && l > -129 && l < 256 && !forcelong)
			if ((j = searchstr(nmc, s2, 3)) >= 0) return (opc[j]);
		d[data++] = l >> 8;
		if ((j = searchstr(nmb, s2, 3)) >= 0) return (opb[j]);
		display_error(error = 'O');
		return (data = 0);
	}

	if (s3[s3l - 2] == ',' &&
	    toupper(s3[s3l - 1]) == 'X') { /* abs,X or bp,X */
		strcpy(tmp, s3);
		tmp[s3l - 2] = 0;
		known = evaluate(tmp, &l);
		d[data++] = l & 255;
		if (!known || l > 255 || forcelong) {
			d[data++] = l >> 8;
			if ((j = searchstr(nm8, s2, 3)) >= 0)
				if (op9[j]) return (op9[j]); /* abs,x */
		}
		if (known && l < 256)
			if ((j = searchstr(nm8, s2, 3)) >= 0)
				if (op8[j]) return (op8[j]); /* bp,x */
		display_error(error = 'O');
		return (data = 0);
	}
	/*
	        now test the easiest instructions to identify
	*/
	if (isdigit(s2[3]) &&
	    s2[4] == 0) { /* must be a rockwell bit instruction */
		if ((j = searchstr(nm2, s2, 4)) >= 0) {
			known = evaluate(s3, &l);
			d[data++] = l & 255;
			return (op2[j]); /* set or reset */
		}
		if ((j = searchstr(nm3, s2, 4)) >= 0) {
			char *p;
			strcpy(tmp, s3);
			if ((p = strchr(tmp, ','))) { /* find the , */
				*p = 0;
				known = evaluate(tmp, &l);
				d[data++] = l & 255;
				if (known && l > 255) {
					display_error(error = 'O');
					return (data = 0);
				}
				l = known;
				known = evaluate(++p, &s);
				s -= 3 + loc_cntr;
				d[data++] = s & 255;
				if (known && (s > 127 || s < -128)) {
					display_error(error = 'O');
					return (data = 0);
				}
				known &= l;
				return (op3[j]); /* br set or br reset */
			}
		}
		display_error(error = 'O');
		return (data = 0);
	}
	/*
	        test for branches
	*/
	if ((j = searchstr(nmd, s2, 3)) >= 0) {
		int petite;
		known = evaluate(s3, &s);
		s -= 2 + loc_cntr;
		petite = s < 128 && s > -129;
		d[data++] = s & 255;     /* low byte whether long or short */
		if (curpass < maxpass) { /* okay to change operand size */
			if (known && petite) return (opd[j]); /* short branch */
			if (cputype < 3) {
				if (known) display_error(error = 'A');
				return (opd[j]);
			}
			if ((assumeL && !known) ||
			    (known && !petite)) { /* long */
				d[data++] = s >> 8;
				return (ope[j]); /* long */
			}
			return opd[j]; /* else short */
		} else /* last pass, can't change operand size */
		        if (forcelong) { /* long branch */
			d[data++] = s >> 8;
			return (ope[j]);
		} else { /* short branch */
			if (!petite) display_error(error = 'A');
			return (opd[j]);
		}
	}
	/*
	        must be absolute or bp
	*/
	known = evaluate(s3, &l);
	d[data++] = l & 255;
	j = searchstr(nm5, s2, 3);
	i = !known || l < -128 || l > 255 || forcelong || !op5[j];
	if ((k = (i && op6[j]))) d[data++] = l >> 8 & 255;
	if (k ? op6[j] : op5[j]) return (k ? op6[j] : op5[j]); /* ?abs:bp */
	display_error(error = 'O');
	return (data = 0);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
leaq 0x86e0(%rip), %rax      # 0xe0a8
movq (%rax), %rbx
leaq 0x787e(%rip), %rdi      # 0xd250
pushq $0x3
popq %rdx
movq %rbx, %rsi
callq 0x595e
testl %eax, %eax
js 0x59f2
movl %eax, %eax
leaq 0x78e6(%rip), %rcx      # 0xd2d0
movb (%rax,%rcx), %al
jmp 0x6016
movq %rbx, %rdi
callq 0x10b0
cmpq $0x4, %rax
je 0x5a86
cmpq $0x3, %rax
jne 0x5abb
leaq 0x78eb(%rip), %rdi      # 0xd300
pushq $0x3
popq %r15
movq %rbx, %rsi
movl %r15d, %edx
callq 0x595e
movl %eax, %r14d
leaq 0x79f2(%rip), %rdi      # 0xd420
movq %rbx, %rsi
movl %r15d, %edx
callq 0x595e
movl %eax, %ebp
leaq 0x7a8e(%rip), %rdi      # 0xd4d0
movq %rbx, %rsi
movl %r15d, %edx
callq 0x595e
movl %eax, %r12d
leaq 0x7bb9(%rip), %rdi      # 0xd610
movq %rbx, %rsi
movl %r15d, %edx
callq 0x595e
movl %eax, %r13d
leaq 0x7c0e(%rip), %rdi      # 0xd67a
movq %rbx, %rsi
movl %r15d, %edx
callq 0x595e
testl %eax, %eax
jns 0x5acc
andl %r12d, %r13d
andl %r14d, %ebp
andl %r13d, %ebp
jmp 0x5ab4
leaq 0x78a3(%rip), %rdi      # 0xd330
pushq $0x4
popq %r14
movq %rbx, %rsi
movl %r14d, %edx
callq 0x595e
movl %eax, %ebp
leaq 0x78eb(%rip), %rdi      # 0xd390
movq %rbx, %rsi
movl %r14d, %edx
callq 0x595e
testl %eax, %eax
jns 0x5acc
shrl $0x1f, %ebp
testl %ebp, %ebp
je 0x5acc
leaq 0x833e(%rip), %rax      # 0xde00
movb $0x4e, (%rax)
pushq $0x4e
jmp 0x6004
leaq 0x8321(%rip), %rax      # 0xddf4
andl $0x0, (%rax)
leaq 0x831b(%rip), %rax      # 0xddf8
andl $0x0, (%rax)
xorl %edx, %edx
leaq 0x8537(%rip), %r12      # 0xe020
xorl %r14d, %r14d
xorl %r15d, %r15d
movq %rbx, 0x10(%rsp)
cmpl $0x85, %r15d
jg 0x5bab
movslq %r15d, %r13
movzbl (%r12,%r13), %eax
cmpl $0x7e, %eax
jne 0x5b2e
leaq 0x1(%r13), %r15
cmpb $0x0, 0x1(%r12,%r13)
jne 0x5af4
movb $0x20, (%r12,%r15)
movb $0x0, 0x2(%r12,%r13)
addq $0x2, %r13
movl %r13d, %r15d
jmp 0x5af4
testl %eax, %eax
je 0x5bab
cmpl $0x22, %eax
je 0x5b4e
cmpl $0x27, %eax
jne 0x5b66
xorl %ebx, %ebx
testl %edx, %edx
sete %bl
leaq 0x82ae(%rip), %rdx      # 0xddf8
movl %ebx, (%rdx)
jmp 0x5b68
movl %edx, %ebx
xorl %ecx, %ecx
testl %r14d, %r14d
sete %cl
leaq 0x8295(%rip), %rdx      # 0xddf4
movl %ecx, (%rdx)
movl %ecx, %r14d
jmp 0x5b68
movl %edx, %ebx
movsbq %al, %rbp
callq 0x1240
movq (%rax), %rax
testb $0x20, 0x1(%rax,%rbp,2)
sete %al
movl %r14d, %ecx
orl %ebx, %ecx
setne %cl
orb %al, %cl
je 0x5b97
movl %ebx, %edx
incl %r15d
movq 0x10(%rsp), %rbx
jmp 0x5af4
movb $0x0, (%r12,%r13)
xorl %edx, %edx
xorl %r14d, %r14d
movq 0x10(%rsp), %rbx
jmp 0x5af4
callq 0x1030
movq %rax, %r12
movq (%rax), %rbp
leaq 0x84f3(%rip), %r15      # 0xe0b0
movq (%r15), %r14
movsbq (%r14), %r13
cmpl $0x41, (%rbp,%r13,4)
jne 0x5bd7
cmpb $0x0, 0x1(%r14)
je 0x5f6b
cmpb $0x23, %r13b
jne 0x5c95
leaq 0x1(%r14), %rbx
movq %rbx, (%r15)
movzbl 0x1(%r14), %ebp
cmpl $0x27, %ebp
je 0x5bf7
cmpl $0x22, %ebp
jne 0x5c12
callq 0x1240
movq (%rax), %rax
movsbq 0x3(%r14), %rcx
testb $0x20, 0x1(%rax,%rcx,2)
je 0x5c12
movb %bpl, 0x3(%r14)
movq (%r15), %rbx
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x479e
movl %eax, %ebx
leaq 0x86ab(%rip), %rax      # 0xe2d3
movb %bl, (%rax)
leaq 0x8477(%rip), %rax      # 0xe0a8
movq (%rax), %rsi
leaq 0x7895(%rip), %rdi      # 0xd4d0
pushq $0x3
popq %rdx
callq 0x595e
testl %eax, %eax
js 0x5ff8
movq 0x8(%rsp), %rcx
leaq 0x867a(%rip), %rdx      # 0xe2d1
movsbq (%rdx), %rsi
leal 0x1(%rsi), %edi
movb %dil, (%rdx)
leaq 0x8568(%rip), %rbp      # 0xe1d0
movb %cl, (%rbp,%rsi)
movl %eax, %eax
leaq 0x789b(%rip), %r8       # 0xd510
movb (%rax,%r8), %al
cmpb $-0xc, %al
jne 0x5fe5
leal 0x2(%rsi), %eax
movb %al, (%rdx)
movsbq %dil, %rax
movb %ch, (%rbp,%rax)
movb $-0xc, %al
jmp 0x6016
movq %r14, %rdi
callq 0x10b0
movq %rax, %r15
shlq $0x20, %r15
movabsq $-0x500000000, %rax     # imm = 0xFFFFFFFB00000000
addq %r15, %rax
sarq $0x20, %rax
movsbq (%r14,%rax), %rax
cmpl $0x53, (%rbp,%rax,4)
movabsq $-0x400000000, %rdx     # imm = 0xFFFFFFFC00000000
movabsq $-0x300000000, %rdi     # imm = 0xFFFFFFFD00000000
movabsq $-0x100000000, %rsi     # imm = 0xFFFFFFFF00000000
movabsq $-0x200000000, %rcx     # imm = 0xFFFFFFFE00000000
jne 0x5e09
movabsq $-0x600000000, %rax     # imm = 0xFFFFFFFA00000000
addq %r15, %rax
sarq $0x20, %rax
cmpb $0x2c, (%r14,%rax)
jne 0x5e09
leaq (%r15,%rdx), %rax
sarq $0x20, %rax
movsbq (%r14,%rax), %rax
cmpl $0x50, (%rbp,%rax,4)
jne 0x5e09
leaq (%r15,%rdi), %rax
sarq $0x20, %rax
cmpb $0x29, (%r14,%rax)
jne 0x5e09
leaq (%r15,%rsi), %rax
sarq $0x20, %rax
movsbq (%r14,%rax), %rax
cmpl $0x59, (%rbp,%rax,4)
jne 0x5e09
leaq (%r15,%rcx), %rax
sarq $0x20, %rax
cmpb $0x2c, (%r14,%rax)
jne 0x5e09
incq %r14
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1080
movabsq $-0x700000000, %rax     # imm = 0xFFFFFFF900000000
addq %rax, %r15
sarq $0x20, %r15
movb $0x0, 0x20(%rsp,%r15)
leaq 0x8(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x479e
leaq 0x8533(%rip), %rcx      # 0xe2d3
movb %al, (%rcx)
movq (%r14), %rcx
leaq 0x8525(%rip), %rbx      # 0xe2d1
movsbq (%rbx), %rdx
leal 0x1(%rdx), %esi
movb %sil, (%rbx)
leaq 0x8413(%rip), %rsi      # 0xe1d0
movb %cl, (%rsi,%rdx)
testb %al, %al
sete %al
cmpq $0x100, %rcx            # imm = 0x100
setl %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x6540
leaq 0x82c7(%rip), %rax      # 0xe0a8
movq (%rax), %rsi
leaq 0x7886(%rip), %rdi      # 0xd671
pushq $0x3
popq %rdx
callq 0x595e
testl %eax, %eax
js 0x6540
movl %eax, %eax
leaq 0x7874(%rip), %rcx      # 0xd678
jmp 0x59ea
leaq 0x3c8f(%rip), %rsi      # 0x9a9f
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x5f8f
leaq 0x3c7c(%rip), %rsi      # 0x9aa3
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x6028
leaq 0x3c69(%rip), %rsi      # 0x9aa7
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x60c5
movabsq $-0x300000000, %rax     # imm = 0xFFFFFFFD00000000
addq %r15, %rax
sarq $0x20, %rax
movzbl (%r14,%rax), %eax
cmpl $0x29, %eax
je 0x6169
cmpl $0x2c, %eax
movabsq $-0x200000000, %rdx     # imm = 0xFFFFFFFE00000000
movabsq $-0x100000000, %rsi     # imm = 0xFFFFFFFF00000000
jne 0x6162
leaq (%r15,%rdx), %rax
sarq $0x20, %rax
movsbq (%r14,%rax), %rax
cmpl $0x58, (%rbp,%rax,4)
jne 0x6162
xorl %eax, %eax
cmpb $0x28, %r13b
jne 0x625e
leaq (%r15,%rsi), %rcx
sarq $0x20, %rcx
cmpb $0x29, (%r14,%rcx)
jne 0x625e
incq %r14
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1080
movabsq $-0x400000000, %rax     # imm = 0xFFFFFFFC00000000
addq %rax, %r15
sarq $0x20, %r15
movb $0x0, 0x20(%rsp,%r15)
leaq 0x8(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x479e
leaq 0x83d1(%rip), %rcx      # 0xe2d3
movb %al, (%rcx)
movq (%r14), %rcx
leaq 0x83c3(%rip), %rbx      # 0xe2d1
movsbq (%rbx), %rdx
leal 0x1(%rdx), %esi
movb %sil, (%rbx)
leaq 0x82b1(%rip), %rsi      # 0xe1d0
movb %cl, (%rsi,%rdx)
testb %al, %al
sete %al
cmpq $0x100, %rcx            # imm = 0x100
setl %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x6540
leaq 0x8165(%rip), %rax      # 0xe0a8
movq (%rax), %rsi
leaq 0x74a3(%rip), %rdi      # 0xd3f0
pushq $0x3
popq %rdx
callq 0x595e
testl %eax, %eax
js 0x6540
movl %eax, %eax
leaq 0x74a3(%rip), %rcx      # 0xd409
jmp 0x59ea
leaq 0x738e(%rip), %rdi      # 0xd300
pushq $0x3
popq %rdx
movq %rbx, %rsi
callq 0x595e
testl %eax, %eax
js 0x5ff8
movl %eax, %eax
leaq 0x738f(%rip), %rcx      # 0xd319
jmp 0x59ea
leaq 0x18(%rsp), %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x479e
leaq 0x832d(%rip), %rdx      # 0xe2d3
leaq 0x7873(%rip), %rsi      # 0xd820
movq (%rbx), %rcx
subq (%rsi), %rcx
movb %al, (%rdx)
addq $-0x2, %rcx
leaq 0x8311(%rip), %rax      # 0xe2d1
movsbq (%rax), %rdx
leal 0x1(%rdx), %esi
leaq 0x8202(%rip), %rdi      # 0xe1d0
movb %cl, (%rdi,%rdx)
addl $0x2, %edx
movb %dl, (%rax)
movsbq %sil, %rax
movb %ch, (%rdi,%rax)
movb 0x76a1(%rip), %al       # 0xd684
jmp 0x6016
testb %bl, %bl
sete %dl
cmpq $0x100, %rcx            # imm = 0x100
setl %cl
orb %dl, %cl
jne 0x6016
leaq 0x7e01(%rip), %rax      # 0xde00
movb $0x4f, (%rax)
pushq $0x4f
popq %rdi
callq 0x1e1c
leaq 0x82c0(%rip), %rax      # 0xe2d1
movb $0x0, (%rax)
xorl %eax, %eax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x1080
pushq $0x1
popq %r13
cmpb $0x28, (%r14)
jne 0x6809
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
addq %r15, %rax
sarq $0x20, %rax
cmpb $0x29, (%r14,%rax)
jne 0x6809
leaq 0x1(%r14), %rsi
leaq 0x20(%rsp), %rdi
callq 0x1080
movabsq $-0x300000000, %rax     # imm = 0xFFFFFFFD00000000
addq %r15, %rax
sarq $0x20, %rax
cmpb $0x2c, (%r14,%rax)
jne 0x655a
movq (%r12), %rax
movabsq $-0x200000000, %rdx     # imm = 0xFFFFFFFE00000000
addq %r15, %rdx
sarq $0x20, %rdx
movsbq (%r14,%rdx), %rcx
cmpl $0x58, (%rax,%rcx,4)
jne 0x67fc
movabsq $-0x400000000, %rax     # imm = 0xFFFFFFFC00000000
addq %rax, %r15
sarq $0x20, %r15
pushq $0x3
jmp 0x675b
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x1080
pushq $0x4
popq %r13
cmpb $0x28, (%r14)
jne 0x6809
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
addq %r15, %rax
sarq $0x20, %rax
cmpb $0x29, (%r14,%rax)
jne 0x6809
leaq 0x1(%r14), %rsi
leaq 0x20(%rsp), %rdi
callq 0x1080
movabsq $-0x300000000, %rax     # imm = 0xFFFFFFFD00000000
addq %r15, %rax
sarq $0x20, %rax
cmpb $0x2c, (%r14,%rax)
jne 0x6748
movq (%r12), %rax
movabsq $-0x200000000, %rdx     # imm = 0xFFFFFFFE00000000
addq %r15, %rdx
sarq $0x20, %rdx
movsbq (%r14,%rdx), %rcx
cmpl $0x58, (%rax,%rcx,4)
jne 0x6800
movabsq $-0x400000000, %rax     # imm = 0xFFFFFFFC00000000
addq %rax, %r15
sarq $0x20, %r15
pushq $0x6
jmp 0x675b
xorl %eax, %eax
jmp 0x625e
movabsq $-0x100000000, %rsi     # imm = 0xFFFFFFFF00000000
leaq (%r15,%rsi), %rax
sarq $0x20, %rax
movsbq (%r14,%rax), %rcx
movb $0x1, %al
cmpl $0x59, (%rbp,%rcx,4)
movabsq $-0x200000000, %rdx     # imm = 0xFFFFFFFE00000000
jne 0x625e
cmpb $0x28, %r13b
jne 0x625e
leaq (%r15,%rdx), %rcx
sarq $0x20, %rcx
cmpb $0x2c, (%r14,%rcx)
jne 0x625e
incq %r14
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1080
movabsq $-0x400000000, %rax     # imm = 0xFFFFFFFC00000000
addq %rax, %r15
sarq $0x20, %r15
movb $0x0, 0x20(%rsp,%r15)
leaq 0x8(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x479e
leaq 0x80de(%rip), %rcx      # 0xe2d3
movb %al, (%rcx)
movq (%r14), %rcx
leaq 0x80d0(%rip), %rbx      # 0xe2d1
movsbq (%rbx), %rdx
leal 0x1(%rdx), %esi
movb %sil, (%rbx)
leaq 0x7fbe(%rip), %rsi      # 0xe1d0
movb %cl, (%rsi,%rdx)
testb %al, %al
sete %al
cmpq $0x100, %rcx            # imm = 0x100
setl %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x6540
leaq 0x7e72(%rip), %rax      # 0xe0a8
movq (%rax), %rsi
leaq 0x7360(%rip), %rdi      # 0xd5a0
pushq $0x3
popq %rdx
callq 0x595e
testl %eax, %eax
js 0x6540
movl %eax, %eax
leaq 0x7360(%rip), %rcx      # 0xd5b9
jmp 0x59ea
cmpb $0x28, %r13b
jne 0x6298
leaq (%r15,%rsi), %rcx
sarq $0x20, %rcx
movsbq (%r14,%rcx), %rcx
cmpl $0x5a, (%rbp,%rcx,4)
jne 0x6298
leaq (%r15,%rdx), %rcx
sarq $0x20, %rcx
cmpb $0x2c, (%r14,%rcx)
jne 0x6298
leaq 0x763a(%rip), %rcx      # 0xd8c8
cmpl $0x3, (%rcx)
sete %cl
testb %cl, %al
jne 0x62d1
leaq 0x7629(%rip), %r12      # 0xd8c8
cmpb $0x28, %r13b
jne 0x637b
movl (%r12), %eax
testl %eax, %eax
je 0x637b
cmpl $0x2, %eax
jg 0x637b
leaq (%r15,%rsi), %rax
sarq $0x20, %rax
cmpb $0x29, (%r14,%rax)
jne 0x637b
incq %r14
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1080
movabsq $-0x400000000, %rax     # imm = 0xFFFFFFFC00000000
addq %rax, %r15
sarq $0x20, %r15
movb $0x0, 0x20(%rsp,%r15)
leaq 0x8(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x479e
leaq 0x7fc1(%rip), %rcx      # 0xe2d3
movb %al, (%rcx)
movq (%r14), %rcx
leaq 0x7fb3(%rip), %rbx      # 0xe2d1
movsbq (%rbx), %rdx
leal 0x1(%rdx), %esi
movb %sil, (%rbx)
leaq 0x7ea1(%rip), %rsi      # 0xe1d0
movb %cl, (%rsi,%rdx)
testb %al, %al
sete %al
cmpq $0x100, %rcx            # imm = 0x100
setl %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x6540
leaq 0x7d55(%rip), %rax      # 0xe0a8
movq (%rax), %rsi
leaq 0x72f3(%rip), %rdi      # 0xd650
pushq $0x3
popq %rdx
callq 0x595e
testl %eax, %eax
js 0x6540
movl %eax, %eax
leaq 0x72f3(%rip), %rcx      # 0xd669
jmp 0x59ea
addq %r15, %rdx
sarq $0x20, %rdx
cmpb $0x2c, (%r14,%rdx)
jne 0x6465
addq %rsi, %r15
sarq $0x20, %r15
movsbq (%r14,%r15), %rax
movl (%rbp,%rax,4), %eax
cmpl $0x58, %eax
je 0x6650
cmpl $0x59, %eax
jne 0x6465
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
movq %rdx, %r14
callq 0x1080
movb $0x0, 0x20(%rsp,%r14)
leaq 0x8(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x479e
leaq 0x7ef4(%rip), %rcx      # 0xe2d3
movb %al, (%rcx)
movq (%r14), %rbx
leaq 0x7ee6(%rip), %r14      # 0xe2d1
movsbq (%r14), %r12
leal 0x1(%r12), %ebp
movb %bpl, (%r14)
leaq 0x7dd2(%rip), %rdx      # 0xe1d0
movb %bl, (%rdx,%r12)
leaq 0x7c9f(%rip), %rcx      # 0xe0a8
movq (%rcx), %r15
testb %al, %al
je 0x67c5
leaq -0x100(%rbx), %rax
cmpq $-0x180, %rax           # imm = 0xFE80
jb 0x67c5
leaq 0x76a2(%rip), %rax      # 0xdad0
cmpl $0x0, (%rax)
jne 0x67c5
leaq 0x71bb(%rip), %rdi      # 0xd5f9
movq %rdx, %r13
pushq $0x3
popq %rdx
movq %r15, %rsi
callq 0x595e
movq %r13, %rdx
testl %eax, %eax
js 0x67c5
movl %eax, %eax
leaq 0x71a0(%rip), %rcx      # 0xd600
jmp 0x59ea
callq 0x1240
movq (%rax), %rax
movsbq 0x3(%rbx), %rcx
testb $0x8, 0x1(%rax,%rcx,2)
je 0x6483
cmpb $0x0, 0x4(%rbx)
je 0x6765
leaq 0x7186(%rip), %rdi      # 0xd610
pushq $0x3
popq %rdx
movq %rbx, %rsi
callq 0x595e
testl %eax, %eax
js 0x6572
movl %eax, %ebx
leaq 0x18(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x479e
leaq 0x7e1d(%rip), %rcx      # 0xe2d3
movb %al, (%rcx)
leaq 0x7361(%rip), %rcx      # 0xd820
movq (%r15), %r9
subq (%rcx), %r9
leaq -0x2(%r9), %rcx
movq %rcx, (%r15)
addq $0x7e, %r9
leaq 0x7dfa(%rip), %rdx      # 0xe2d1
movsbq (%rdx), %r8
leal 0x1(%r8), %edi
movb %dil, (%rdx)
leaq 0x7ce7(%rip), %rsi      # 0xe1d0
movb %cl, (%rsi,%r8)
leaq 0x72fc(%rip), %r10      # 0xd7f0
movl (%r10), %r10d
leaq 0x7302(%rip), %r11      # 0xd800
cmpl (%r11), %r10d
jge 0x6627
cmpq $0x100, %r9             # imm = 0x100
setb %r10b
testb %al, %al
setne %r11b
leaq 0x7110(%rip), %r14      # 0xd62f
testb %r10b, %r11b
jne 0x69fc
cmpl $0x2, (%r12)
jg 0x69cb
testb %al, %al
jne 0x6870
jmp 0x69fc
leaq 0x78b9(%rip), %rax      # 0xde00
movb $0x4f, (%rax)
pushq $0x4f
popq %rdi
callq 0x1e1c
movb $0x0, (%rbx)
jmp 0x6014
movabsq $-0x200000000, %rax     # imm = 0xFFFFFFFE00000000
addq %rax, %r15
sarq $0x20, %r15
pushq $0x2
jmp 0x675b
leaq 0x8(%rsp), %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x479e
movl %eax, %ebp
leaq 0x7d48(%rip), %rax      # 0xe2d3
movb %bpl, (%rax)
movq (%rbx), %rbx
leaq 0x7d39(%rip), %r14      # 0xe2d1
movsbq (%r14), %r15
leal 0x1(%r15), %r12d
movb %r12b, (%r14)
leaq 0x7c26(%rip), %rax      # 0xe1d0
movq %rax, %r13
movb %bl, (%rax,%r15)
leaq 0x7af0(%rip), %rax      # 0xe0a8
movq (%rax), %rsi
leaq 0x6e5e(%rip), %rdi      # 0xd420
pushq $0x3
popq %rdx
callq 0x595e
movslq %eax, %rcx
testb %bpl, %bpl
je 0x65ff
leaq -0x100(%rbx), %rax
cmpq $-0x180, %rax           # imm = 0xFE80
jb 0x65ff
leaq 0x74e8(%rip), %rax      # 0xdad0
cmpl $0x0, (%rax)
jne 0x65ff
leaq 0x6e9c(%rip), %rax      # 0xd490
movb (%rcx,%rax), %al
testb %al, %al
jne 0x6016
leaq 0x6eaa(%rip), %rax      # 0xd4b0
movb (%rcx,%rax), %al
testb %al, %al
je 0x6887
leal 0x2(%r15), %ecx
movb %cl, (%r14)
movsbq %r12b, %rcx
movq %r13, %rdx
movb %bh, (%rdx,%rcx)
jmp 0x6016
leaq 0x74a2(%rip), %rax      # 0xdad0
cmpl $0x0, (%rax)
je 0x685c
leal 0x2(%r8), %eax
movb %al, (%rdx)
movsbq %dil, %rax
movb %ch, (%rsi,%rax)
leaq 0x6fee(%rip), %r14      # 0xd639
jmp 0x69fc
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
movq %rdx, %r14
callq 0x1080
movb $0x0, 0x20(%rsp,%r14)
leaq 0x8(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x479e
movl %eax, %ebp
leaq 0x7c51(%rip), %rax      # 0xe2d3
movb %bpl, (%rax)
movq (%r14), %rbx
leaq 0x7c42(%rip), %r14      # 0xe2d1
movsbq (%r14), %rax
leal 0x1(%rax), %ecx
movb %cl, (%r14)
leaq 0x7b30(%rip), %rdx      # 0xe1d0
movb %bl, (%rdx,%rax)
testb %bpl, %bpl
je 0x66bd
cmpq $0xff, %rbx
jg 0x66bd
leaq 0x7418(%rip), %rsi      # 0xdad0
cmpl $0x0, (%rsi)
je 0x66fb
addl $0x2, %eax
movb %al, (%r14)
movsbq %cl, %rax
movb %bh, (%rdx,%rax)
leaq 0x79d7(%rip), %rax      # 0xe0a8
movq (%rax), %rsi
leaq 0x6e45(%rip), %rdi      # 0xd520
pushq $0x3
popq %rdx
callq 0x595e
testl %eax, %eax
js 0x66fb
movl %eax, %eax
leaq 0x6e90(%rip), %rcx      # 0xd580
movb (%rax,%rcx), %al
testb %al, %al
jne 0x6016
testb %bpl, %bpl
setne %al
cmpq $0x100, %rbx            # imm = 0x100
setl %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x6899
leaq 0x798b(%rip), %rax      # 0xe0a8
movq (%rax), %rsi
leaq 0x6df9(%rip), %rdi      # 0xd520
pushq $0x3
popq %rdx
callq 0x595e
testl %eax, %eax
js 0x6899
movl %eax, %eax
leaq 0x6e20(%rip), %rcx      # 0xd560
movb (%rax,%rcx), %al
jmp 0x6891
movabsq $-0x200000000, %rax     # imm = 0xFFFFFFFE00000000
addq %rax, %r15
sarq $0x20, %r15
pushq $0x5
popq %r13
movq %r15, %rdx
jmp 0x6804
leaq 0x6bc4(%rip), %rdi      # 0xd330
pushq $0x4
popq %rdx
movq %rbx, %rsi
callq 0x595e
testl %eax, %eax
js 0x68b4
movl %eax, %ebp
leaq 0x8(%rsp), %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x479e
leaq 0x7b3b(%rip), %rcx      # 0xe2d3
movb %al, (%rcx)
movb (%rbx), %al
leaq 0x7b2e(%rip), %rcx      # 0xe2d1
movsbq (%rcx), %rdx
leal 0x1(%rdx), %esi
movb %sil, (%rcx)
leaq 0x7a1c(%rip), %rcx      # 0xe1d0
movb %al, (%rcx,%rdx)
movl %ebp, %eax
leaq 0x6bc0(%rip), %rcx      # 0xd380
jmp 0x59ea
leal 0x2(%r12), %eax
movb %al, (%r14)
movsbq %bpl, %rax
movb %bh, (%rdx,%rax)
leaq 0x6df5(%rip), %rdi      # 0xd5d0
pushq $0x3
popq %rdx
movq %r15, %rsi
callq 0x595e
testl %eax, %eax
js 0x6899
movl %eax, %eax
leaq 0x6df8(%rip), %rcx      # 0xd5ef
jmp 0x59ea
pushq $0x2
jmp 0x6802
pushq $0x5
popq %r13
movb $0x0, 0x20(%rsp,%rdx)
leaq 0x20(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x479e
leaq 0x7ab1(%rip), %rcx      # 0xe2d3
movb %al, (%rcx)
movq (%rbx), %rax
leaq 0x7aa3(%rip), %rcx      # 0xe2d1
movsbq (%rcx), %rdx
leal 0x1(%rdx), %esi
leaq 0x7994(%rip), %rdi      # 0xe1d0
movb %al, (%rdi,%rdx)
addl $0x2, %edx
movb %dl, (%rcx)
movsbq %sil, %rcx
movb %ah, (%rdi,%rcx)
leaq 0x6e32(%rip), %rax      # 0xd684
movb (%r13,%rax), %al
jmp 0x6016
leaq 0x6dcc(%rip), %r14      # 0xd62f
cmpq $0x100, %r9             # imm = 0x100
jb 0x69fc
leaq 0x7589(%rip), %rax      # 0xde00
movb $0x41, (%rax)
pushq $0x41
popq %rdi
callq 0x1e1c
jmp 0x69fc
leaq 0x6c02(%rip), %rax      # 0xd490
movb (%rcx,%rax), %al
testb %al, %al
jne 0x6016
leaq 0x7560(%rip), %rax      # 0xde00
movb $0x4f, (%rax)
pushq $0x4f
popq %rdi
callq 0x1e1c
movb $0x0, (%r14)
jmp 0x6014
leaq 0x6ad5(%rip), %rdi      # 0xd390
pushq $0x4
popq %rdx
movq %rbx, %rsi
callq 0x595e
testl %eax, %eax
js 0x5ff8
movl %eax, %ebx
leaq 0x20(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x1080
pushq $0x2c
popq %rsi
movq %r15, %rdi
callq 0x10d0
testq %rax, %rax
je 0x5ff8
movq %rax, %r14
movb $0x0, (%rax)
leaq 0x20(%rsp), %rdi
leaq 0x8(%rsp), %r15
movq %r15, %rsi
callq 0x479e
leaq 0x79c0(%rip), %r13      # 0xe2d3
movb %al, (%r13)
movq (%r15), %rcx
leaq 0x79b0(%rip), %r12      # 0xe2d1
movsbq (%r12), %rdx
leal 0x1(%rdx), %esi
movb %sil, (%r12)
leaq 0x789c(%rip), %rbp      # 0xe1d0
movb %cl, (%rbp,%rdx)
testb %al, %al
setne %dl
cmpq $0x100, %rcx            # imm = 0x100
setge %cl
andb %dl, %cl
cmpb $0x1, %cl
je 0x69af
movsbq %al, %rax
movq %rax, 0x8(%rsp)
incq %r14
leaq 0x18(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x479e
movb %al, (%r13)
leaq 0x6eab(%rip), %rcx      # 0xd820
movq (%r15), %rdx
subq (%rcx), %rdx
leaq -0x3(%rdx), %rcx
movq %rcx, (%r15)
movsbq (%r12), %rsi
leal 0x1(%rsi), %edi
movb %dil, (%r12)
movb %cl, (%rbp,%rsi)
testb %al, %al
setne %cl
addq $-0x83, %rdx
cmpq $-0x100, %rdx
setb %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x6a07
leaq 0x744a(%rip), %rax      # 0xde00
movb $0x4f, (%rax)
pushq $0x4f
popq %rdi
callq 0x1e1c
movb $0x0, (%r12)
jmp 0x6014
cmpq $0x100, %r9             # imm = 0x100
setb %r9b
leaq 0x6f8b(%rip), %r10      # 0xd968
cmpl $0x0, (%r10)
setne %r10b
testb %al, %al
sete %al
testb %r10b, %al
jne 0x6637
orb %r9b, %al
je 0x6637
movl %ebx, %eax
movb (%r14,%rax), %al
jmp 0x6016
andb 0x8(%rsp), %al
movb %al, (%r13)
movl %ebx, %eax
leaq 0x69c8(%rip), %rcx      # 0xd3e0
jmp 0x59ea
nopl (%rax)