// File: /workspace/github_c_makefile_star2_O0/theovosse[P]llgen/regexp.c
// Function: charlist
static char *charlist(RegExp start, char *pattern, RegExp *end) {
	Boolean chars[256];
	int i;
	char *rest = pattern;
	Boolean flag = true;
	unsigned char low;
	unsigned char high;
	Boolean special;
	Boolean range;
	char ch;

	*end = MakeRegExp(NULL, NULL, NULL);
	ch = chardenot(&rest, &special, true);
	if (special && ch == '^') {
		flag = false;
		ch = chardenot(&rest, &special, true);
	}
	for (i = 0; i != charSetSize; i++) {
		chars[i] = false;
	}
	while (errorInExpression == 0 && (special || *rest != '\0' || ch != '\0') && !(special && ch == ']')) {
		range = false;
        high = 0;
		if (special) {
			if (ch == '-') {
				low = '\0';
				range = true;
			} else {
				errorInExpression = 7; /* "\\-" expected */
			}
		} else {
			low = ch;
		}
		ch = chardenot(&rest, &special, true);
		if (special) {
			if (ch == '-' && !range) {
				high = chardenot(&rest, &special, true);
				if (special && high == ']') {
					ch = high;
					high = '\377';
				} else {
					if (high <= low || special) {
						errorInExpression = 8; /* error in range */
					}
					ch = chardenot(&rest, &special, true);
				}
			} else if (ch == ']') {
				high = low;
			} else {
				errorInExpression = 7; /* "\\-" expected */
			}
		} else {
			if (range) {
				high = ch;
				ch = chardenot(&rest, &special, true);
			} else {
				high = low;
			}
		}
		for (i = low; i <= high; i++) {
			chars[i] = true;
		}
	}
	if (*rest == '\0' && ch == '\0') {
		if (errorInExpression == 0) errorInExpression = 5; /* "\\]" expected */
	}
	for (i = 0; i != charSetSize; i++) {
		if (chars[i] == flag) {
			start->transitions = MakeTransition(i, *end, start->transitions);
			if (!caseSens) {
				if ('a' <= i && i <= 'z' && !chars[i - 'a' + 'A']) {
					start->transitions = MakeTransition(i - 'a' + 'A', *end, start->transitions);
				} else if ('A' <= i && i <= 'Z' && !chars[i - 'A' + 'a']) {
					start->transitions = MakeTransition(i - 'A' + 'a', *end, start->transitions);
				}
			}
		}
	}
	return (rest);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x240, %rsp            # imm = 0x240
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x230(%rbp)
movw $0xffff, -0x232(%rbp)   # imm = 0xFFFF
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rdi
movq %rdx, %rsi
callq 0x11ab0
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
leaq -0x230(%rbp), %rdi
leaq -0x236(%rbp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x15e50
movb %al, -0x239(%rbp)
movswl -0x236(%rbp), %eax
cmpl $0x0, %eax
je 0x16451
movsbl -0x239(%rbp), %eax
cmpl $0x5e, %eax
jne 0x16451
movw $0x0, -0x232(%rbp)
leaq -0x230(%rbp), %rdi
leaq -0x236(%rbp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x15e50
movb %al, -0x239(%rbp)
movl $0x0, -0x224(%rbp)
movl -0x224(%rbp), %eax
cmpl 0x9e3d(%rip), %eax      # 0x202a4
je 0x1648b
movslq -0x224(%rbp), %rax
movw $0x0, -0x220(%rbp,%rax,2)
movl -0x224(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x224(%rbp)
jmp 0x1645b
jmp 0x1648d
xorl %eax, %eax
cmpl $0x0, 0xcaca(%rip)      # 0x22f60
movb %al, -0x23a(%rbp)
jne 0x16502
movswl -0x236(%rbp), %eax
cmpl $0x0, %eax
jne 0x164cd
movq -0x230(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x164cd
movsbl -0x239(%rbp), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x23a(%rbp)
je 0x16502
movswl -0x236(%rbp), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x23b(%rbp)
je 0x164f4
movsbl -0x239(%rbp), %eax
cmpl $0x5d, %eax
sete %al
movb %al, -0x23b(%rbp)
movb -0x23b(%rbp), %al
xorb $-0x1, %al
movb %al, -0x23a(%rbp)
movb -0x23a(%rbp), %al
testb $0x1, %al
jne 0x16511
jmp 0x166ef
movw $0x0, -0x238(%rbp)
movb $0x0, -0x234(%rbp)
cmpw $0x0, -0x236(%rbp)
je 0x16555
movsbl -0x239(%rbp), %eax
cmpl $0x2d, %eax
jne 0x16549
movb $0x0, -0x233(%rbp)
movw $0xffff, -0x238(%rbp)   # imm = 0xFFFF
jmp 0x16553
movl $0x7, 0xca0d(%rip)      # 0x22f60
jmp 0x16561
movb -0x239(%rbp), %al
movb %al, -0x233(%rbp)
leaq -0x230(%rbp), %rdi
leaq -0x236(%rbp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x15e50
movb %al, -0x239(%rbp)
cmpw $0x0, -0x236(%rbp)
je 0x16666
movsbl -0x239(%rbp), %eax
cmpl $0x2d, %eax
jne 0x1663e
cmpw $0x0, -0x238(%rbp)
jne 0x1663e
leaq -0x230(%rbp), %rdi
leaq -0x236(%rbp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x15e50
movb %al, -0x234(%rbp)
movswl -0x236(%rbp), %eax
cmpl $0x0, %eax
je 0x165f6
movzbl -0x234(%rbp), %eax
cmpl $0x5d, %eax
jne 0x165f6
movb -0x234(%rbp), %al
movb %al, -0x239(%rbp)
movb $-0x1, -0x234(%rbp)
jmp 0x1663c
movzbl -0x234(%rbp), %eax
movzbl -0x233(%rbp), %ecx
cmpl %ecx, %eax
jle 0x16614
movswl -0x236(%rbp), %eax
cmpl $0x0, %eax
je 0x1661e
movl $0x8, 0xc942(%rip)      # 0x22f60
leaq -0x230(%rbp), %rdi
leaq -0x236(%rbp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x15e50
movb %al, -0x239(%rbp)
jmp 0x16664
movsbl -0x239(%rbp), %eax
cmpl $0x5d, %eax
jne 0x16658
movb -0x233(%rbp), %al
movb %al, -0x234(%rbp)
jmp 0x16662
movl $0x7, 0xc8fe(%rip)      # 0x22f60
jmp 0x16664
jmp 0x166aa
cmpw $0x0, -0x238(%rbp)
je 0x1669c
movb -0x239(%rbp), %al
movb %al, -0x234(%rbp)
leaq -0x230(%rbp), %rdi
leaq -0x236(%rbp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x15e50
movb %al, -0x239(%rbp)
jmp 0x166a8
movb -0x233(%rbp), %al
movb %al, -0x234(%rbp)
jmp 0x166aa
movzbl -0x233(%rbp), %eax
movl %eax, -0x224(%rbp)
movl -0x224(%rbp), %eax
movzbl -0x234(%rbp), %ecx
cmpl %ecx, %eax
jg 0x166ea
movslq -0x224(%rbp), %rax
movw $0xffff, -0x220(%rbp,%rax,2) # imm = 0xFFFF
movl -0x224(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x224(%rbp)
jmp 0x166b7
jmp 0x1648d
movq -0x230(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x1671f
movsbl -0x239(%rbp), %eax
cmpl $0x0, %eax
jne 0x1671f
cmpl $0x0, 0xc84f(%rip)      # 0x22f60
jne 0x1671d
movl $0x5, 0xc843(%rip)      # 0x22f60
jmp 0x1671f
movl $0x0, -0x224(%rbp)
movl -0x224(%rbp), %eax
cmpl 0x9b6f(%rip), %eax      # 0x202a4
je 0x16858
movslq -0x224(%rbp), %rax
movswl -0x220(%rbp,%rax,2), %eax
movswl -0x232(%rbp), %ecx
cmpl %ecx, %eax
jne 0x16842
movl -0x224(%rbp), %edi
movq -0x18(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rdx
callq 0x11be0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
cmpw $0x0, 0x9b1c(%rip)      # 0x202a0
jne 0x16840
movl $0x61, %eax
cmpl -0x224(%rbp), %eax
jg 0x167e4
cmpl $0x7a, -0x224(%rbp)
jg 0x167e4
movl -0x224(%rbp), %eax
subl $0x61, %eax
addl $0x41, %eax
cltq
cmpw $0x0, -0x220(%rbp,%rax,2)
jne 0x167e4
movl -0x224(%rbp), %edi
subl $0x61, %edi
addl $0x41, %edi
movq -0x18(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rdx
callq 0x11be0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
jmp 0x1683e
movl $0x41, %eax
cmpl -0x224(%rbp), %eax
jg 0x1683c
cmpl $0x5a, -0x224(%rbp)
jg 0x1683c
movl -0x224(%rbp), %eax
subl $0x41, %eax
addl $0x61, %eax
cltq
cmpw $0x0, -0x220(%rbp,%rax,2)
jne 0x1683c
movl -0x224(%rbp), %edi
subl $0x41, %edi
addl $0x61, %edi
movq -0x18(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rdx
callq 0x11be0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
jmp 0x1683e
jmp 0x16840
jmp 0x16842
jmp 0x16844
movl -0x224(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x224(%rbp)
jmp 0x16729
movq -0x230(%rbp), %rax
addq $0x240, %rsp            # imm = 0x240
popq %rbp
retq
nopl (%rax,%rax)