// File: /workspace/github_c_makefile_star2_O2/ksherlock[P]nroff_man/read1.c
// Function: read_line
const unsigned char *read_line(void) {


	if (so_index < 0) { type = tkEOF; return NULL; }

	for(;;) {
		unsigned escape = 0;
		unsigned offset = 0;

		type = tkTEXT;
		argc = 0;
		argv[0] = NULL;


		for(;;) {
			int bits;
			char *cp;

			cp = fgets(buffer + offset, sizeof(buffer) - offset, 
				so_entries[so_index].fp);
			if (cp == NULL) {
				if (offset) break;


				if (ignore && flags.W >= 1) {
					man_warnx("end of input while ignoring lines");
				}

				free(so_entries[so_index].name);
				if (so_index) fclose(so_entries[so_index].fp);
				--so_index;
				if (so_index >= 0) continue;
				type = tkEOF;
				return NULL;
			}
			so_entries[so_index].line++;

			if (ignore) {
				if (buffer[0] == cc && buffer[1] == '.')
					ignore = 0;
				continue;
			}

			/* potentially false positive but no line should be this long */
			bits = analyze(&offset);
			if (offset > MAN_BUFFER_SIZE)
				man_errx(1, "line too long.");

			if (bits & 0x01) escape = 1;
			if (bits & 0x02) continue; /*  /n - join next line. */
			break;
		}
		if (buffer[0] == cc || buffer[0] == c2) {
			unsigned i = 1;
			uint_fast8_t c;
			char *cp;

			while (isspace(buffer[i])) ++i;
			c = buffer[i++];
			if (c == 0) continue;

#define _1(x1,y1,v1)\
case x1: c = buffer[i++];\
if (c == y1) type = v1;\
break;

#define _2(x1,y1,v1,y2,v2)\
case x1: c = buffer[i++];\
     if (c == y1) type = v1;\
else if (c == y2) type = v2;\
break;

#define _2x(x1,y1,v1,y2,v2,zz)\
case x1: c = buffer[i++];\
     if (c == y1) type = v1;\
else if (c == y2) type = v2;\
else { --i; type = zz; }\
break;

#define _3(x1,y1,v1,y2,v2,y3,v3)\
case x1: c = buffer[i++];\
     if (c == y1) type = v1;\
else if (c == y2) type = v2;\
else if (c == y3) type = v3;\
break;

#define _3x(x1,y1,v1,y2,v2,y3,v3,zz)\
case x1: c = buffer[i++];\
     if (c == y1) type = v1;\
else if (c == y2) type = v2;\
else if (c == y3) type = v3;\
else { --i; type = zz; }\
break;


#define _4(x1,y1,v1,y2,v2,y3,v3,y4,v4)\
case x1: c = buffer[i++];\
     if (c == y1) type = v1;\
else if (c == y2) type = v2;\
else if (c == y3) type = v3;\
else if (c == y4) type = v4;\
break;

#define _4x(x1,y1,v1,y2,v2,y3,v3,y4,v4,zz)\
case x1: c = buffer[i++];\
     if (c == y1) type = v1;\
else if (c == y2) type = v2;\
else if (c == y3) type = v3;\
else if (c == y4) type = v4;\
else { --i; type = zz; }\
break;

#define _5(x1,y1,v1,y2,v2,y3,v3,y4,v4,y5,v5)\
case x1: c = buffer[i++];\
     if (c == y1) type = v1;\
else if (c == y2) type = v2;\
else if (c == y3) type = v3;\
else if (c == y4) type = v4;\
else if (c == y5) type = v5;\
break;


/*
 * Not supported:
 * .TS / .TE -> tbl
 * .EQ / .EN -> eqn
 * .PS / .PE -> pic
 * .G1 / .G2 -> grap
 * .[ / .] / .R1 / .R2 -> refer
 * .vS / .vE -> vgrind
 */

			switch(c) {
			/* tkxx skipped tokens:
				.ad [blrc] - text justification
				.if ...
				.nh - no hyphenation
				.ne # - page break unless >= N lines available.
				.cc - command char (.)
				.ec - escape char (\)
				.eo - escape char off.
			*/
			_2 ('a', 'b', tkab, 'd', tkad);
			_1 ('b', 'r', tkbr);
			_2 ('c', 'c', tkcc, '2', tkc2);
			_2 ('e', 'c', tkec, 'o', tkeo);
			_2 ('f', 'i', tkfi, 't', tkft);
			_1 ('h', 'y', tkhy);
			_3 ('i', 'n', tkin, 'f', tkxx, 'g', tkig);
			_1 ('l', 'l', tkll);
			_5 ('n', 'f', tknf, 'a', tkna, 'e', tkxx, 'h', tknh, 's', tkns);
			_1 ('r', 's', tkrs);
			_2 ('s', 'o', tkso, 'p', tksp);
			_2 ('t', 'i', tkti, 'm', tktm);
			/* */
			_1 ('A', 'T', tkAT);
			_2x('B', 'I', tkBI, 'R', tkBR, tkB);
			_1 ('D', 'T', tkDT);
			_2 ('E', 'E', tkEE, 'X', tkEX);
			_1 ('H', 'P', tkHP);
			_4x('I', 'B', tkIB, 'P', tkIP, 'R', tkIR, 'X', tkIX, tkI);
			_1 ('L', 'P', tkLP);
			_3 ('M', 'E', tkME, 'R', tkMR, 'T', tkMT);
			_1 ('O', 'P', tkOP);
			_2x('P', 'D', tkPD, 'P', tkPP, tkP);
			_4x('R', 'B', tkRB, 'E', tkRE, 'I', tkRI, 'S', tkRS, tkR);
			_5 ('S', 'B', tkSB, 'H', tkSH, 'M', tkSM, 'S', tkSS, 'Y', tkSY);
			_5 ('T', 'H', tkTH, 'P', tkTP, 'Q', tkTQ, 'S', tkTS, 'E', tkTE);
			_3 ('U', 'C', tkUC, 'E', tkUE, 'R', tkUR);
			_1 ('Y', 'S', tkYS);
			}
			if (type == tkTEXT) {
				if (flags.W) man_warnx1s("invalid command: %s", buffer);
				continue;
			}
			c = buffer[i];
			if (c != 0 && !isspace(c)) {
				if (flags.W) man_warnx1s("invalid command: %s", buffer);
				continue;
			}
			while (isspace((c = buffer[i]))) ++i;
			cp = buffer + i;


			if (flags.W >= 3) switch(type) {
				case tkIX:
					man_warnx1s("unsupported macro: .%s", token_names[type]);
					break;
				case tkUR: case tkUE: case tkMT: case tkME:
				case tkOP: case tkSY: case tkYS: case tkTQ:
					man_warnx1s("non-standard GNU macro: .%s", token_names[type]);
				case tkMR:
					man_warnx1s("non-standard Plan 9 macro: .%s", token_names[type]);
					break;
			}
			switch(type) {
				case tkUR: case tkUE: case tkMT: case tkME: case tkIX:
					continue;
				case tkxx: continue;
				case tkcc:
					/* quotes not supported. */
					cc = c == 0 ? '.' : c;
					continue;
				case tkc2:
					/* quotes not supported. */
					c2 = c == 0 ? '\'' : c;
					continue;
				case tkeo: ec = 0; continue;
				case tkec:
					ec = c == 0 ? '\\' : c;
					continue;

				case tkab:
					/* print message to stderr and abort */
					fputs(c ? cp : "User abort.", stderr);
					fputs("\n", stderr);
					exit(1);
					continue;

				case tktm:
					/* print message to stderr */
					if (c) fprintf(stderr, "%s\n", cp);
					continue;


				case tkad:
					na = 0;
					if (c == 'b' || c == 'c' || c == 'l' || c == 'r')
						ad = c;
					continue;
				case tkna: na = 1; continue;
				case tknh: hy = 0; continue;
				case tkhy: {
					/* .hy # */
					/* 0 = off, 1 = on, 2,4,8 have other implications */
					if (c == '0') hy = 0;
					else hy = 1;
					continue;
				}

				case tkrs: ns = 0; continue;
				case tkns: ns = 1; continue;

				case tknf: flush(0); fi = 0; continue;
				case tkfi: flush(0); fi = 1; continue;

				case tkbr:
					flush(0);
					continue;
				case tksp: {
					int n;
					flush(0);
					if (ns) break;
					n = get_unit(cp, 1, -1);
					while (--n >= 0 ) {
						fputc('\n', stdout); ++line;
					}
					continue;
				}



				case tkso: {
					/* heirloom troff so supports quotes. */
					/* mandoc and groff do not. */
					/* groff strips trailing ws; mandoc does not */
					if (c) {
						FILE *fp;
						if (so_index == MAX_SO-1) {
							man_warnx("too many .so requests.");
							continue;
						}
						fp = fopen(cp, "r");
						if (!fp) {
							man_warn1s(".so %s", cp);
							continue;
						}
						++so_index;
						so_entries[so_index].fp = fp;
						so_entries[so_index].name = strdup(cp);
					}
					continue;
				}

				case tkll: {
					/* .ll +N */
					/* default is previous .ll */
					int n;
					flush(0);
					n = get_unit(cp, prev_ll, ll);
					set_ll(n);
					continue;
				}

				case tkin: {
					/* .in +N */
					/* default is previous .in */
					int n;
					flush(0);
					n = get_unit(cp, prev_in, in);
					set_in(n);
					continue;
				}

				case tkti: {
					/* .ti +N */
					/* relative to in */
					int n;
					flush(0);
					n = get_unit(cp, -1, in);
					set_ti(n);
					continue;
				}

				case tkft: {
					/* .ft [BRIP123] */
					/* default = previous */
					unsigned ff;
					switch(c) {
						default:
						case 'P': ff = FONT_P; break;
						case 'R': case '1': ff = FONT_R; break;
						case 'B': case '3': ff = FONT_B; break;
						case 'I': case '2': ff = FONT_I; break;
					}
					append_font(ff);
					continue;
				}

				case tkig:
					/* ig [end] */
					/* todo -- support end argument */
					ignore = 1;
					continue;

				default:
					parse_args(i, sizeof(buffer) - offset);
					return "";
				}
		}
		type = tkTEXT;
		if (!escape) return buffer;

		parse_text(MAN_BUFFER_SIZE - offset);
		return buffer + MAN_BUFFER_SIZE;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
cmpl $0x0, 0x9ac3(%rip)      # 0xe340
js 0x5566
leaq 0x9b16(%rip), %rbx      # 0xe3a0
leaq 0xab7f(%rip), %rbp      # 0xf410
andl $0x0, 0x9ac8(%rip)      # 0xe360
andq $0x0, 0xab20(%rip)      # 0xf3c0
movl $0x1, 0x9a66(%rip)      # 0xe310
xorl %r12d, %r12d
movl $0x0, 0xc(%rsp)
movl %r12d, %r13d
movl %r13d, %r15d
addq %rbx, %r15
movl $0x1000, %r12d          # imm = 0x1000
subl %r13d, %r12d
movslq 0x9a72(%rip), %rax      # 0xe340
imulq $0x18, %rax, %rax
movq (%rax,%rbp), %rdx
movq %r15, %rdi
movl %r12d, %esi
callq 0x40e0
testq %rax, %rax
je 0x4922
movslq 0x9a53(%rip), %rax      # 0xe340
imulq $0x18, %rax, %rax
incl 0x10(%rax,%rbp)
cmpl $0x0, 0x9a78(%rip)      # 0xe374
je 0x4991
movb 0x9a98(%rip), %al       # 0xe3a0
cmpb 0x9a2e(%rip), %al       # 0xe33c
jne 0x48c7
cmpb $0x2e, 0x9a8a(%rip)     # 0xe3a1
jne 0x48c7
andl $0x0, 0x9a54(%rip)      # 0xe374
jmp 0x48c7
testl %r13d, %r13d
jne 0x4c97
cmpl $0x0, 0x9a42(%rip)      # 0xe374
je 0x494b
cmpl $0x0, 0x9a3d(%rip)      # 0xe378
je 0x494b
xorl %edi, %edi
leaq 0x4cc3(%rip), %rsi      # 0x9609
callq 0x4726
movslq 0x99ee(%rip), %r15      # 0xe340
imulq $0x18, %r15, %r14
movq 0x8(%r14,%rbp), %rdi
callq 0x4040
testq %r15, %r15
je 0x555f
movq (%r14,%rbp), %rdi
callq 0x4080
movl 0x99c8(%rip), %eax      # 0xe340
leal -0x1(%rax), %ecx
movl %ecx, 0x99bf(%rip)      # 0xe340
xorl %r13d, %r13d
testl %eax, %eax
jg 0x48b8
jmp 0x5566
xorl %r10d, %r10d
movb 0x99a4(%rip), %al       # 0xe33e
movl %r13d, %edx
movl (%rsp), %ecx
movl %edx, %r12d
movl %r12d, %r14d
movzbl (%r14,%rbx), %edx
cmpl $0x9, %edx
je 0x49d8
cmpl $0x20, %edx
je 0x49d8
testl %edx, %edx
je 0x4bed
cmpl $0xa, %edx
je 0x4bfa
cmpl $0xd, %edx
je 0x4bfa
cmpb $0x1f, %dl
jle 0x49dd
cmpb %al, %dl
je 0x49f1
incl %r12d
jmp 0x49a3
movb $-0x7f, (%r14,%rbx)
orl $0x8, %r10d
incl %r12d
movl %r12d, %ecx
movl %r12d, %edx
jmp 0x49a0
leal 0x2(%r12), %edx
leal 0x1(%r12), %r15d
movzbl (%r15,%rbx), %edi
leal -0x41(%rdi), %r8d
movl %edx, %esi
cmpl $0x37, %r8d
ja 0x4a44
leaq 0x4735(%rip), %r9       # 0x9148
movslq (%r9,%r8,4), %rdi
addq %r9, %rdi
jmpq *%rdi
leal 0x3(%r12), %ecx
movzbl (%rsi,%rbx), %edx
cmpl $0x28, %edx
je 0x4a3a
cmpl $0x5b, %edx
jne 0x4b31
movl %ecx, %edx
pushq $0x1
popq %rsi
jmp 0x4ab3
movl %ecx, %edx
pushq $0x1
popq %rsi
jmp 0x4ace
leal -0x22(%rdi), %r8d
cmpl $0x8, %r8d
ja 0x4a8c
leaq 0x46cf(%rip), %r9       # 0x9124
movslq (%r9,%r8,4), %rdi
addq %r9, %rdi
jmpq *%rdi
xorl %esi, %esi
jmp 0x4ace
xorl %esi, %esi
jmp 0x4ab3
leal 0x3(%r12), %ecx
movzbl (%rsi,%rbx), %edx
cmpl $0x28, %edx
je 0x4aca
cmpl $0x5b, %edx
je 0x4aaf
testl %edx, %edx
je 0x4bf5
orl $0x1, %r10d
movl %ecx, %edx
jmp 0x49a0
testl %edi, %edi
je 0x4c5c
cmpl $0xa, %edi
je 0x4c5c
cmpl $0xd, %edi
je 0x4c5c
orl $0x1, %r10d
jmp 0x49a0
xorl %esi, %esi
movl %ecx, %edx
movl %edx, %edi
movzbl (%rdi,%rbx), %edi
testl %edi, %edi
je 0x4bfa
incl %edx
cmpl $0x5d, %edi
jne 0x4ab3
jmp 0x4aec
xorl %esi, %esi
movl %ecx, %edx
movl %edx, %edi
cmpb $0x0, (%rdi,%rbx)
je 0x4bfa
leal 0x1(%rdx), %ecx
addl $0x2, %edx
cmpb $0x0, (%rcx,%rbx)
movl %edx, %ecx
je 0x4bfa
orl $0x1, %r10d
movl %edx, %ecx
testl %esi, %esi
je 0x49a0
jmp 0x4b40
movl %ecx, (%rsp)
leal 0x2(%r12), %ecx
cmpb $0x27, (%rcx,%rbx)
jne 0x4bfd
leal 0x3(%r12), %ecx
movl %ecx, %edx
movzbl (%rdx,%rbx), %edx
testl %edx, %edx
je 0x4bfd
incl %ecx
cmpl $0x27, %edx
jne 0x4b13
movl %ecx, (%rsp)
orl $0x1, %r10d
jmp 0x4b43
testl %edx, %edx
je 0x4bf5
addl $0x3, %r12d
movl %r12d, %edx
movl %edx, (%rsp)
movq %r14, %r15
movl (%rsp), %edx
cmpq %rdx, %r15
jae 0x4b58
movb $-0x7f, (%r15,%rbx)
incq %r15
jmp 0x4b49
orl $0x8, %r10d
jmp 0x499d
movl %r10d, 0x10(%rsp)
leal 0x3(%r12), %eax
movl %eax, (%rsp)
leal 0x2(%r12), %ecx
movb (%rcx,%rbx), %cl
cmpb $0x43, %cl
jne 0x4b88
leal 0x4(%r12), %ecx
movl %ecx, (%rsp)
movl %eax, %eax
movb (%rax,%rbx), %cl
addq %rbx, %r14
movzbl %cl, %esi
movq %rsp, %rdi
callq 0x4508
testl %eax, %eax
js 0x4c8d
movb 0x979a(%rip), %al       # 0xe33e
movzbl 0xa7f5(%rip), %ecx      # 0xf3a0
cmpl $0x32, %ecx
movl 0x10(%rsp), %r10d
je 0x4bdb
cmpl $0x33, %ecx
je 0x4bd2
cmpl $0x42, %ecx
je 0x4bd2
cmpl $0x49, %ecx
je 0x4bdb
cmpl $0x50, %ecx
jne 0x4be4
movb $-0x7a, (%r14)
jmp 0x4b46
movb $-0x7c, (%r14)
jmp 0x4b46
movb $-0x7b, (%r14)
jmp 0x4b46
movb $-0x7d, (%r14)
jmp 0x4b46
movl %ecx, (%rsp)
movl %r13d, %r12d
jmp 0x4c31
leal 0x3(%r12), %ecx
movl %ecx, (%rsp)
addq %rbx, %r14
movb $0x0, (%r14)
testb $0x8, %r10b
je 0x4c31
movl %r13d, %r12d
movl %r13d, %eax
movzbl (%rax,%rbx), %eax
cmpl $0x81, %eax
je 0x4c28
movl %r12d, %ecx
testl %eax, %eax
je 0x4c2d
incl %r12d
movb %al, (%rcx,%rbx)
incl %r13d
jmp 0x4c0d
movb $0x0, (%rcx,%rbx)
cmpl $0x801, %r12d           # imm = 0x801
jae 0x5a28
testb $0x1, %r10b
pushq $0x1
popq %rax
movl 0xc(%rsp), %ecx
cmovnel %eax, %ecx
movl %ecx, 0xc(%rsp)
testb $0x2, %r10b
jne 0x48b5
jmp 0x4c9a
movl %ecx, (%rsp)
jmp 0x4c81
movl %ecx, (%rsp)
cmpl $0x3, 0x970d(%rip)      # 0xe378
jb 0x4c81
xorl %edi, %edi
leaq 0x4a58(%rip), %rsi      # 0x96ce
movl %r10d, %r15d
callq 0x4726
movl %r15d, %r10d
addq %rbx, %r14
orl $0x2, %r10d
jmp 0x4c00
movl 0x10(%rsp), %r10d
jmp 0x4c00
movl %r13d, %r12d
movb 0x9700(%rip), %al       # 0xe3a0
cmpb 0x9696(%rip), %al       # 0xe33c
je 0x4cb4
cmpb 0x968f(%rip), %al       # 0xe33d
jne 0x5581
pushq $0x28
popq %r14
callq 0x41c0
movq (%rax), %r9
pushq $0x2
popq %rcx
movl %ecx, %r13d
leal -0x1(%r13), %ecx
movzbl (%rcx,%rbx), %ecx
incl %r13d
testb $0x20, 0x1(%r9,%rcx,2)
jne 0x4cc6
leal -0x1(%r13), %edx
leal -0x41(%rcx), %esi
cmpl $0x33, %esi
leaq 0x9416(%rip), %r8       # 0xe100
ja 0x4d19
leaq 0x4535(%rip), %rcx      # 0x9228
movslq (%rcx,%rsi,4), %rdi
addq %rcx, %rdi
movl %edx, %esi
pushq $0x41
popq %rcx
jmpq *%rdi
leaq 0x9698(%rip), %rcx      # 0xe3a0
cmpb $0x54, (%rsi,%rcx)
jne 0x5122
pushq $0x2
jmp 0x519c
testl %ecx, %ecx
je 0x4891
jmp 0x5125
leaq 0x9673(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x69, %ecx
je 0x50d2
cmpl $0x6d, %ecx
jne 0x5122
pushq $0x3e
jmp 0x519c
leaq 0x964f(%rip), %rdx      # 0xe3a0
movzbl (%rsi,%rdx), %edx
cmpl $0x66, %edx
je 0x519d
cmpl $0x67, %edx
je 0x513c
cmpl $0x6e, %edx
jne 0x5122
pushq $0x34
jmp 0x519c
leaq 0x9622(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x58, %ecx
je 0x5158
cmpl $0x50, %ecx
je 0x5150
cmpl $0x52, %ecx
je 0x5154
cmpl $0x42, %ecx
jne 0x5168
pushq $0xb
jmp 0x519c
leaq 0x95ec(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x69, %ecx
je 0x50d9
cmpl $0x74, %ecx
jne 0x5122
pushq $0x32
jmp 0x519c
leaq 0x95c8(%rip), %rcx      # 0xe3a0
cmpb $0x50, (%rsi,%rcx)
jne 0x5122
pushq $0x9
jmp 0x519c
leaq 0x95b0(%rip), %rdx      # 0xe3a0
movzbl (%rsi,%rdx), %esi
leal -0x61(%rsi), %edx
cmpl $0x7, %edx
ja 0x5119
leaq 0x44f1(%rip), %rsi      # 0x92f8
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
pushq $0x36
jmp 0x519c
leaq 0x9582(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x45, %ecx
je 0x5196
cmpl $0x48, %ecx
je 0x517d
cmpl $0x50, %ecx
je 0x518a
cmpl $0x51, %ecx
je 0x5185
cmpl $0x53, %ecx
jne 0x5122
movl %r14d, %ecx
jmp 0x519d
leaq 0x9542(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x62, %ecx
je 0x50e0
cmpl $0x64, %ecx
jne 0x5122
pushq $0x2b
jmp 0x519c
leaq 0x951e(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x43, %ecx
je 0x5144
cmpl $0x45, %ecx
je 0x5140
cmpl $0x52, %ecx
jne 0x5122
pushq $0x24
jmp 0x519c
leaq 0x94f1(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x45, %ecx
je 0x50e7
cmpl $0x58, %ecx
jne 0x5122
pushq $0x8
jmp 0x519c
leaq 0x94cd(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x42, %ecx
je 0x519a
cmpl $0x48, %ecx
je 0x5181
cmpl $0x4d, %ecx
je 0x5192
cmpl $0x53, %ecx
je 0x518e
cmpl $0x59, %ecx
jne 0x5122
pushq $0x25
jmp 0x519c
leaq 0x948e(%rip), %rcx      # 0xe3a0
cmpb $0x50, (%rsi,%rcx)
jne 0x5122
pushq $0x13
jmp 0x519c
leaq 0x9476(%rip), %rcx      # 0xe3a0
cmpb $0x54, (%rsi,%rcx)
jne 0x5122
pushq $0x6
jmp 0x519c
leaq 0x945e(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x52, %ecx
je 0x50ee
cmpl $0x49, %ecx
jne 0x50fc
pushq $0x4
jmp 0x519c
leaq 0x943a(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x32, %ecx
je 0x50f5
cmpl $0x63, %ecx
jne 0x5122
pushq $0x2d
jmp 0x519c
leaq 0x9416(%rip), %rcx      # 0xe3a0
cmpb $0x50, (%rsi,%rcx)
jne 0x5122
pushq $0xf
jmp 0x519c
leaq 0x93fe(%rip), %rcx      # 0xe3a0
cmpb $0x73, (%rsi,%rcx)
jne 0x5122
pushq $0x3a
jmp 0x519c
leaq 0x93e6(%rip), %rcx      # 0xe3a0
cmpb $0x6c, (%rsi,%rcx)
jne 0x5122
pushq $0x35
jmp 0x519c
leaq 0x93ce(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x45, %ecx
je 0x514c
cmpl $0x52, %ecx
je 0x5148
cmpl $0x54, %ecx
jne 0x5122
pushq $0x12
jmp 0x519c
leaq 0x93a1(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x50, %ecx
je 0x5100
cmpl $0x44, %ecx
jne 0x5107
pushq $0x15
jmp 0x519c
leaq 0x937d(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x53, %ecx
je 0x5164
cmpl $0x45, %ecx
je 0x515c
cmpl $0x49, %ecx
je 0x5160
cmpl $0x42, %ecx
jne 0x516d
pushq $0x18
jmp 0x519c
leaq 0x9347(%rip), %rcx      # 0xe3a0
cmpb $0x79, (%rsi,%rcx)
jne 0x5122
pushq $0x33
jmp 0x519c
leaq 0x932f(%rip), %rcx      # 0xe3a0
cmpb $0x53, (%rsi,%rcx)
jne 0x5122
pushq $0x26
jmp 0x519c
leaq 0x9317(%rip), %rcx      # 0xe3a0
cmpb $0x72, (%rsi,%rcx)
jne 0x5122
pushq $0x2c
jmp 0x519c
leaq 0x92ff(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x63, %ecx
je 0x510b
cmpl $0x6f, %ecx
jne 0x5122
pushq $0x30
jmp 0x519c
leaq 0x92e3(%rip), %rcx      # 0xe3a0
movzbl (%rsi,%rcx), %ecx
cmpl $0x6f, %ecx
je 0x5112
cmpl $0x70, %ecx
jne 0x5122
pushq $0x3c
jmp 0x519c
pushq $0x3d
jmp 0x519c
pushq $0x31
jmp 0x519c
pushq $0x2a
jmp 0x519c
pushq $0x7
jmp 0x519c
pushq $0x5
jmp 0x519c
pushq $0x2e
jmp 0x5187
pushq $0x3
jmp 0x516f
pushq $0x16
jmp 0x519c
pushq $0x14
jmp 0x516f
pushq $0x2f
jmp 0x519c
pushq $0x3b
jmp 0x519c
cmpl $0x73, %esi
jne 0x5122
pushq $0x39
jmp 0x519c
movl %r13d, %edx
movl 0x91e5(%rip), %ecx      # 0xe310
movl %edx, %r13d
cmpl $0x1, %ecx
leaq 0x8fc8(%rip), %r8       # 0xe100
jne 0x51a3
jmp 0x51b7
pushq $0x3f
jmp 0x519c
pushq $0x23
jmp 0x519c
pushq $0x22
jmp 0x519c
pushq $0x11
jmp 0x519c
pushq $0x10
jmp 0x519c
pushq $0xc
jmp 0x519c
pushq $0xd
jmp 0x519c
pushq $0xe
jmp 0x519c
pushq $0x19
jmp 0x519c
pushq $0x1a
jmp 0x519c
pushq $0x1b
jmp 0x519c
pushq $0xa
popq %rcx
jmp 0x5170
pushq $0x17
popq %rcx
movl %edx, %r13d
jmp 0x519d
pushq $0x37
jmp 0x519c
pushq $0x38
jmp 0x519c
pushq $0x20
jmp 0x519c
pushq $0x1d
jmp 0x519c
pushq $0x27
popq %rcx
jmp 0x519d
pushq $0x21
jmp 0x519c
pushq $0x1f
jmp 0x519c
pushq $0x1e
jmp 0x519c
pushq $0x29
jmp 0x519c
pushq $0x1c
popq %rcx
movl %ecx, 0x916d(%rip)      # 0xe310
movl %r13d, %edx
movzbl (%rdx,%rbx), %edx
testq %rdx, %rdx
je 0x51da
testb $0x20, 0x1(%r9,%rdx,2)
jne 0x51da
cmpl $0x0, 0x91ba(%rip)      # 0xe378
je 0x4891
xorl %edi, %edi
leaq 0x446d(%rip), %rsi      # 0x963a
movq %rbx, %rdx
callq 0x47c8
jmp 0x4891
movl %r13d, %r15d
movzbl (%r15,%rbx), %r14d
incl %r13d
testb $0x20, 0x1(%r9,%r14,2)
jne 0x51da
cmpl $0x3, 0x9184(%rip)      # 0xe378
jb 0x5267
movl %ecx, %edi
leal -0xe(%rcx), %edx
cmpl $0x5, %edx
movq %rax, 0x10(%rsp)
jbe 0x520f
addl $-0x23, %ecx
cmpl $0x5, %ecx
jb 0x522d
jmp 0x5267
leaq 0x4102(%rip), %rcx      # 0x9318
movslq (%rcx,%rdx,4), %rdx
addq %rcx, %rdx
leaq 0x8f4c(%rip), %rcx      # 0xe170
leaq 0x4423(%rip), %rsi      # 0x964e
jmpq *%rdx
movq (%r8,%rdi,8), %rdx
xorl %edi, %edi
leaq 0x442b(%rip), %rsi      # 0x9665
callq 0x47c8
leaq 0x8eba(%rip), %r8       # 0xe100
movslq 0x90c3(%rip), %rdi      # 0xe310
leaq (%r8,%rdi,8), %rcx
leaq 0x4429(%rip), %rsi      # 0x9681
movq (%rcx), %rdx
xorl %edi, %edi
callq 0x47c8
movq 0x10(%rsp), %rax
movl 0x90a3(%rip), %edx      # 0xe310
addl $-0xe, %edx
cmpl $0x33, %edx
ja 0x5772
addq %rbx, %r15
leaq 0x40ad(%rip), %rcx      # 0x9330
movslq (%rcx,%rdx,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
andl $0x0, 0x90d1(%rip)      # 0xe364
leal -0x62(%r14), %eax
cmpl $0x10, %eax
ja 0x4891
movl $0x10403, %ecx          # imm = 0x10403
btl %eax, %ecx
jae 0x4891
movl %r14d, 0x905f(%rip)     # 0xe314
jmp 0x4891
xorl %edi, %edi
callq 0x7692
movl 0x9069(%rip), %esi      # 0xe330
movl 0x905f(%rip), %edx      # 0xe32c
movq %r15, %rdi
callq 0x61c3
movl %eax, %edi
callq 0x70e6
jmp 0x4891
xorl %edi, %edi
callq 0x7692
cmpl $0x0, 0x9079(%rip)      # 0xe368
jne 0x5581
movq %r15, %rdi
pushq $0x1
popq %rsi
pushq $-0x1
popq %rdx
callq 0x61c3
movl %eax, %r15d
testl %r15d, %r15d
jle 0x4891
decl %r15d
movq 0x8ca7(%rip), %rax      # 0xdfc0
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x40d0
incl 0x900e(%rip)            # 0xe338
jmp 0x5306
movl $0x1, 0x902e(%rip)      # 0xe364
jmp 0x4891
xorl %eax, %eax
cmpl $0x30, %r14d
setne %al
movl %eax, 0x8fd2(%rip)      # 0xe31c
jmp 0x4891
xorl %edi, %edi
callq 0x7692
movl 0x9014(%rip), %esi      # 0xe370
movl 0x900a(%rip), %edx      # 0xe36c
movq %r15, %rdi
callq 0x61c3
movl %eax, %edi
callq 0x7079
jmp 0x4891
movb $0x0, 0x8fc1(%rip)      # 0xe33e
jmp 0x4891
testl %r14d, %r14d
pushq $0x2e
popq %rax
cmovel %eax, %r14d
movb %r14b, 0x8fa9(%rip)     # 0xe33c
jmp 0x4891
xorl %edi, %edi
callq 0x7692
movl 0x8fc7(%rip), %edx      # 0xe36c
movq %r15, %rdi
pushq $-0x1
popq %rsi
callq 0x61c3
movl %eax, %edi
callq 0x704e
jmp 0x4891
xorl %edi, %edi
callq 0x7692
andl $0x0, 0x8f4e(%rip)      # 0xe318
jmp 0x4891
testl %r14d, %r14d
je 0x4891
movq 0x8c19(%rip), %rax      # 0xdff8
movq (%rax), %rdi
leaq 0x42c3(%rip), %rsi      # 0x96ac
movq %r15, %rdx
xorl %eax, %eax
callq 0x4100
jmp 0x4891
xorl %edi, %edi
callq 0x7692
jmp 0x4891
testl %r14d, %r14d
pushq $0x27
popq %rax
cmovel %eax, %r14d
movb %r14b, 0x8f28(%rip)     # 0xe33d
jmp 0x4891
andl $0x0, 0x8f47(%rip)      # 0xe368
jmp 0x4891
testl %r14d, %r14d
pushq $0x5c
popq %rax
cmovel %eax, %r14d
movb %r14b, 0x8f07(%rip)     # 0xe33e
jmp 0x4891
xorl %edi, %edi
callq 0x7692
movl $0x1, 0x8ecb(%rip)      # 0xe318
jmp 0x4891
movl $0x1, 0x8f18(%rip)      # 0xe374
jmp 0x4891
movl $0x86, %edi
addl $-0x31, %r14d
cmpl $0x21, %r14d
ja 0x553a
movl $0x20004, %eax          # imm = 0x20004
btq %r14, %rax
jb 0x5535
movl $0x1000002, %eax        # imm = 0x1000002
btq %r14, %rax
jb 0x552e
movabsq $0x200000001, %rax      # imm = 0x200000001
btq %r14, %rax
jae 0x553a
movl $0x83, %edi
jmp 0x553a
movl $0x1, 0x8eae(%rip)      # 0xe368
jmp 0x4891
andl $0x0, 0x8e56(%rip)      # 0xe31c
jmp 0x4891
testl %r14d, %r14d
je 0x4891
cmpl $0x3, 0x8e65(%rip)      # 0xe340
jne 0x54f0
xorl %edi, %edi
leaq 0x41ca(%rip), %rsi      # 0x96b0
callq 0x4726
jmp 0x4891
movq %r15, %rdi
leaq 0x40ce(%rip), %rsi      # 0x95c8
callq 0x4160
testq %rax, %rax
je 0x5544
movslq 0x8e35(%rip), %rcx      # 0xe340
incq %rcx
movl %ecx, 0x8e2c(%rip)      # 0xe340
imulq $0x18, %rcx, %r14
movq %rax, (%r14,%rbp)
movq %r15, %rdi
callq 0x4190
movq %rax, 0x8(%r14,%rbp)
jmp 0x4891
movl $0x85, %edi
jmp 0x553a
movl $0x84, %edi
callq 0x7385
jmp 0x4891
callq 0x4060
movl (%rax), %edi
leaq 0x4175(%rip), %rsi      # 0x96c7
movq %r15, %rdx
callq 0x47c8
jmp 0x4891
orl $-0x1, 0x8dda(%rip)     # 0xe340
andl $0x0, 0x8da3(%rip)      # 0xe310
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x1, 0x8d85(%rip)      # 0xe310
cmpl $0x0, 0xc(%rsp)
je 0x556f
movl $0x800, %ebx            # imm = 0x800
movl $0x800, %ebp            # imm = 0x800
subl %r12d, %ebp
xorl %edx, %edx
leaq 0x8df8(%rip), %r12      # 0xe3a0
leaq 0x3e51(%rip), %r15      # 0x9400
leaq 0x3eba(%rip), %r14      # 0x9470
leal 0x1(%rdx), %ecx
movl %ecx, 0x8(%rsp)
movl %edx, %eax
movb (%rax,%r12), %al
cmpb $-0x7f, %al
je 0x5753
movl %ebx, %r13d
cmpb 0x8d6a(%rip), %al       # 0xe33e
jne 0x560c
addl $0x2, %edx
movl %edx, 0x8(%rsp)
movl %ecx, %ecx
movb (%rcx,%r12), %cl
movzbl %cl, %edx
leal -0x70(%rdx), %esi
cmpl $0xe, %esi
jbe 0x5620
leal -0x20(%rdx), %esi
cmpl $0x10, %esi
ja 0x5636
movslq (%r15,%rsi,4), %rax
addq %r15, %rax
jmpq *%rax
incl %ebx
movb $-0x78, (%r13,%r12)
jmp 0x5753
movb %al, (%r13,%r12)
testb %al, %al
je 0x5766
incl %ebx
jmp 0x5753
movslq (%r14,%rsi,4), %rax
addq %r14, %rax
jmpq *%rax
incl %ebx
movb $0x9, (%r13,%r12)
jmp 0x5753
leal -0x5b(%rdx), %esi
cmpl $0xa, %esi
ja 0x5748
leaq 0x3dfb(%rip), %rdi      # 0x9444
movslq (%rdi,%rsi,4), %rdx
addq %rdi, %rdx
jmpq *%rdx
leaq 0x8(%rsp), %rdi
pushq $0x5b
popq %rsi
callq 0x4508
testl %eax, %eax
js 0x5760
cmpl $0x13, %ebp
jle 0x5a42
leaq 0x9d29(%rip), %rdi      # 0xf3a0
callq 0x6e2c
xorl %edx, %edx
leal (%rbx,%rdx), %ecx
movl %edx, %esi
movb (%rax,%rsi), %sil
testb %sil, %sil
je 0x5737
movl %ecx, %ecx
movb %sil, (%rcx,%r12)
incl %edx
jmp 0x567e
incl %ebx
movb $-0x80, (%r13,%r12)
jmp 0x5753
incl %ebx
movb $-0x7e, (%r13,%r12)
jmp 0x5753
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0x4508
testl %eax, %eax
js 0x5760
cmpl $0x13, %ebp
jle 0x5a42
leaq 0x9cc8(%rip), %rdi      # 0xf3a0
callq 0x6e80
xorl %edx, %edx
leal (%rbx,%rdx), %ecx
movl %edx, %esi
movb (%rax,%rsi), %sil
testb %sil, %sil
je 0x5737
movl %ecx, %ecx
movb %sil, (%rcx,%r12)
incl %edx
jmp 0x56df
leaq 0x8(%rsp), %rdi
pushq $0x28
popq %rsi
callq 0x4508
testl %eax, %eax
js 0x5760
cmpl $0x13, %ebp
jle 0x5a42
leaq 0x9c88(%rip), %rdi      # 0xf3a0
callq 0x6e2c
xorl %edx, %edx
leal (%rbx,%rdx), %ecx
movl %edx, %esi
movb (%rax,%rsi), %sil
testb %sil, %sil
je 0x5737
movl %ecx, %ecx
movb %sil, (%rcx,%r12)
incl %edx
jmp 0x571f
notl %edx
addl %ebp, %edx
movl %edx, %ebp
jmp 0x5755
incl %ebx
movb %al, (%r13,%r12)
jmp 0x5753
testl %edx, %edx
je 0x5760
incl %ebx
movb %cl, (%r13,%r12)
movl %ebx, %ecx
movl 0x8(%rsp), %edx
movl %ecx, %ebx
jmp 0x55b6
movb $0x0, (%r13,%r12)
leaq 0x9433(%rip), %rbx      # 0xeba0
jmp 0x556f
movl $0x1000, %r14d          # imm = 0x1000
subl %r12d, %r14d
andl $0x0, 0x8bde(%rip)      # 0xe360
decl %r13d
movl $0x800, %ecx            # imm = 0x800
leaq 0x8c0f(%rip), %r12      # 0xe3a0
leaq 0x9c70(%rip), %rbp      # 0xf408
leaq 0x9c21(%rip), %r9       # 0xf3c0
movq (%rax), %rsi
movl %r13d, %edx
movzbl (%rdx,%r12), %r15d
incl %r13d
testb $0x20, 0x1(%rsi,%r15,2)
jne 0x57a2
testb %r15b, %r15b
je 0x5a03
movslq 0x8b9b(%rip), %r8       # 0xe360
cmpq $0x9, %r8
je 0x5a17
leal -0x1(%r13), %edx
cmpb $0x22, %r15b
cmovel %r13d, %edx
movl %ecx, %esi
addq %r12, %rsi
leal 0x1(%r8), %edi
movl %edi, 0x8b76(%rip)      # 0xe360
movq %rsi, (%r9,%r8,8)
movl %edx, %r13d
movb 0x8b47(%rip), %dl       # 0xe33e
movl %ecx, %ebx
movl %r13d, %ecx
incl %r13d
movzbl (%rcx,%r12), %ecx
cmpl $0x81, %ecx
je 0x57f9
testl %ecx, %ecx
je 0x5a05
movl %ebx, %r8d
movl %r13d, %esi
cmpb $0x22, %r15b
jne 0x583a
cmpb $0x22, %cl
jne 0x583a
cmpb $0x22, (%rsi,%r12)
jne 0x59f0
movb $0x22, (%r8,%r12)
incl %r13d
jmp 0x5856
cmpb $0x22, %r15b
je 0x584e
movq (%rax), %rdi
testb $0x20, 0x1(%rdi,%rcx,2)
jne 0x59f0
cmpb %dl, %cl
je 0x585a
movb %cl, (%r8,%r12)
incl %ebx
jmp 0x57f9
movq %rax, 0x10(%rsp)
incl %r13d
movl %r13d, 0x4(%rsp)
movb (%rsi,%r12), %cl
movzbl %cl, %esi
leal -0x70(%rsi), %edi
cmpl $0xe, %edi
jbe 0x589a
leal -0x20(%rsi), %edi
cmpl $0x10, %edi
ja 0x58b6
leaq 0x3c27(%rip), %rax      # 0x94ac
movslq (%rax,%rdi,4), %rdx
addq %rax, %rdx
jmpq *%rdx
incl %ebx
movb $-0x78, (%r8,%r12)
jmp 0x59d8
leaq 0x3c7b(%rip), %rax      # 0x951c
movslq (%rax,%rdi,4), %rdx
addq %rax, %rdx
jmpq *%rdx
incl %ebx
movb $0x9, (%r8,%r12)
jmp 0x59d8
leal -0x5b(%rsi), %edi
cmpl $0xa, %edi
ja 0x59ce
leaq 0x3c27(%rip), %rax      # 0x94f0
movslq (%rax,%rdi,4), %rsi
addq %rax, %rsi
jmpq *%rsi
leaq 0x4(%rsp), %rdi
pushq $0x5b
popq %rsi
callq 0x4508
testl %eax, %eax
js 0x5a39
cmpl $0x13, %r14d
jle 0x5a42
leaq 0x9aa8(%rip), %rdi      # 0xf3a0
callq 0x6e2c
xorl %edx, %edx
leal (%rbx,%rdx), %ecx
movl %edx, %esi
movb (%rax,%rsi), %sil
testb %sil, %sil
je 0x59bc
movl %ecx, %ecx
movb %sil, (%rcx,%r12)
incl %edx
jmp 0x58ff
incl %ebx
movb $-0x80, (%r8,%r12)
jmp 0x59d8
incl %ebx
movb $-0x7e, (%r8,%r12)
jmp 0x59d8
leaq 0x4(%rsp), %rdi
pushq $0x28
popq %rsi
callq 0x4508
testl %eax, %eax
js 0x5a39
cmpl $0x13, %r14d
jle 0x5a42
leaq 0x9a47(%rip), %rdi      # 0xf3a0
callq 0x6e2c
xorl %edx, %edx
leal (%rbx,%rdx), %ecx
movl %edx, %esi
movb (%rax,%rsi), %sil
testb %sil, %sil
je 0x59bc
movl %ecx, %ecx
movb %sil, (%rcx,%r12)
incl %edx
jmp 0x5960
leaq 0x4(%rsp), %rdi
xorl %esi, %esi
callq 0x4508
testl %eax, %eax
js 0x5a39
cmpl $0x13, %r14d
jle 0x5a42
leaq 0x9a03(%rip), %rdi      # 0xf3a0
callq 0x6e80
xorl %edx, %edx
leal (%rbx,%rdx), %ecx
movl %edx, %esi
movb (%rax,%rsi), %sil
testb %sil, %sil
je 0x59bc
movl %ecx, %ecx
movb %sil, (%rcx,%r12)
incl %edx
jmp 0x59a4
notl %edx
addl %r14d, %edx
movl %edx, %r14d
jmp 0x59da
incl %ebx
movb %dl, (%r8,%r12)
jmp 0x59d8
testl %esi, %esi
je 0x5a39
incl %ebx
movb %cl, (%r8,%r12)
movl %ebx, %ecx
movl 0x4(%rsp), %r13d
movq 0x10(%rsp), %rax
leaq 0x99d5(%rip), %r9       # 0xf3c0
jmp 0x57f1
movl %r13d, 0x4(%rsp)
incl %ebx
movb $0x0, (%r8,%r12)
movl %ebx, %ecx
jmp 0x579f
movl %ecx, %ebx
movl %ebx, %eax
movb $0x0, (%rax,%r12)
movslq 0x894d(%rip), %rax      # 0xe360
leaq (%r9,%rax,8), %rbp
andq $0x0, (%rbp)
leaq 0x440f(%rip), %rbx      # 0x9e32
jmp 0x556f
leaq 0x3bfc(%rip), %rdx      # 0x962b
pushq $0x1
popq %rdi
xorl %esi, %esi
callq 0x4712
leaq 0x9980(%rip), %r9       # 0xf3c0
jmp 0x5a05
leaq 0x3ca0(%rip), %rdx      # 0x96e9
jmp 0x5a2f
testl %r14d, %r14d
leaq 0x3c4b(%rip), %rax      # 0x96a0
cmoveq %rax, %r15
movq 0x8598(%rip), %rbx      # 0xdff8
movq (%rbx), %rsi
movq %r15, %rdi
callq 0x40b0
movq (%rbx), %rsi
leaq 0x4029(%rip), %rdi      # 0x9a9e
callq 0x40b0
pushq $0x1
popq %rdi
callq 0x4180
nop