// File: /workspace/github_c_makefile_star2_O1/haxlang[P]hax/haxRegexp.c
// Function: RegBranch
static char *
RegBranch(
Hax_Interp *interp,
int *flagp)
{
	Interp *iPtr = (Interp *) interp;
	char *ret;
	char *chain;
	char *latest;
	int flags;

	*flagp = WORST;		/* Tentatively. */

	ret = RegNode(interp, BRANCH);
	chain = NULL;
	while (*iPtr->regparse != '\0' && *iPtr->regparse != '|' && *iPtr->regparse != ')') {
		latest = RegPiece(interp, &flags);
		if (latest == NULL)
			return(NULL);
		*flagp |= flags&HASWIDTH;
		if (chain == NULL)	/* First piece. */
			*flagp |= flags&SPSTART;
		else
			RegTail(interp, chain, latest);
		chain = latest;
	}
	if (chain == NULL)	/* Loop ran zero times. */
		(void) RegNode(interp, NOTHING);

	return(ret);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r15
movq %rdi, %r14
movl $0x0, (%rsi)
movq 0x2a8(%rdi), %rcx
leaq 0x2a4(%rdi), %rbx
cmpq %rbx, %rcx
movq %rcx, 0x8(%rsp)
je 0x4d8d
movw $0x6, (%rcx)
leaq 0x3(%rcx), %rax
movb $0x0, 0x2(%rcx)
movq %rax, 0x2a8(%r14)
jmp 0x4d95
addq $0x3, 0x2b0(%r14)
xorl %r13d, %r13d
movq %r15, 0x10(%rsp)
movq 0x298(%r14), %rbp
movzbl (%rbp), %eax
testl %eax, %eax
je 0x5702
cmpl $0x29, %eax
je 0x5702
cmpl $0x7c, %eax
je 0x5702
leaq 0x1(%rbp), %rcx
movq %rcx, 0x298(%r14)
movzbl (%rbp), %eax
cmpl $0x3e, %eax
jg 0x4e0a
leal -0x24(%rax), %ecx
cmpl $0xa, %ecx
ja 0x4e9d
leaq 0x10217(%rip), %rdx     # 0x15000
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movq 0x2a8(%r14), %rbp
cmpq %rbx, %rbp
je 0x4f90
movw $0x2, (%rbp)
jmp 0x4e40
cmpl $0x5b, %eax
jle 0x4e54
cmpl $0x5c, %eax
je 0x4f68
cmpl $0x7c, %eax
je 0x4ea1
cmpl $0x5e, %eax
jne 0x4eb9
movq 0x2a8(%r14), %rbp
cmpq %rbx, %rbp
je 0x4f90
movw $0x1, (%rbp)
leaq 0x3(%rbp), %rax
movb $0x0, 0x2(%rbp)
movq %rax, 0x2a8(%r14)
jmp 0x4f98
cmpl $0x3f, %eax
je 0x4e91
cmpl $0x5b, %eax
jne 0x4eb9
cmpb $0x5e, (%rcx)
movq 0x2a8(%r14), %rbp
jne 0x4f9f
cmpq %rbx, %rbp
je 0x5056
movw $0x5, (%rbp)
leaq 0x3(%rbp), %rax
movb $0x0, 0x2(%rbp)
movq %rax, 0x2a8(%r14)
jmp 0x505e
movq %r14, %rdi
leaq 0x10315(%rip), %rsi     # 0x151b0
jmp 0x4eab
testl %eax, %eax
jne 0x4eb9
movq %r14, %rdi
leaq 0x102f8(%rip), %rsi     # 0x151a3
callq 0x4220
xorl %eax, %eax
xorl %ebp, %ebp
jmp 0x5271
movq %rbp, 0x298(%r14)
movq %rbp, %rdi
leaq 0x10305(%rip), %rsi     # 0x151cf
callq 0x42e0
testl %eax, %eax
jle 0x4fc2
movl $0x1, %ecx
cmpl $0x1, %eax
je 0x50b8
movl %eax, %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movzbl (%rbp,%rcx), %ecx
cmpq $0x3f, %rcx
ja 0x50b6
movabsq $-0x7ffff40000000000, %rdx # imm = 0x80000C0000000000
btq %rcx, %rdx
jae 0x50b6
leal -0x1(%rax), %ecx
jmp 0x50b8
movq %r14, %rdi
movl $0x1, %esi
leaq 0x4(%rsp), %rdx
callq 0x496c
testq %rax, %rax
je 0x4eb0
movq %rax, %rbp
movl 0x4(%rsp), %eax
andl $0x5, %eax
jmp 0x5271
movq 0x2a8(%r14), %rbp
cmpq %rbx, %rbp
je 0x4fd1
movw $0x3, (%rbp)
leaq 0x3(%rbp), %rax
movb $0x0, 0x2(%rbp)
movq %rax, 0x2a8(%r14)
jmp 0x526c
cmpb $0x0, (%rcx)
je 0x4fde
movq 0x2a8(%r14), %rbp
cmpq %rbx, %rbp
je 0x4fed
movw $0x8, (%rbp)
leaq 0x3(%rbp), %rax
movb $0x0, 0x2(%rbp)
movq %rax, 0x2a8(%r14)
jmp 0x4ff5
addq $0x3, 0x2b0(%r14)
xorl %eax, %eax
jmp 0x5271
cmpq %rbx, %rbp
je 0x5067
movw $0x4, (%rbp)
leaq 0x3(%rbp), %rax
movb $0x0, 0x2(%rbp)
movq %rax, 0x2a8(%r14)
jmp 0x506f
movq %r14, %rdi
leaq 0x1020f(%rip), %rsi     # 0x151db
jmp 0x4eab
addq $0x3, 0x2b0(%r14)
jmp 0x526c
movq %r14, %rdi
leaq 0x101dc(%rip), %rsi     # 0x151c4
jmp 0x4eab
addq $0x3, 0x2b0(%r14)
movq 0x298(%r14), %rcx
movq 0x2a8(%r14), %rax
leaq 0x1(%rcx), %rdx
movq %rdx, 0x298(%r14)
cmpq %rbx, %rax
je 0x5024
movb (%rcx), %cl
leaq 0x1(%rax), %rdx
movq %rdx, 0x2a8(%r14)
movb %cl, (%rax)
jmp 0x502b
incq 0x2b0(%r14)
movq 0x2a8(%r14), %rax
cmpq %rbx, %rax
je 0x504a
leaq 0x1(%rax), %rcx
movq %rcx, 0x2a8(%r14)
movb $0x0, (%rax)
jmp 0x526c
incq 0x2b0(%r14)
jmp 0x526c
addq $0x3, 0x2b0(%r14)
incq 0x298(%r14)
jmp 0x506f
addq $0x3, 0x2b0(%r14)
movq 0x298(%r14), %rax
movzbl (%rax), %ecx
cmpl $0x5d, %ecx
je 0x5087
cmpl $0x2d, %ecx
jne 0x516b
leaq 0x1(%rax), %rcx
movq %rcx, 0x298(%r14)
movq 0x2a8(%r14), %rcx
cmpq %rbx, %rcx
je 0x5164
movb (%rax), %al
leaq 0x1(%rcx), %rdx
movq %rdx, 0x2a8(%r14)
movb %al, (%rcx)
jmp 0x516b
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x1, %ecx
sete %dl
movq 0x2a8(%r14), %rbp
cmpq %rbx, %rbp
je 0x50e3
movw $0x8, (%rbp)
leaq 0x3(%rbp), %rsi
movb $0x0, 0x2(%rbp)
movq %rsi, 0x2a8(%r14)
jmp 0x50eb
addq $0x3, 0x2b0(%r14)
testl %ecx, %ecx
jle 0x5130
incl %ecx
movq 0x298(%r14), %rdi
movq 0x2a8(%r14), %rsi
leaq 0x1(%rdi), %r8
movq %r8, 0x298(%r14)
cmpq %rbx, %rsi
je 0x5122
movb (%rdi), %dil
leaq 0x1(%rsi), %r8
movq %r8, 0x2a8(%r14)
movb %dil, (%rsi)
jmp 0x5129
incq 0x2b0(%r14)
decl %ecx
cmpl $0x1, %ecx
jg 0x50f1
movb %dl, %al
leal 0x1(,%rax,2), %eax
movq 0x2a8(%r14), %rcx
cmpq %rbx, %rcx
je 0x5158
leaq 0x1(%rcx), %rdx
movq %rdx, 0x2a8(%r14)
movb $0x0, (%rcx)
jmp 0x5271
incq 0x2b0(%r14)
jmp 0x5271
incq 0x2b0(%r14)
movq 0x298(%r14), %rcx
movzbl (%rcx), %eax
cmpl $0x2d, %eax
je 0x51b3
testl %eax, %eax
je 0x522f
cmpl $0x5d, %eax
je 0x522f
leaq 0x1(%rcx), %rax
movq %rax, 0x298(%r14)
movq 0x2a8(%r14), %rax
cmpq %rbx, %rax
je 0x5164
movb (%rcx), %cl
leaq 0x1(%rax), %rdx
movq %rdx, 0x2a8(%r14)
movb %cl, (%rax)
jmp 0x516b
leaq 0x1(%rcx), %rax
movq %rax, 0x298(%r14)
movzbl 0x1(%rcx), %eax
cmpl $0x5d, %eax
je 0x51cb
testl %eax, %eax
jne 0x51e7
movq 0x2a8(%r14), %rax
cmpq %rbx, %rax
je 0x5164
leaq 0x1(%rax), %rcx
movq %rcx, 0x2a8(%r14)
movb $0x2d, (%rax)
jmp 0x516b
movzbl -0x1(%rcx), %ecx
cmpb %al, %cl
ja 0x56f3
cmpb %al, %cl
jae 0x5223
movq 0x2a8(%r14), %rdx
cmpq %rbx, %rdx
je 0x5216
leaq 0x1(%rdx), %rsi
movq %rsi, 0x2a8(%r14)
leal 0x1(%rcx), %esi
movb %sil, (%rdx)
jmp 0x521d
incq 0x2b0(%r14)
incl %ecx
cmpl %ecx, %eax
jne 0x51f7
incq 0x298(%r14)
jmp 0x516b
movq 0x2a8(%r14), %rax
cmpq %rbx, %rax
je 0x524b
leaq 0x1(%rax), %rcx
movq %rcx, 0x2a8(%r14)
movb $0x0, (%rax)
jmp 0x5252
incq 0x2b0(%r14)
movq 0x298(%r14), %rax
cmpb $0x5d, (%rax)
jne 0x53df
incq %rax
movq %rax, 0x298(%r14)
movl $0x3, %eax
testq %rbp, %rbp
je 0x56a7
movq 0x298(%r14), %rcx
movzbl (%rcx), %ecx
cmpq $0x3f, %rcx
ja 0x5314
movabsq $-0x7ffff40000000000, %rdx # imm = 0x80000C0000000000
btq %rcx, %rdx
jae 0x5314
testb $0x1, %al
sete %dl
cmpb $0x3f, %cl
setne %dil
leaq 0xfeaf(%rip), %rsi      # 0x15160
testb %dil, %dl
jne 0x569f
xorl %r15d, %r15d
cmpb $0x2b, %cl
setne %dl
cmpb $0x2a, %cl
jne 0x531c
movq 0x2a8(%r14), %rcx
testb $0x2, %al
jne 0x535b
cmpq %rbx, %rcx
je 0x5437
leaq 0x3(%rcx), %rax
movq %rax, 0x2a8(%r14)
cmpq %rbp, %rcx
jbe 0x5302
movb -0x1(%rcx), %al
movb %al, 0x2(%rcx)
leaq -0x1(%rcx), %rax
movq %rax, %rcx
cmpq %rbp, %rax
ja 0x52f0
movl %edx, %r12d
movw $0x6, (%rbp)
movb $0x0, 0x2(%rbp)
jmp 0x5442
movl %eax, %r12d
jmp 0x56a9
cmpb $0x2b, %cl
jne 0x5391
movq 0x2a8(%r14), %r12
testb $0x2, %al
jne 0x53ee
cmpq %rbx, %r12
movb %dl, 0x3(%rsp)
je 0x550f
movw $0x6, (%r12)
leaq 0x3(%r12), %rax
movb $0x0, 0x2(%r12)
movq %rax, 0x2a8(%r14)
jmp 0x5517
cmpq %rbx, %rcx
je 0x542a
leaq 0x3(%rcx), %rax
movq %rax, 0x2a8(%r14)
cmpq %rbp, %rcx
jbe 0x5386
movb -0x1(%rcx), %al
movb %al, 0x2(%rcx)
leaq -0x1(%rcx), %rax
movq %rax, %rcx
cmpq %rbp, %rax
ja 0x5374
movw $0xa, (%rbp)
jmp 0x5421
cmpb $0x3f, %cl
jne 0x565d
movq 0x2a8(%r14), %rax
cmpq %rbx, %rax
movb %dl, 0x3(%rsp)
je 0x5547
leaq 0x3(%rax), %rcx
movq %rcx, 0x2a8(%r14)
cmpq %rbp, %rax
jbe 0x53d0
movb -0x1(%rax), %cl
movb %cl, 0x2(%rax)
leaq -0x1(%rax), %rcx
movq %rcx, %rax
cmpq %rbp, %rcx
ja 0x53be
movw $0x6, (%rbp)
movb $0x0, 0x2(%rbp)
jmp 0x554f
movq %r14, %rdi
leaq 0xfdad(%rip), %rsi      # 0x15196
jmp 0x4eab
cmpq %rbx, %r12
je 0x542a
leaq 0x3(%r12), %rax
movq %rax, 0x2a8(%r14)
cmpq %rbp, %r12
jbe 0x541b
movb -0x1(%r12), %al
movb %al, 0x2(%r12)
leaq -0x1(%r12), %rax
movq %rax, %r12
cmpq %rbp, %rax
ja 0x5404
movw $0xb, (%rbp)
movb $0x0, 0x2(%rbp)
jmp 0x565d
addq $0x3, 0x2b0(%r14)
jmp 0x565d
movl %edx, %r12d
addq $0x3, 0x2b0(%r14)
movq 0x2a8(%r14), %rdx
cmpq %rbx, %rdx
je 0x5464
movw $0x7, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%r14)
jmp 0x546c
addq $0x3, 0x2b0(%r14)
cmpq %rbp, %rbx
je 0x549d
cmpb $0x6, (%rbp)
jne 0x5483
leaq 0x3(%rbp), %rsi
movq %r14, %rdi
callq 0x5750
cmpq %rbp, %rbx
je 0x549d
cmpb $0x6, (%rbp)
jne 0x549d
leaq 0x3(%rbp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x5750
movq 0x2a8(%r14), %rdx
cmpq %rbx, %rdx
je 0x54bf
movw $0x6, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%r14)
jmp 0x54c7
addq $0x3, 0x2b0(%r14)
movq %r14, %rdi
movq %rbp, %rsi
callq 0x5750
movq 0x2a8(%r14), %rdx
cmpq %rbx, %rdx
je 0x54f4
movw $0x9, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%r14)
jmp 0x54fc
addq $0x3, 0x2b0(%r14)
movq %r14, %rdi
movq %rbp, %rsi
callq 0x5750
movl %r12d, %edx
jmp 0x565d
addq $0x3, 0x2b0(%r14)
movq %r14, %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x5750
movq 0x2a8(%r14), %rsi
cmpq %rbx, %rsi
je 0x5571
movw $0x7, (%rsi)
leaq 0x3(%rsi), %rax
movb $0x0, 0x2(%rsi)
movq %rax, 0x2a8(%r14)
jmp 0x5579
addq $0x3, 0x2b0(%r14)
movq 0x2a8(%r14), %rdx
cmpq %rbx, %rdx
je 0x55a6
movw $0x6, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%r14)
jmp 0x55ae
addq $0x3, 0x2b0(%r14)
movq %r14, %rdi
movq %rbp, %rdx
callq 0x5750
movq 0x2a8(%r14), %rdx
cmpq %rbx, %rdx
je 0x55e0
movw $0x6, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%r14)
jmp 0x55e8
addq $0x3, 0x2b0(%r14)
movq %r14, %rdi
movq %rbp, %rsi
callq 0x5750
movq 0x2a8(%r14), %r12
cmpq %rbx, %r12
je 0x5615
movw $0x9, (%r12)
leaq 0x3(%r12), %rax
movb $0x0, 0x2(%r12)
movq %rax, 0x2a8(%r14)
jmp 0x561d
addq $0x3, 0x2b0(%r14)
movq %r14, %rdi
movq %r12, %rsi
callq 0x5750
movq 0x2a8(%r14), %rdx
cmpq %rbx, %rdx
je 0x5646
movw $0x9, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%r14)
jmp 0x564e
addq $0x3, 0x2b0(%r14)
movq %r14, %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x5750
cmpq %rbp, %rbx
movb 0x3(%rsp), %dl
je 0x565d
cmpb $0x6, (%rbp)
jne 0x565d
leaq 0x3(%rbp), %rsi
movq %r14, %rdi
movq %r12, %rdx
jmp 0x5654
addq $0x3, 0x2b0(%r14)
movq %r14, %rdi
movq %rbp, %rsi
callq 0x5750
movb 0x3(%rsp), %dl
movb %dl, %r15b
leal (%r15,%r15,2), %r12d
incl %r12d
movq 0x298(%r14), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x298(%r14)
movzbl 0x1(%rax), %eax
cmpq $0x3f, %rax
ja 0x56ec
movabsq $-0x7ffff40000000000, %rcx # imm = 0x80000C0000000000
btq %rax, %rcx
leaq 0xfae2(%rip), %rsi      # 0x1517a
movq 0x10(%rsp), %r15
jae 0x56a9
movq %r14, %rdi
callq 0x4220
xorl %ebp, %ebp
testq %rbp, %rbp
je 0x5735
movl %r12d, %eax
andl $0x1, %eax
orl (%r15), %eax
movl %eax, (%r15)
testq %r13, %r13
je 0x56d9
movq %r14, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x5750
movq %rbp, %r13
jmp 0x4d9d
movl %r12d, %ecx
andl $0x4, %ecx
orl %ecx, %eax
movl %eax, (%r15)
movq %rbp, %r13
jmp 0x4d9d
movq 0x10(%rsp), %r15
jmp 0x56a9
movq %r14, %rdi
leaq 0xfa88(%rip), %rsi      # 0x15185
jmp 0x4eab
testq %r13, %r13
je 0x570e
movq 0x8(%rsp), %rax
jmp 0x5741
movq 0x2a8(%r14), %rcx
cmpq %rbx, %rcx
movq 0x8(%rsp), %rax
je 0x5739
movw $0x9, (%rcx)
movb $0x0, 0x2(%rcx)
addq $0x3, %rcx
movq %rcx, 0x2a8(%r14)
jmp 0x5741
xorl %eax, %eax
jmp 0x5741
addq $0x3, 0x2b0(%r14)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq