// File: /workspace/github_c_makefile_star2_O2/theovosse[P]llgen/regexp.c
// Function: sequence
static char *sequence(RegExp start, char *pattern, RegExp *end) {
	RegExp startFactor = start;
	RegExp endFactor;
	char *rest = pattern;
	char *rest2;
	char nextCh;
	Boolean special;

	do {
		rest2 = rest = factor(startFactor, rest, &endFactor);
		startFactor = endFactor;
		nextCh = chardenot(&rest2, &special, false);
	}
	while (errorInExpression == 0 && *rest != '\0' && !(special && (nextCh == '|' || nextCh == ')')));
	*end = endFactor;
	return (rest);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x258, %rsp            # imm = 0x258
movq %rdx, 0x40(%rsp)
movq %rsi, %r14
movq %rdi, 0x8(%rsp)
leaq 0x20(%rsp), %rbx
leaq 0x6(%rsp), %r13
movq %r14, 0x30(%rsp)
movq %r14, 0x20(%rsp)
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0xe535
movl %eax, %r12d
cmpw $0x0, 0x6(%rsp)
movsbl %al, %r15d
je 0xe032
cmpb $0x28, %r12b
je 0xe261
movzbl %r12b, %eax
cmpl $0x5b, %eax
je 0xe089
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
cmpl $0x2e, %eax
jne 0xe2bb
callq 0xbdaa
movq %rax, %r14
movq %rax, 0x10(%rsp)
movl 0xa26e(%rip), %eax      # 0x1825c
leaq 0x42ab(%rip), %r12      # 0x122a0
xorl %r15d, %r15d
movl %eax, %ecx
cmpq %rcx, %r15
je 0xe3fc
cmpw $0x0, (%r12)
je 0xe029
movq 0x8(%rsp), %rbp
movq (%rbp), %rdx
movl %r15d, %edi
movq %r14, %rsi
callq 0xbe4d
movq %rax, (%rbp)
movl 0xa233(%rip), %eax      # 0x1825c
incq %r15
addq $0x2, %r12
jmp 0xdff8
cmpb $0x0, (%r14)
je 0xe2ea
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
callq 0xbdaa
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rbp
movq (%rbp), %rdx
movl %r15d, %edi
movq %rax, %rsi
callq 0xbe4d
movq %rax, (%rbp)
cmpw $0x0, 0xa1ec(%rip)      # 0x18258
jne 0xe3fc
addb $-0x61, %r12b
cmpb $0x19, %r12b
ja 0xe306
addl $-0x20, %r15d
jmp 0xe319
movq 0x20(%rsp), %rax
movq %rax, 0x18(%rsp)
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
callq 0xbdaa
movq %rax, 0x10(%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x4(%rsp), %rsi
pushq $-0x1
popq %rbx
movl %ebx, %edx
callq 0xe535
movl %eax, %r14d
cmpw $0x0, 0x4(%rsp)
setne %al
cmpb $0x5e, %r14b
sete %cl
andb %al, %cl
movl %ebx, 0x3c(%rsp)
cmpb $0x1, %cl
jne 0xe0f2
leaq 0x18(%rsp), %rdi
leaq 0x4(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xe535
movl %eax, %r14d
movl $0x0, 0x3c(%rsp)
movl 0xa163(%rip), %r13d     # 0x1825c
xorl %eax, %eax
cmpq %rax, %r13
je 0xe10b
andw $0x0, 0x50(%rsp,%rax,2)
incq %rax
jmp 0xe0fb
movl 0xcbef(%rip), %ecx      # 0x1ad00
testl %ecx, %ecx
jne 0xe339
cmpw $0x0, 0x4(%rsp)
je 0xe14b
cmpb $0x2d, %r14b
je 0xe164
movzbl %r14b, %eax
cmpl $0x5d, %eax
je 0xe339
movl $0x7, 0xcbc2(%rip)      # 0x1ad00
movb $0x1, %bl
xorl %r15d, %r15d
pushq $0x7
popq %rbp
movl %edx, %r14d
jmp 0xe16e
movq 0x18(%rsp), %rax
xorl %ebp, %ebp
movb (%rax), %al
orb %r14b, %al
je 0xe336
movb $0x1, %bl
xorl %r15d, %r15d
jmp 0xe16e
movb $0x1, %r15b
xorl %ebp, %ebp
xorl %r14d, %r14d
xorl %ebx, %ebx
leaq 0x18(%rsp), %rdi
leaq 0x4(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xe535
movl %eax, %r12d
cmpw $0x0, 0x4(%rsp)
je 0xe1b8
cmpb $0x2d, %r12b
setne %al
orb %al, %r15b
je 0xe1c4
movb $0x5d, %al
movl %r14d, %r15d
cmpb $0x5d, %r12b
je 0xe23c
movl $0x7, 0xcb50(%rip)      # 0x1ad00
xorl %r15d, %r15d
pushq $0x7
popq %rbp
jmp 0xe1bf
testb %bl, %bl
je 0xe1f6
movl %r14d, %r15d
movl %r12d, %eax
jmp 0xe23c
leaq 0x18(%rsp), %rdi
leaq 0x4(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xe535
movl %eax, %r15d
movzwl 0x4(%rsp), %eax
testw %ax, %ax
setne %cl
cmpb $0x5d, %r15b
sete %dl
testb %dl, %cl
je 0xe20d
movb $0x5d, %al
movb $-0x1, %r15b
jmp 0xe23c
leaq 0x18(%rsp), %rdi
leaq 0x4(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xe535
movl %r12d, %r15d
jmp 0xe23c
testw %ax, %ax
sete %al
cmpb %r14b, %r15b
seta %cl
testb %al, %cl
jne 0xe22a
movl $0x8, 0xcad9(%rip)      # 0x1ad00
pushq $0x8
popq %rbp
leaq 0x18(%rsp), %rdi
leaq 0x4(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xe535
movzbl %r14b, %ecx
movzbl %r15b, %edx
cmpq %rdx, %rcx
ja 0xe254
orw $-0x1, 0x50(%rsp,%rcx,2)
incq %rcx
jmp 0xe244
movl %ebp, %ecx
movl %r14d, %edx
movl %eax, %r14d
jmp 0xe111
movq 0x20(%rsp), %rsi
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xc1dc
movq %rax, 0x20(%rsp)
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0xe535
cmpw $0x0, 0x6(%rsp)
sete %cl
cmpb $0x29, %al
setne %al
orb %cl, %al
cmpb $0x1, %al
jne 0xe3fc
cmpl $0x0, 0xca5a(%rip)      # 0x1ad00
jne 0xe3fc
movl $0x3, 0xca4a(%rip)      # 0x1ad00
jmp 0xe3fc
callq 0xbdaa
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %r14
movq (%r14), %rdx
movl %r15d, %edi
movq %rax, %rsi
callq 0xbe4d
movq %rax, (%r14)
movl $0x1, 0xca1b(%rip)      # 0x1ad00
jmp 0xe3fc
cmpl $0x0, 0xca0f(%rip)      # 0x1ad00
jne 0xe3fc
movl $0x2, 0xc9ff(%rip)      # 0x1ad00
jmp 0xe3fc
movb (%r14), %cl
addb $-0x41, %cl
cmpb $0x19, %cl
ja 0xe3fc
addl $0x20, %r15d
movq 0x10(%rsp), %rsi
movl %r15d, %edi
movq %rax, %rdx
callq 0xbe4d
movq 0x8(%rsp), %rcx
movq %rax, (%rcx)
jmp 0xe3fc
xorl %r14d, %r14d
movq 0x18(%rsp), %r12
testl %ecx, %ecx
jne 0xe358
cmpb $0x0, (%r12)
jne 0xe358
testb %r14b, %r14b
jne 0xe358
movl $0x5, 0xc9a8(%rip)      # 0x1ad00
movq 0x10(%rsp), %r14
xorl %r15d, %r15d
movl %r13d, %eax
cmpq %rax, %r15
je 0xe3ed
movswl 0x50(%rsp,%r15,2), %eax
cmpl %eax, 0x3c(%rsp)
jne 0xe398
movq 0x8(%rsp), %rbx
movq (%rbx), %rdx
movl %r15d, %edi
movq %r14, %rsi
callq 0xbe4d
movq %rax, (%rbx)
cmpw $0x0, 0x9ec2(%rip)      # 0x18258
je 0xe3a4
incq %r15
movl 0x9eba(%rip), %r13d     # 0x1825c
jmp 0xe360
leal -0x61(%r15), %ecx
cmpl $0x19, %ecx
ja 0xe3bc
cmpw $0x0, 0x10(%rsp,%r15,2)
jne 0xe398
leaq -0x20(%r15), %rdi
jmp 0xe3d8
leal -0x41(%r15), %ecx
cmpl $0x19, %ecx
ja 0xe398
cmpw $0x0, 0x90(%rsp,%r15,2)
jne 0xe398
movq %r15, %rdi
orq $0x20, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0xbe4d
movq 0x8(%rsp), %rcx
movq %rax, (%rcx)
jmp 0xe398
movq %r12, 0x20(%rsp)
leaq 0x20(%rsp), %rbx
leaq 0x6(%rsp), %r13
movq 0x20(%rsp), %r14
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %edx, %edx
callq 0xe535
cmpw $0x0, 0x50(%rsp)
je 0xe480
testb %al, %al
je 0xe4ce
movzbl %al, %ecx
cmpl $0x2a, %ecx
je 0xe44e
cmpl $0x3f, %ecx
je 0xe46c
cmpl $0x2b, %ecx
jne 0xe4da
movq 0x30(%rsp), %r14
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
jmp 0xe47b
movq 0x30(%rsp), %r14
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %r15
movq %r15, %rsi
callq 0xbf7f
movq %r15, 0x10(%rsp)
jmp 0xe480
movq 0x30(%rsp), %r14
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0xbf7f
movl 0xc87a(%rip), %ebp      # 0x1ad00
movq %r14, 0x48(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x2e(%rsp), %rsi
xorl %edx, %edx
callq 0xe535
testl %ebp, %ebp
jne 0xe513
cmpb $0x0, (%r14)
je 0xe513
cmpw $0x0, 0x2e(%rsp)
je 0xdf8f
cmpb $0x7c, %al
je 0xe513
movzbl %al, %eax
cmpl $0x29, %eax
jne 0xdf8f
jmp 0xe513
movl 0xc82c(%rip), %ebp      # 0x1ad00
testl %ebp, %ebp
jne 0xe486
jmp 0xe501
movsbl %al, %esi
leaq 0x3bb6(%rip), %rdi      # 0x1209a
pushq $0xc
popq %rdx
callq 0x3130
testq %rax, %rax
sete %al
movl 0xc808(%rip), %ebp      # 0x1ad00
testl %ebp, %ebp
sete %cl
testb %cl, %al
je 0xe486
movl $0x1, 0xc7f5(%rip)      # 0x1ad00
pushq $0x1
popq %rbp
jmp 0xe486
movq 0x40(%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, (%rax)
movq %r14, %rax
addq $0x258, %rsp            # imm = 0x258
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq