// File: /workspace/github_c_makefile_star2_O3/goodpaul6[P]generic/script.c
// Function: get_token
static int get_token(char reset)
{
	static int last = ' ';
	
	if(reset)
	{
		last = ' ';
		return 0;
	}
	
	while(isspace(last))
	{
		if(last == '\n') ++g_line;
		last = get_char();
	}
	
	// TODO: check for buffer overflow	
	if(isalpha(last) || last == '_' || last == '#')
	{
		int i = 0;
		while(isalnum(last) || last == '_' || last == '#')
		{
			g_lexeme[i++] = last;
			last = get_char();
		}
		g_lexeme[i] = '\0';
		
		if(g_lexeme[0] == '#') return TOK_DIRECTIVE;
		
		if (strcmp(g_lexeme, "atomic") == 0) return TOK_ATOMIC;
		if(strcmp(g_lexeme, "using") == 0) return TOK_USING;
		if(strcmp(g_lexeme, "static") == 0) return TOK_STATIC;
		if(strcmp(g_lexeme, "null") == 0) return TOK_NULL;
		if(strcmp(g_lexeme, "new") == 0) return TOK_NEW;
		if(strcmp(g_lexeme, "union") == 0) return TOK_UNION;
		if(strcmp(g_lexeme, "struct") == 0) return TOK_STRUCT;
		if(strcmp(g_lexeme, "extern") == 0) return TOK_EXTERN;
		if(strcmp(g_lexeme, "true") == 0) return TOK_TRUE;
		if(strcmp(g_lexeme, "false") == 0) return TOK_FALSE;
		if(strcmp(g_lexeme, "while") == 0) return TOK_WHILE;
		if (strcmp(g_lexeme, "for") == 0) return TOK_FOR;
		if(strcmp(g_lexeme, "else") == 0) return TOK_ELSE;
		if(strcmp(g_lexeme, "if") == 0) return TOK_IF;
		if(strcmp(g_lexeme, "return") == 0) return TOK_RETURN;
		if(strcmp(g_lexeme, "func") == 0) return TOK_FUNC;
		if(strcmp(g_lexeme, "var") == 0) return TOK_VAR;
		if(strcmp(g_lexeme, "read") == 0) return TOK_READ;
		if(strcmp(g_lexeme, "write") == 0) return TOK_WRITE;
		if(strcmp(g_lexeme, "len") == 0) return TOK_LEN;
		
		return TOK_IDENT;
	}
	
	if(isdigit(last))
	{
		int i = 0;
		while(isdigit(last) || last == '-' || last == '.')
		{
			g_lexeme[i++] = last;
			last = get_char();
		}
		g_lexeme[i] = '\0';
		
		return TOK_NUMBER;
	}
	
	if(last == '"')
	{
		last = get_char();
		
		int i = 0;
		while(last != '"')
		{
			if (last == '\\')
			{
				last = get_char();
				switch (last)
				{
					case 'n': last = '\n'; break;
					case 't': last = '\t'; break;
					case '0': last = '\0'; break;
					case 'b': last = '\b'; break;
					case 'r': last = '\r'; break;
					case '\'': last = '\''; break;
					case '"': last = '"'; break;
					case '\\': last = '\\'; break;
					case '\n':
					case '\r':
					{
						while (isspace(last)) 
						{
							if (last == '\n') 
								++g_line;

							last = get_char();
						}
					} break;
					default:
						error_exit("invalid escape sequence char %c\n", last);
						break;
				}
			}

			g_lexeme[i++] = last;
			last = get_char();
		}
		last = get_char();
		
		g_lexeme[i] = '\0';
		
		return TOK_STRING;
	}
	
	if(last == '\'')
	{
		last = get_char();
		if (last == '\\')
		{
			last = get_char();
			switch (last)
			{
				case 'n': last = '\n'; break;
				case 't': last = '\t'; break;
				case '0': last = '\0'; break;
				case 'b': last = '\b'; break;
				case 'r': last = '\r'; break;
				case '\'': last = '\''; break;
				case '"': last = '"'; break;
				case '\\': last = '\\'; break;
				case '\n':
				case '\r':
				{
					while (isspace(last))
					{
						if (last == '\n')
							++g_line;

						last = get_char();
					}
				} break;
			}
		}
		g_lexeme[0] = last;
		g_lexeme[1] = '\0';
		last = get_char();
		if(last != '\'') error_exit_p("Expected ' after %c\n", g_lexeme[0]);
		last = get_char();
		
		return TOK_CHAR; 
	}
	
	if(last == EOF)
		return TOK_EOF;
	
	int last_char = last;
	last = get_char();
	
	if(last_char == '!')
	{
		if(last == '=')
		{
			last = get_char();
			return TOK_NOTEQUAL;
		}
		
		return TOK_NOT;
	}
	
	if(last_char == '&' && last == '&')
	{
		last = get_char();
		return TOK_LAND;
	}
	
	if(last_char == '|' && last == '|')
	{
		last = get_char();
		return TOK_LOR;
	}
	
	if(last_char == '/' && last == '/')
	{
		last = get_char();
		while(last != '\n' || last == EOF) last = get_char();
		return get_token(0);
	}
	
	if(last_char == '.') return TOK_DOT;
	
	if(last_char == ';') return TOK_SEMICOLON;
	
	if(last_char == '[') return TOK_OPENSQUARE;
	if(last_char == ']') return TOK_CLOSESQUARE;
	
	if(last_char == '(') return TOK_OPENPAREN;
	if(last_char == ')') return TOK_CLOSEPAREN;
	
	if(last_char == '{') return TOK_OPENCURLY;
	if(last_char == '}') return TOK_CLOSECURLY;
	
	if(last_char == ':') return TOK_COLON;
	
	if(last_char == ',') return TOK_COMMA;
	
	if(last_char == '+') return TOK_PLUS;
	if(last_char == '-') return TOK_MINUS;
	if(last_char == '*') return TOK_MUL;
	if(last_char == '/') return TOK_DIV;
	if (last_char == '%') return TOK_MOD;
	
	// NOTE: order of checking these is important
	if(last_char == '=' && last == '=')
	{
		last = get_char();
		return TOK_EQUALS;
	}
	
	if(last_char == '<' && last == '=')
	{
		last = get_char();
		return TOK_LTE;
	}
	if(last_char == '>' && last == '=')
	{
		last = get_char();
		return TOK_GTE;
	}
	
	if(last_char == '=') return TOK_ASSIGN;
	if(last_char == '<') return TOK_LT;
	if(last_char == '>') return TOK_GT;
	
	error_exit_p("Unexpected character '%c'\n", last_char);
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
testb %dil, %dil
je 0x9ed7
movl $0x20, 0xc296(%rip)     # 0x16160
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq 0xc362(%rip), %r14      # 0x16240
movl 0xc26b(%rip), %r15d     # 0x16150
movl 0xc275(%rip), %ebx      # 0x16160
callq 0x2270
movq (%rax), %rcx
movslq %ebx, %rdx
movzwl (%rcx,%rdx,2), %edx
movzwl %dx, %edi
btl $0xd, %edi
jae 0x9f4f
movq %r14, %rsi
cmpl $0xa, %ebx
jne 0x9f15
incl %r15d
movl %r15d, 0xc23b(%rip)     # 0x16150
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testq %rsi, %rsi
je 0x9f37
movsbl (%rsi), %edx
testl %edx, %edx
je 0x9f39
incq %rsi
movq %rsi, 0xc310(%rip)      # 0x16240
movq %rsi, %r14
movl %edx, %ebx
jmp 0x9f39
xorl %esi, %esi
movslq %ebx, %rdx
movzwl (%rcx,%rdx,2), %edx
movzwl %dx, %edi
btl $0xd, %edi
jb 0x9f06
movl %ebx, 0xc211(%rip)      # 0x16160
btl $0xa, %edi
jb 0xa02f
cmpl $0x5f, %ebx
je 0xa02f
cmpl $0x23, %ebx
je 0xa02f
btl $0xb, %edi
jb 0xa2aa
cmpl $-0x1, %ebx
je 0xa2eb
cmpl $0x27, %ebx
je 0xa2f5
cmpl $0x22, %ebx
je 0xa2c9
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0x9fb3
movsbl (%r14), %edi
testl %edi, %edi
je 0x9fb7
incq %r14
movq %r14, 0xc294(%rip)      # 0x16240
movq %r14, %rsi
movl %edi, %edx
jmp 0x9fba
xorl %esi, %esi
jmp 0x9fba
movq %r14, %rsi
movl %edx, 0xc1a0(%rip)      # 0x16160
cmpl $0x21, %ebx
je 0xa378
cmpl $0x26, %ebx
jne 0x9fd7
cmpl $0x26, %edx
je 0xa3b4
cmpl $0x7c, %ebx
jne 0x9fe5
cmpl $0x7c, %edx
je 0xa3e2
cmpl $0x2f, %ebx
jne 0xa410
cmpl $0x2f, %edx
jne 0xa410
testq %rsi, %rsi
jne 0xa003
xorl %esi, %esi
testq %rsi, %rsi
je 0x9ffe
movb (%rsi), %dl
testb %dl, %dl
je 0x9ffe
incq %rsi
movq %rsi, 0xc22d(%rip)      # 0x16240
cmpb $0xa, %dl
jne 0x9ffe
movl $0xa, 0xc13e(%rip)      # 0x16160
movl $0xa, %ebx
movq %rsi, %r14
jmp 0x9ef3
xorl %esi, %esi
leaq 0xc338(%rip), %rdx      # 0x16370
movslq %ebx, %rdi
movzwl (%rcx,%rdi,2), %ecx
testb $0x8, %cl
jne 0xa04e
cmpl $0x5f, %ebx
je 0xa04e
cmpl $0x23, %ebx
jne 0xa082
movb %bl, (%rsi,%rdx)
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0xa071
movsbl (%r14), %ecx
testl %ecx, %ecx
je 0xa074
incq %r14
movq %r14, 0xc1d3(%rip)      # 0x16240
movl %ecx, %ebx
jmp 0xa074
xorl %r14d, %r14d
movl %ebx, 0xc0e6(%rip)      # 0x16160
movq (%rax), %rcx
incq %rsi
jmp 0xa038
movl %esi, %eax
movb $0x0, (%rax,%rdx)
movl $0x1, %eax
cmpb $0x23, 0xc2dc(%rip)     # 0x16370
je 0x9ecc
movl $0x6d6f7461, %eax       # imm = 0x6D6F7461
xorl 0xc2cb(%rip), %eax      # 0x16370
movl $0x63696d, %ecx         # imm = 0x63696D
xorl 0xc2c3(%rip), %ecx      # 0x16373
orl %eax, %ecx
je 0x9eca
movl $0x6e697375, %eax       # imm = 0x6E697375
xorl 0xc2ad(%rip), %eax      # 0x16370
movzwl 0xc2aa(%rip), %ecx      # 0x16374
xorl $0x67, %ecx
orl %eax, %ecx
je 0xa4cf
movl $0x74617473, %eax       # imm = 0x74617473
xorl 0xc290(%rip), %eax      # 0x16370
movl $0x636974, %ecx         # imm = 0x636974
xorl 0xc288(%rip), %ecx      # 0x16373
orl %eax, %ecx
je 0xa504
movl $0x6c6c756e, %eax       # imm = 0x6C6C756E
xorl 0xc272(%rip), %eax      # 0x16370
movzbl 0xc26f(%rip), %ecx      # 0x16374
orl %eax, %ecx
je 0xa50e
movl 0xc25d(%rip), %ecx      # 0x16370
movl $0x5, %eax
cmpl $0x77656e, %ecx         # imm = 0x77656E
je 0x9ecc
movl $0x6f696e75, %eax       # imm = 0x6F696E75
xorl 0xc241(%rip), %eax      # 0x16370
movzwl 0xc23e(%rip), %edx      # 0x16374
xorl $0x6e, %edx
orl %eax, %edx
je 0xa62c
movl $0x75727473, %eax       # imm = 0x75727473
xorl 0xc224(%rip), %eax      # 0x16370
movl $0x746375, %edx         # imm = 0x746375
xorl 0xc21c(%rip), %edx      # 0x16373
orl %eax, %edx
je 0xa636
movl $0x65747865, %eax       # imm = 0x65747865
xorl 0xc206(%rip), %eax      # 0x16370
movl $0x6e7265, %edx         # imm = 0x6E7265
xorl 0xc1fe(%rip), %edx      # 0x16373
orl %eax, %edx
je 0xa6ba
movl $0x65757274, %eax       # imm = 0x65757274
xorl 0xc1e8(%rip), %eax      # 0x16370
movzbl 0xc1e5(%rip), %edx      # 0x16374
orl %eax, %edx
je 0xa6c4
movl $0x736c6166, %eax       # imm = 0x736C6166
xorl 0xc1ce(%rip), %eax      # 0x16370
movzwl 0xc1cb(%rip), %edx      # 0x16374
xorl $0x65, %edx
orl %eax, %edx
je 0xa75b
movl $0x6c696877, %eax       # imm = 0x6C696877
xorl 0xc1b1(%rip), %eax      # 0x16370
movzwl 0xc1ae(%rip), %edx      # 0x16374
xorl $0x65, %edx
orl %eax, %edx
je 0xa79d
movl $0xd, %eax
cmpl $0x726f66, %ecx         # imm = 0x726F66
je 0x9ecc
movl $0x65736c65, %eax       # imm = 0x65736C65
xorl 0xc183(%rip), %eax      # 0x16370
movzbl 0xc180(%rip), %edx      # 0x16374
orl %eax, %edx
je 0xa816
movl $0x6669, %eax           # imm = 0x6669
xorl 0xc169(%rip), %eax      # 0x16370
movzbl 0xc164(%rip), %edx      # 0x16372
orw %ax, %dx
je 0xa820
movl $0x75746572, %eax       # imm = 0x75746572
xorl 0xc14e(%rip), %eax      # 0x16370
movl $0x6e7275, %edx         # imm = 0x6E7275
xorl 0xc146(%rip), %edx      # 0x16373
orl %eax, %edx
je 0xa82a
movl $0x636e7566, %eax       # imm = 0x636E7566
xorl 0xc130(%rip), %eax      # 0x16370
movzbl 0xc12d(%rip), %edx      # 0x16374
orl %eax, %edx
je 0xa834
movl $0x12, %eax
cmpl $0x726176, %ecx         # imm = 0x726176
je 0x9ecc
movl $0x64616572, %eax       # imm = 0x64616572
xorl 0xc105(%rip), %eax      # 0x16370
movzbl 0xc102(%rip), %edx      # 0x16374
orl %eax, %edx
je 0xa83e
movl $0x74697277, %eax       # imm = 0x74697277
xorl 0xc0eb(%rip), %eax      # 0x16370
movzwl 0xc0e8(%rip), %edx      # 0x16374
xorl $0x65, %edx
orl %eax, %edx
je 0xa848
xorl %eax, %eax
cmpl $0x6e656c, %ecx         # imm = 0x6E656C
setne %al
addl $0x15, %eax
jmp 0x9ecc
leal -0x2d(%rbx), %ecx
cmpl $0x2, %ecx
jb 0xa466
andl $0x800, %edx            # imm = 0x800
jne 0xa466
xorl %eax, %eax
jmp 0xa4ba
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0xa4d9
movb (%r14), %sil
xorl %ecx, %ecx
testb %sil, %sil
jne 0xa86d
jmp 0xa87b
movl $0x32, %eax
jmp 0x9ecc
testq %r14, %r14
je 0xa43f
movsbl (%r14), %eax
testl %eax, %eax
je 0xa43f
leaq 0x1(%r14), %rdx
movq %rdx, 0xbf2b(%rip)      # 0x16240
movl %eax, 0xbe45(%rip)      # 0x16160
cmpb $0x5c, %al
jne 0xa6fc
movsbl (%rdx), %eax
testl %eax, %eax
je 0xa530
movzbl %al, %edx
addq $0x2, %r14
movq %r14, 0xbf04(%rip)      # 0x16240
movl %eax, 0xbe1e(%rip)      # 0x16160
cmpl $0x5b, %edx
jg 0xa5a0
cmpl $0x21, %edx
jle 0xa640
cmpl $0x22, %edx
je 0xa6d5
cmpl $0x27, %edx
je 0xa6e5
cmpl $0x30, %edx
jne 0xa6ff
xorl %ecx, %ecx
xorl %eax, %eax
jmp 0xa6f3
movl $0x23, %eax
cmpl $0x3d, %edx
jne 0x9ecc
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0xa3a4
movsbl (%r14), %ecx
testl %ecx, %ecx
je 0xa3a4
incq %r14
movq %r14, 0xbe9e(%rip)      # 0x16240
movl %ecx, %eax
movl %eax, 0xbdb6(%rip)      # 0x16160
movl $0x31, %eax
jmp 0x9ecc
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0xa3d2
movsbl (%r14), %ecx
testl %ecx, %ecx
je 0xa3d2
incq %r14
movq %r14, 0xbe70(%rip)      # 0x16240
movl %ecx, %eax
movl %eax, 0xbd88(%rip)      # 0x16160
movl $0x2e, %eax
jmp 0x9ecc
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0xa400
movsbl (%r14), %ecx
testl %ecx, %ecx
je 0xa400
incq %r14
movq %r14, 0xbe42(%rip)      # 0x16240
movl %ecx, %eax
movl %eax, 0xbd5a(%rip)      # 0x16160
movl $0x2f, %eax
jmp 0x9ecc
cmpl $0x5a, %ebx
jg 0xa4e3
leal -0x28(%rbx), %eax
cmpl $0x13, %eax
ja 0xa5d0
leaq 0x4fcc(%rip), %rcx      # 0xf3f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x19, %eax
jmp 0x9ecc
movl $0xffffffff, 0xbd17(%rip) # imm = 0xFFFFFFFF
movb $-0x1, %al
movb %al, 0xbf1f(%rip)       # 0x16370
movb $0x0, 0xbf19(%rip)      # 0x16371
testq %r14, %r14
jne 0xa70c
jmp 0xa852
xorl %ecx, %ecx
leaq 0xbf01(%rip), %rdx      # 0x16370
movb %bl, (%rcx,%rdx)
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0xa492
movsbl (%r14), %esi
testl %esi, %esi
je 0xa495
incq %r14
movq %r14, 0xbdb2(%rip)      # 0x16240
movl %esi, %ebx
jmp 0xa495
xorl %r14d, %r14d
leal -0x2d(%rbx), %esi
incq %rcx
cmpl $0x2, %esi
jb 0xa46f
movq (%rax), %rsi
movslq %ebx, %rdi
movzwl (%rsi,%rdi,2), %esi
andl $0x800, %esi            # imm = 0x800
jne 0xa46f
movl %ebx, 0xbca8(%rip)      # 0x16160
movl %ecx, %eax
leaq 0xbeaf(%rip), %rcx      # 0x16370
movb $0x0, (%rax,%rcx)
movl $0x21, %eax
jmp 0x9ecc
movl $0x2, %eax
jmp 0x9ecc
xorl %r14d, %r14d
xorl %ecx, %ecx
jmp 0xa87b
cmpl $0x7a, %ebx
jg 0xa518
cmpl $0x5b, %ebx
je 0xa58c
cmpl $0x5d, %ebx
jne 0xa5d0
movl $0x18, %eax
jmp 0x9ecc
movl $0x3, %eax
jmp 0x9ecc
movl $0x4, %eax
jmp 0x9ecc
cmpl $0x7b, %ebx
je 0xa596
cmpl $0x7d, %ebx
jne 0xa5d0
movl $0x1c, %eax
jmp 0x9ecc
movb $-0x1, %al
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
jmp 0xa6f6
movl $0x1f, %eax
jmp 0x9ecc
movl $0x27, %eax
jmp 0x9ecc
movl $0x1d, %eax
jmp 0x9ecc
movl $0x26, %eax
jmp 0x9ecc
movl $0x25, %eax
jmp 0x9ecc
movl $0x20, %eax
jmp 0x9ecc
movl $0x1e, %eax
jmp 0x9ecc
movl $0x1a, %eax
jmp 0x9ecc
movl $0x17, %eax
jmp 0x9ecc
movl $0x1b, %eax
jmp 0x9ecc
cmpl $0x6d, %edx
jle 0xa6a7
cmpl $0x6e, %edx
je 0xa6dc
cmpl $0x72, %edx
je 0xa6ec
cmpl $0x74, %edx
jne 0xa6ff
movb $0x9, %al
movl $0x9, %ecx
jmp 0xa6f3
movl $0x28, %eax
cmpl $0x2f, %ebx
je 0x9ecc
movl $0x29, %eax
cmpl $0x25, %ebx
je 0x9ecc
cmpl $0x3d, %ebx
jne 0xa765
cmpl $0x3d, %edx
jne 0xa765
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0xa61c
movsbl (%r14), %ecx
testl %ecx, %ecx
je 0xa61c
incq %r14
movq %r14, 0xbc26(%rip)      # 0x16240
movl %ecx, %eax
movl %eax, 0xbb3e(%rip)      # 0x16160
movl $0x30, %eax
jmp 0x9ecc
movl $0x7, %eax
jmp 0x9ecc
movl $0x6, %eax
jmp 0x9ecc
cmpl $0xa, %edx
je 0xa64e
cmpl $0xd, %edx
jne 0xa6ff
movslq %eax, %rdx
testb $0x20, 0x1(%rcx,%rdx,2)
je 0xa6ff
movq %r14, %rdx
cmpl $0xa, %eax
jne 0xa66e
incl %r15d
movl %r15d, 0xbae2(%rip)     # 0x16150
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %rdx, %rdx
je 0xa690
movsbl (%rdx), %esi
testl %esi, %esi
je 0xa692
incq %rdx
movq %rdx, 0xbbb7(%rip)      # 0x16240
movq %rdx, %r14
movl %esi, %eax
jmp 0xa692
xorl %edx, %edx
movslq %eax, %rsi
testb $0x20, 0x1(%rcx,%rsi,2)
jne 0xa65f
movl %eax, 0xbabe(%rip)      # 0x16160
jmp 0xa44b
cmpl $0x5c, %edx
je 0xa6ce
cmpl $0x62, %edx
jne 0xa6ff
movb $0x8, %al
movl $0x8, %ecx
jmp 0xa6f3
movl $0x8, %eax
jmp 0x9ecc
movl $0xa, %eax
jmp 0x9ecc
movl $0x5c, %ecx
jmp 0xa6f3
movl $0x22, %ecx
jmp 0xa6f3
movb $0xa, %al
movl $0xa, %ecx
jmp 0xa6f3
movl $0x27, %ecx
jmp 0xa6f3
movb $0xd, %al
movl $0xd, %ecx
movq %r14, %rdx
movl %ecx, 0xba64(%rip)      # 0x16160
movq %rdx, %r14
movb %al, 0xbc6b(%rip)       # 0x16370
movb $0x0, 0xbc65(%rip)      # 0x16371
movsbl (%r14), %ecx
testl %ecx, %ecx
je 0xa852
leaq 0x1(%r14), %rdx
movq %rdx, 0xbb1d(%rip)      # 0x16240
movl %ecx, 0xba37(%rip)      # 0x16160
cmpb $0x27, %cl
jne 0xa85c
movsbl (%rdx), %eax
testl %eax, %eax
je 0xa746
addq $0x2, %r14
movq %r14, 0xbafc(%rip)      # 0x16240
jmp 0xa74b
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, 0xba0f(%rip)      # 0x16160
movl $0x9, %eax
jmp 0x9ecc
movl $0xb, %eax
jmp 0x9ecc
cmpl $0x3c, %ebx
jne 0xa7a7
cmpl $0x3d, %edx
jne 0xa7a7
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0xa78d
movsbl (%r14), %ecx
testl %ecx, %ecx
je 0xa78d
incq %r14
movq %r14, 0xbab5(%rip)      # 0x16240
movl %ecx, %eax
movl %eax, 0xb9cd(%rip)      # 0x16160
movl $0x2c, %eax
jmp 0x9ecc
movl $0xc, %eax
jmp 0x9ecc
cmpl $0x3e, %ebx
jne 0xa7df
cmpl $0x3d, %edx
jne 0xa7df
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0xa7cf
movsbl (%r14), %ecx
testl %ecx, %ecx
je 0xa7cf
incq %r14
movq %r14, 0xba73(%rip)      # 0x16240
movl %ecx, %eax
movl %eax, 0xb98b(%rip)      # 0x16160
movl $0x2d, %eax
jmp 0x9ecc
movl %ebx, %eax
andl $-0x2, %eax
cmpl $0x3d, %ebx
movl $0x24, %ecx
movl $0x2a, %edx
cmovel %ecx, %edx
cmpl $0x3c, %eax
movl $0x2b, %eax
cmovel %edx, %eax
leal -0x3c(%rbx), %ecx
cmpl $0x3, %ecx
jb 0x9ecc
leaq 0x6610(%rip), %rdi      # 0x10e22
movl %ebx, %esi
jmp 0xa866
movl $0xe, %eax
jmp 0x9ecc
movl $0xf, %eax
jmp 0x9ecc
movl $0x10, %eax
jmp 0x9ecc
movl $0x11, %eax
jmp 0x9ecc
movl $0x13, %eax
jmp 0x9ecc
movl $0x14, %eax
jmp 0x9ecc
movl $0xffffffff, 0xb904(%rip) # imm = 0xFFFFFFFF
movsbl %al, %esi
leaq 0x65a7(%rip), %rdi      # 0x10e0d
xorl %eax, %eax
callq 0x878e
movsbl %sil, %r8d
incq %r14
movq %r14, 0xb9c5(%rip)      # 0x16240
leaq 0xbaee(%rip), %rdx      # 0x16370
movq %r14, %rdi
movq %r14, %r9
cmpl $0x5c, %r8d
je 0xa8ba
cmpl $0x22, %r8d
je 0xa9f9
movq %r9, %r14
movl %ecx, %esi
incl %ecx
movb %r8b, (%rsi,%rdx)
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movl $0x0, %r9d
testq %r14, %r14
jne 0xa9df
jmp 0xa888
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
testq %r9, %r9
je 0xaa39
movsbl (%r9), %r8d
testl %r8d, %r8d
je 0xaa39
movzbl %r8b, %r10d
movq %r9, %rdi
incq %rdi
movq %rdi, 0xb95a(%rip)      # 0x16240
cmpl $0x5b, %r10d
jg 0xa91b
cmpl $0x21, %r10d
jle 0xa94e
cmpl $0x22, %r10d
je 0xa9d4
cmpl $0x27, %r10d
je 0xa9d4
movl %r8d, %esi
cmpl $0x30, %r10d
jne 0xaa39
xorl %r8d, %r8d
jmp 0xa9d4
cmpl $0x6d, %r10d
jle 0xa9b8
cmpl $0x6e, %r10d
je 0xa9d1
cmpl $0x72, %r10d
je 0xa9cc
movl %r8d, %esi
cmpl $0x74, %r10d
jne 0xaa39
movb $0x9, %r8b
jmp 0xa9d4
cmpl $0xa, %r10d
je 0xa95e
cmpl $0xd, %r10d
jne 0xaa36
movslq %r8d, %r9
movq (%rax), %rsi
testb $0x20, 0x1(%rsi,%r9,2)
je 0xa9d4
movq %rdi, %r9
cmpl $0xa, %r8d
jne 0xa97f
incl %r15d
movl %r15d, 0xb7d1(%rip)     # 0x16150
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
testq %r9, %r9
je 0xa9a5
movsbl (%r9), %r10d
testl %r10d, %r10d
je 0xa9a8
incq %r9
movq %r9, 0xb8a3(%rip)       # 0x16240
movq %r9, %rdi
movl %r10d, %r8d
jmp 0xa9a8
xorl %r9d, %r9d
movslq %r8d, %r10
testb $0x20, 0x1(%rsi,%r10,2)
jne 0xa96f
jmp 0xa898
cmpl $0x5c, %r10d
je 0xa9d4
movl %r8d, %esi
cmpl $0x62, %r10d
jne 0xaa39
movb $0x8, %r8b
jmp 0xa9d4
movb $0xd, %r8b
jmp 0xa9d4
movb $0xa, %r8b
movl %ecx, %esi
incl %ecx
movb %r8b, (%rsi,%rdx)
movq %rdi, %r14
movb (%r14), %sil
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movq %r14, %r9
testb %sil, %sil
je 0xa888
jmp 0xa86d
movl $0x22, 0xb75d(%rip)     # 0x16160
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %rdi, %rdi
je 0xaa20
movsbl (%rdi), %esi
testl %esi, %esi
je 0xaa20
incq %rdi
movq %rdi, 0xb822(%rip)      # 0x16240
movl %esi, %eax
movl %eax, 0xb73a(%rip)      # 0x16160
movl %ecx, %eax
movb $0x0, (%rax,%rdx)
movl $0x22, %eax
jmp 0x9ecc
movl %r8d, %esi
movl %esi, 0xb721(%rip)      # 0x16160
leaq 0x63a6(%rip), %rdi      # 0x10dec
xorl %eax, %eax
callq 0x388c