// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: regatom
static int regatom(regex_t *preg, int *flagp)
{
	int ret;
	int flags;
	int nocase = (preg->cflags & REG_ICASE);

	int ch;
	int n = reg_utf8_tounicode_case(preg->regparse, &ch, nocase);

	*flagp = WORST;

	preg->regparse += n;
	switch (ch) {

	case '^':
		ret = regnode(preg, BOL);
		break;
	case '$':
		ret = regnode(preg, EOL);
		break;
	case '.':
		ret = regnode(preg, ANY);
		*flagp |= HASWIDTH|SIMPLE;
		break;
	case '[': {
			const char *pattern = preg->regparse;

			if (*pattern == '^') {
				ret = regnode(preg, ANYBUT);
				pattern++;
			} else
				ret = regnode(preg, ANYOF);


			if (*pattern == ']' || *pattern == '-') {
				reg_addrange(preg, *pattern, *pattern);
				pattern++;
			}

			while (*pattern != ']') {

				int start;
				int end;

				enum {
					CC_ALPHA, CC_ALNUM, CC_SPACE, CC_BLANK, CC_UPPER, CC_LOWER,
					CC_DIGIT, CC_XDIGIT, CC_CNTRL, CC_GRAPH, CC_PRINT, CC_PUNCT,
					CC_NUM
				};
				int cc;

				if (!*pattern) {
					preg->err = REG_ERR_UNMATCHED_BRACKET;
					return 0;
				}

				pattern += reg_utf8_tounicode_case(pattern, &start, nocase);
				if (start == '\\') {

					switch (*pattern) {
						case 's':
							pattern++;
							cc = CC_SPACE;
							goto cc_switch;
						case 'd':
							pattern++;
							cc = CC_DIGIT;
							goto cc_switch;
						case 'w':
							pattern++;
							reg_addrange(preg, '_', '_');
							cc = CC_ALNUM;
							goto cc_switch;
					}
					pattern += reg_decode_escape(pattern, &start);
					if (start == 0) {
						preg->err = REG_ERR_NULL_CHAR;
						return 0;
					}
					if (start == '\\' && *pattern == 0) {
						preg->err = REG_ERR_INVALID_ESCAPE;
						return 0;
					}
				}
				if (pattern[0] == '-' && pattern[1] && pattern[1] != ']') {

					pattern += utf8_tounicode(pattern, &end);
					pattern += reg_utf8_tounicode_case(pattern, &end, nocase);
					if (end == '\\') {
						pattern += reg_decode_escape(pattern, &end);
						if (end == 0) {
							preg->err = REG_ERR_NULL_CHAR;
							return 0;
						}
						if (end == '\\' && *pattern == 0) {
							preg->err = REG_ERR_INVALID_ESCAPE;
							return 0;
						}
					}

					reg_addrange(preg, start, end);
					continue;
				}
				if (start == '[' && pattern[0] == ':') {
					static const char *character_class[] = {
						":alpha:", ":alnum:", ":space:", ":blank:", ":upper:", ":lower:",
						":digit:", ":xdigit:", ":cntrl:", ":graph:", ":print:", ":punct:",
					};

					for (cc = 0; cc < CC_NUM; cc++) {
						n = strlen(character_class[cc]);
						if (strncmp(pattern, character_class[cc], n) == 0) {
							if (pattern[n] != ']') {
								preg->err = REG_ERR_UNMATCHED_BRACKET;
								return 0;
							}

							pattern += n + 1;
							break;
						}
					}
					if (cc != CC_NUM) {
cc_switch:
						switch (cc) {
							case CC_ALNUM:
								reg_addrange(preg, '0', '9');

							case CC_ALPHA:
								if ((preg->cflags & REG_ICASE) == 0) {
									reg_addrange(preg, 'a', 'z');
								}
								reg_addrange(preg, 'A', 'Z');
								break;
							case CC_SPACE:
								reg_addrange_str(preg, " \t\r\n\f\v");
								break;
							case CC_BLANK:
								reg_addrange_str(preg, " \t");
								break;
							case CC_UPPER:
								reg_addrange(preg, 'A', 'Z');
								break;
							case CC_LOWER:
								reg_addrange(preg, 'a', 'z');
								break;
							case CC_XDIGIT:
								reg_addrange(preg, 'a', 'f');
								reg_addrange(preg, 'A', 'F');

							case CC_DIGIT:
								reg_addrange(preg, '0', '9');
								break;
							case CC_CNTRL:
								reg_addrange(preg, 0, 31);
								reg_addrange(preg, 127, 127);
								break;
							case CC_PRINT:
								reg_addrange(preg, ' ', '~');
								break;
							case CC_GRAPH:
								reg_addrange(preg, '!', '~');
								break;
							case CC_PUNCT:
								reg_addrange(preg, '!', '/');
								reg_addrange(preg, ':', '@');
								reg_addrange(preg, '[', '`');
								reg_addrange(preg, '{', '~');
								break;
						}
						continue;
					}
				}

				reg_addrange(preg, start, start);
			}
			regc(preg, '\0');

			if (*pattern) {
				pattern++;
			}
			preg->regparse = pattern;

			*flagp |= HASWIDTH|SIMPLE;
		}
		break;
	case '(':
		ret = reg(preg, 1, &flags);
		if (ret == 0)
			return 0;
		*flagp |= flags&(HASWIDTH|SPSTART);
		break;
	case '\0':
	case '|':
	case ')':
		preg->err = REG_ERR_INTERNAL;
		return 0;
	case '?':
	case '+':
	case '*':
	case '{':
		preg->err = REG_ERR_COUNT_FOLLOWS_NOTHING;
		return 0;
	case '\\':
		ch = *preg->regparse++;
		switch (ch) {
		case '\0':
			preg->err = REG_ERR_INVALID_ESCAPE;
			return 0;
		case 'A':
			ret = regnode(preg, BOLX);
			break;
		case 'Z':
			ret = regnode(preg, EOLX);
			break;
		case '<':
		case 'm':
			ret = regnode(preg, WORDA);
			break;
		case '>':
		case 'M':
			ret = regnode(preg, WORDZ);
			break;
		case 'd':
		case 'D':
			ret = regnode(preg, ch == 'd' ? ANYOF : ANYBUT);
			reg_addrange(preg, '0', '9');
			regc(preg, '\0');
			*flagp |= HASWIDTH|SIMPLE;
			break;
		case 'w':
		case 'W':
			ret = regnode(preg, ch == 'w' ? ANYOF : ANYBUT);
			if ((preg->cflags & REG_ICASE) == 0) {
				reg_addrange(preg, 'a', 'z');
			}
			reg_addrange(preg, 'A', 'Z');
			reg_addrange(preg, '0', '9');
			reg_addrange(preg, '_', '_');
			regc(preg, '\0');
			*flagp |= HASWIDTH|SIMPLE;
			break;
		case 's':
		case 'S':
			ret = regnode(preg, ch == 's' ? ANYOF : ANYBUT);
			reg_addrange_str(preg," \t\r\n\f\v");
			regc(preg, '\0');
			*flagp |= HASWIDTH|SIMPLE;
			break;

		default:


			preg->regparse--;
			goto de_fault;
		}
		break;
	de_fault:
	default: {
			int added = 0;


			preg->regparse -= n;

			ret = regnode(preg, EXACTLY);



			while (*preg->regparse && strchr(META, *preg->regparse) == NULL) {
				n = reg_utf8_tounicode_case(preg->regparse, &ch, (preg->cflags & REG_ICASE));
				if (ch == '\\' && preg->regparse[n]) {
					if (strchr("<>mMwWdDsSAZ", preg->regparse[n])) {

						break;
					}
					n += reg_decode_escape(preg->regparse + n, &ch);
					if (ch == 0) {
						preg->err = REG_ERR_NULL_CHAR;
						return 0;
					}
				}


				if (ISMULT(preg->regparse[n])) {

					if (added) {

						break;
					}

					regc(preg, ch);
					added++;
					preg->regparse += n;
					break;
				}


				regc(preg, ch);
				added++;
				preg->regparse += n;
			}
			regc(preg, '\0');

			*flagp |= HASWIDTH;
			if (added == 1)
				*flagp |= SIMPLE;
			break;
		}
		break;
	}

	return(ret);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x2, %eax
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
movl -0x24(%rbp), %edx
leaq -0x28(%rbp), %rsi
callq 0x344c0
movl %eax, -0x2c(%rbp)
movq -0x18(%rbp), %rax
movl $0x0, (%rax)
movslq -0x2c(%rbp), %rdx
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
addq %rdx, %rcx
movq %rcx, 0x28(%rax)
movl -0x28(%rbp), %eax
movq %rax, -0x50(%rbp)
subq $0x7c, %rax
ja 0x341f1
movq -0x50(%rbp), %rax
leaq 0x3a1b(%rip), %rcx      # 0x37408
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
jmp 0x343e2
movq -0x10(%rbp), %rdi
movl $0x2, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
jmp 0x343e2
movq -0x10(%rbp), %rdi
movl $0x3, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %ecx
orl $0x3, %ecx
movl %ecx, (%rax)
jmp 0x343e2
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5e, %eax
jne 0x33a7a
movq -0x10(%rbp), %rdi
movl $0x5, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x33a8b
movq -0x10(%rbp), %rdi
movl $0x4, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
je 0x33aa3
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x33ac6
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rax
movsbl (%rax), %esi
movq -0x38(%rbp), %rax
movsbl (%rax), %edx
callq 0x34510
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x33ac8
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
je 0x33f65
movq -0x38(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x33af8
movq -0x10(%rbp), %rax
movl $0x13, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x343e8
movq -0x38(%rbp), %rdi
movl -0x24(%rbp), %edx
leaq -0x3c(%rbp), %rsi
callq 0x344c0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
cmpl $0x5c, -0x3c(%rbp)
jne 0x33c04
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x54(%rbp)
subl $0x64, %eax
je 0x33b5f
jmp 0x33b33
movl -0x54(%rbp), %eax
subl $0x73, %eax
je 0x33b47
jmp 0x33b3d
movl -0x54(%rbp), %eax
subl $0x77, %eax
je 0x33b77
jmp 0x33b9f
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movl $0x2, -0x44(%rbp)
jmp 0x33da8
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movl $0x6, -0x44(%rbp)
jmp 0x33da8
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
movl $0x5f, %edx
movl %edx, %esi
callq 0x34510
movl $0x1, -0x44(%rbp)
jmp 0x33da8
movq -0x38(%rbp), %rdi
leaq -0x3c(%rbp), %rsi
callq 0x34560
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
cmpl $0x0, -0x3c(%rbp)
jne 0x33bd9
movq -0x10(%rbp), %rax
movl $0x12, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x343e8
cmpl $0x5c, -0x3c(%rbp)
jne 0x33c02
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x33c02
movq -0x10(%rbp), %rax
movl $0x10, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x343e8
jmp 0x33c04
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x33ceb
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
je 0x33ceb
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x5d, %eax
je 0x33ceb
movq -0x38(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x40(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movl -0x24(%rbp), %edx
leaq -0x40(%rbp), %rsi
callq 0x344c0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
cmpl $0x5c, -0x40(%rbp)
jne 0x33cd7
movq -0x38(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x34560
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
cmpl $0x0, -0x40(%rbp)
jne 0x33cac
movq -0x10(%rbp), %rax
movl $0x12, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x343e8
cmpl $0x5c, -0x40(%rbp)
jne 0x33cd5
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x33cd5
movq -0x10(%rbp), %rax
movl $0x10, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x343e8
jmp 0x33cd7
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movl -0x40(%rbp), %edx
callq 0x34510
jmp 0x33ac8
cmpl $0x5b, -0x3c(%rbp)
jne 0x33f51
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3a, %eax
jne 0x33f51
movl $0x0, -0x44(%rbp)
cmpl $0xc, -0x44(%rbp)
jge 0x33d9c
movslq -0x44(%rbp), %rcx
leaq 0x1462f(%rip), %rax     # 0x48350
movq (%rax,%rcx,8), %rdi
callq 0x6190
movl %eax, -0x2c(%rbp)
movq -0x38(%rbp), %rdi
movslq -0x44(%rbp), %rcx
leaq 0x14614(%rip), %rax     # 0x48350
movq (%rax,%rcx,8), %rsi
movslq -0x2c(%rbp), %rdx
callq 0x60b0
cmpl $0x0, %eax
jne 0x33d8c
movq -0x38(%rbp), %rax
movslq -0x2c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x5d, %eax
je 0x33d76
movq -0x10(%rbp), %rax
movl $0x13, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x343e8
movl -0x2c(%rbp), %ecx
addl $0x1, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
jmp 0x33d9c
jmp 0x33d8e
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0x33d0c
cmpl $0xc, -0x44(%rbp)
je 0x33f4f
jmp 0x33da8
movl -0x44(%rbp), %eax
movq %rax, -0x60(%rbp)
subq $0xb, %rax
ja 0x33f4a
movq -0x60(%rbp), %rax
leaq 0x3a18(%rip), %rcx      # 0x377dc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
movl $0x30, %esi
movl $0x39, %edx
callq 0x34510
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
jne 0x33e02
movq -0x10(%rbp), %rdi
movl $0x61, %esi
movl $0x7a, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
movl $0x41, %esi
movl $0x5a, %edx
callq 0x34510
jmp 0x33f4a
movq -0x10(%rbp), %rdi
leaq 0x9b84(%rip), %rsi      # 0x3d9a9
callq 0x347b0
jmp 0x33f4a
movq -0x10(%rbp), %rdi
leaq 0x9b76(%rip), %rsi      # 0x3d9b0
callq 0x347b0
jmp 0x33f4a
movq -0x10(%rbp), %rdi
movl $0x41, %esi
movl $0x5a, %edx
callq 0x34510
jmp 0x33f4a
movq -0x10(%rbp), %rdi
movl $0x61, %esi
movl $0x7a, %edx
callq 0x34510
jmp 0x33f4a
movq -0x10(%rbp), %rdi
movl $0x61, %esi
movl $0x66, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
movl $0x41, %esi
movl $0x46, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
movl $0x30, %esi
movl $0x39, %edx
callq 0x34510
jmp 0x33f4a
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x1f, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
movl $0x7f, %edx
movl %edx, %esi
callq 0x34510
jmp 0x33f4a
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x7e, %edx
callq 0x34510
jmp 0x33f4a
movq -0x10(%rbp), %rdi
movl $0x21, %esi
movl $0x7e, %edx
callq 0x34510
jmp 0x33f4a
movq -0x10(%rbp), %rdi
movl $0x21, %esi
movl $0x2f, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
movl $0x3a, %esi
movl $0x40, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
movl $0x5b, %esi
movl $0x60, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
movl $0x7b, %esi
movl $0x7e, %edx
callq 0x34510
jmp 0x33ac8
jmp 0x33f51
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movl -0x3c(%rbp), %edx
callq 0x34510
jmp 0x33ac8
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x16000
movq -0x38(%rbp), %rax
cmpb $0x0, (%rax)
je 0x33f85
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x18(%rbp), %rax
movl (%rax), %ecx
orl $0x3, %ecx
movl %ecx, (%rax)
jmp 0x343e2
movq -0x10(%rbp), %rdi
movl $0x1, %esi
leaq -0x20(%rbp), %rdx
callq 0x16050
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jne 0x33fc8
movl $0x0, -0x4(%rbp)
jmp 0x343e8
movl -0x20(%rbp), %ecx
andl $0x5, %ecx
movq -0x18(%rbp), %rax
orl (%rax), %ecx
movl %ecx, (%rax)
jmp 0x343e2
movq -0x10(%rbp), %rax
movl $0xe, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x343e8
movq -0x10(%rbp), %rax
movl $0xf, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x343e8
movq -0x10(%rbp), %rcx
movq 0x28(%rcx), %rax
movq %rax, %rdx
incq %rdx
movq %rdx, 0x28(%rcx)
movsbl (%rax), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
movq %rax, -0x68(%rbp)
subq $0x77, %rax
ja 0x341d8
movq -0x68(%rbp), %rax
leaq 0x35bf(%rip), %rcx      # 0x375fc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movl $0x10, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x343e8
movq -0x10(%rbp), %rdi
movl $0xe, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
jmp 0x341ea
movq -0x10(%rbp), %rdi
movl $0xf, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
jmp 0x341ea
movq -0x10(%rbp), %rdi
movl $0x10, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
jmp 0x341ea
movq -0x10(%rbp), %rdi
movl $0x11, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
jmp 0x341ea
movq -0x10(%rbp), %rdi
movl -0x28(%rbp), %ecx
movl $0x5, %esi
movl $0x4, %eax
cmpl $0x64, %ecx
cmovel %eax, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
movl $0x30, %esi
movl $0x39, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x16000
movq -0x18(%rbp), %rax
movl (%rax), %ecx
orl $0x3, %ecx
movl %ecx, (%rax)
jmp 0x341ea
movq -0x10(%rbp), %rdi
movl -0x28(%rbp), %ecx
movl $0x5, %esi
movl $0x4, %eax
cmpl $0x77, %ecx
cmovel %eax, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
jne 0x34143
movq -0x10(%rbp), %rdi
movl $0x61, %esi
movl $0x7a, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
movl $0x41, %esi
movl $0x5a, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
movl $0x30, %esi
movl $0x39, %edx
callq 0x34510
movq -0x10(%rbp), %rdi
movl $0x5f, %edx
movl %edx, %esi
callq 0x34510
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x16000
movq -0x18(%rbp), %rax
movl (%rax), %ecx
orl $0x3, %ecx
movl %ecx, (%rax)
jmp 0x341ea
movq -0x10(%rbp), %rdi
movl -0x28(%rbp), %ecx
movl $0x5, %esi
movl $0x4, %eax
cmpl $0x73, %ecx
cmovel %eax, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x97ee(%rip), %rsi      # 0x3d9a9
callq 0x347b0
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x16000
movq -0x18(%rbp), %rax
movl (%rax), %ecx
orl $0x3, %ecx
movl %ecx, (%rax)
jmp 0x341ea
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x28(%rax)
jmp 0x341ef
jmp 0x343e2
jmp 0x341f1
movl $0x0, -0x48(%rbp)
movl -0x2c(%rbp), %edx
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movslq %edx, %rsi
xorl %edx, %edx
subq %rsi, %rdx
addq %rdx, %rcx
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rdi
movl $0x8, %esi
callq 0x33330
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x69(%rbp)
je 0x34259
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movsbl (%rax), %esi
leaq 0x9769(%rip), %rdi      # 0x3d9b3
callq 0x61d0
cmpq $0x0, %rax
sete %al
movb %al, -0x69(%rbp)
movb -0x69(%rbp), %al
testb $0x1, %al
jne 0x34265
jmp 0x343b9
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x4(%rax), %edx
andl $0x2, %edx
leaq -0x28(%rbp), %rsi
callq 0x344c0
movl %eax, -0x2c(%rbp)
cmpl $0x5c, -0x28(%rbp)
jne 0x34302
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x2c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x34302
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x2c(%rbp), %rcx
movsbl (%rax,%rcx), %esi
leaq 0x970a(%rip), %rdi      # 0x3d9bf
callq 0x61d0
cmpq $0x0, %rax
je 0x342c5
jmp 0x343b9
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
movslq -0x2c(%rbp), %rax
addq %rax, %rdi
leaq -0x28(%rbp), %rsi
callq 0x34560
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x28(%rbp)
jne 0x34300
movq -0x10(%rbp), %rax
movl $0x12, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x343e8
jmp 0x34302
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x2c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2a, %eax
je 0x34356
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x2c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2b, %eax
je 0x34356
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x2c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x3f, %eax
je 0x34356
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x2c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x7b, %eax
jne 0x3438a
cmpl $0x0, -0x48(%rbp)
je 0x3435e
jmp 0x343b9
movq -0x10(%rbp), %rdi
movl -0x28(%rbp), %esi
callq 0x16000
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
movl -0x2c(%rbp), %edx
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x28(%rax)
jmp 0x343b9
movq -0x10(%rbp), %rdi
movl -0x28(%rbp), %esi
callq 0x16000
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
movl -0x2c(%rbp), %edx
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x28(%rax)
jmp 0x34223
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x16000
movq -0x18(%rbp), %rax
movl (%rax), %ecx
orl $0x1, %ecx
movl %ecx, (%rax)
cmpl $0x1, -0x48(%rbp)
jne 0x343e0
movq -0x18(%rbp), %rax
movl (%rax), %ecx
orl $0x2, %ecx
movl %ecx, (%rax)
jmp 0x343e2
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)