// File: /workspace/github_c_makefile_star2_O3/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 $0x28, %rsp
movq %rsi, %r15
movq %rdi, %rbx
movl $0x0, (%rsi)
movq 0x2a8(%rdi), %rcx
leaq 0x2a4(%rdi), %r14
cmpq %r14, %rcx
movq %rcx, 0x20(%rsp)
je 0x4d9b
movw $0x6, (%rcx)
leaq 0x3(%rcx), %rax
movb $0x0, 0x2(%rcx)
movq %rax, 0x2a8(%rbx)
jmp 0x4da3
addq $0x3, 0x2b0(%rbx)
movabsq $-0x7ffff40000000000, %r12 # imm = 0x80000C0000000000
xorl %r13d, %r13d
movq %r15, 0x10(%rsp)
movq 0x298(%rbx), %rbp
movzbl (%rbp), %eax
testl %eax, %eax
je 0x563d
cmpl $0x29, %eax
je 0x563d
cmpl $0x7c, %eax
je 0x563d
leaq 0x1(%rbp), %rax
movq %rax, 0x298(%rbx)
movzbl (%rbp), %ecx
cmpl $0x5a, %ecx
jg 0x4e22
leal -0x24(%rcx), %eax
cmpl $0xa, %eax
ja 0x4fdb
leaq 0xf1ff(%rip), %rcx      # 0x14000
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x2a8(%rbx), %rbp
cmpq %r14, %rbp
je 0x4f37
movw $0x2, (%rbp)
jmp 0x4e92
cmpl $0x5d, %ecx
jg 0x4e73
cmpl $0x5b, %ecx
je 0x4f01
cmpl $0x5c, %ecx
jne 0x4ff6
cmpb $0x0, (%rax)
je 0x56a0
movq 0x2a8(%rbx), %rbp
cmpq %r14, %rbp
je 0x4f7d
movw $0x8, (%rbp)
leaq 0x3(%rbp), %rcx
movb $0x0, 0x2(%rbp)
movq %rcx, 0x2a8(%rbx)
movq 0x298(%rbx), %rax
jmp 0x4f88
cmpl $0x5e, %ecx
jne 0x4fed
movq 0x2a8(%rbx), %rbp
cmpq %r14, %rbp
je 0x4f37
movw $0x1, (%rbp)
leaq 0x3(%rbp), %rax
movb $0x0, 0x2(%rbp)
movq %rax, 0x2a8(%rbx)
xorl %ecx, %ecx
jmp 0x5246
movq %rbx, %rdi
movl $0x1, %esi
leaq 0xc(%rsp), %rdx
callq 0x4970
testq %rax, %rax
je 0x56c1
movq %rax, %rbp
movl 0xc(%rsp), %ecx
andl $0x5, %ecx
jmp 0x5246
movq 0x2a8(%rbx), %rbp
cmpq %r14, %rbp
je 0x4f70
movw $0x3, (%rbp)
leaq 0x3(%rbp), %rax
movb $0x0, 0x2(%rbp)
movq %rax, 0x2a8(%rbx)
movl $0x3, %ecx
jmp 0x5246
cmpb $0x5e, (%rax)
movq 0x2a8(%rbx), %rbp
jne 0x4f46
cmpq %r14, %rbp
je 0x50eb
movw $0x5, (%rbp)
leaq 0x3(%rbp), %rcx
movb $0x0, 0x2(%rbp)
movq %rcx, 0x2a8(%rbx)
movq 0x298(%rbx), %rax
jmp 0x50f6
addq $0x3, 0x2b0(%rbx)
xorl %ecx, %ecx
jmp 0x523d
cmpq %r14, %rbp
je 0x5102
movw $0x4, (%rbp)
leaq 0x3(%rbp), %rcx
movb $0x0, 0x2(%rbp)
movq %rcx, 0x2a8(%rbx)
movq 0x298(%rbx), %rax
jmp 0x510d
addq $0x3, 0x2b0(%rbx)
jmp 0x5238
addq $0x3, 0x2b0(%rbx)
movq %rbp, %rcx
leaq 0x1(%rax), %rdx
movq %rdx, 0x298(%rbx)
cmpq %r14, %rcx
je 0x4fb0
movb (%rax), %al
leaq 0x1(%rcx), %rdx
movq %rdx, 0x2a8(%rbx)
movb %al, (%rcx)
movq 0x2a8(%rbx), %rcx
jmp 0x4fb7
incq 0x2b0(%rbx)
cmpq %r14, %rcx
je 0x4fcf
leaq 0x1(%rcx), %rax
movq %rax, 0x2a8(%rbx)
movb $0x0, (%rcx)
jmp 0x5238
incq 0x2b0(%rbx)
jmp 0x5238
testl %ecx, %ecx
je 0x5697
cmpl $0x3f, %ecx
jne 0x4ff6
jmp 0x568e
cmpl $0x7c, %ecx
je 0x5697
movq %rbp, 0x298(%rbx)
movq %rbp, %rdi
leaq 0xf1c8(%rip), %rsi      # 0x141cf
callq 0x42e0
testl %eax, %eax
jle 0x56a9
cmpl $0x1, %eax
jne 0x5025
movl $0x3, %ecx
movl $0x1, %eax
jmp 0x5054
movl %eax, %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movzbl (%rbp,%rcx), %edx
movl $0x1, %ecx
cmpq $0x3f, %rdx
ja 0x5054
btq %rdx, %r12
jae 0x5054
decl %eax
xorl %ecx, %ecx
cmpl $0x1, %eax
sete %cl
leal 0x1(,%rcx,2), %ecx
movq 0x2a8(%rbx), %rbp
cmpq %r14, %rbp
je 0x5077
movw $0x8, (%rbp)
leaq 0x3(%rbp), %rdx
movb $0x0, 0x2(%rbp)
movq %rdx, 0x2a8(%rbx)
jmp 0x507f
addq $0x3, 0x2b0(%rbx)
incl %eax
movq 0x298(%rbx), %rsi
movq 0x2a8(%rbx), %rdx
leaq 0x1(%rsi), %rdi
movq %rdi, 0x298(%rbx)
cmpq %r14, %rdx
je 0x50b2
movb (%rsi), %sil
leaq 0x1(%rdx), %rdi
movq %rdi, 0x2a8(%rbx)
movb %sil, (%rdx)
jmp 0x50b9
incq 0x2b0(%rbx)
decl %eax
cmpl $0x1, %eax
jg 0x5081
movq 0x2a8(%rbx), %rax
cmpq %r14, %rax
je 0x50df
leaq 0x1(%rax), %rdx
movq %rdx, 0x2a8(%rbx)
movb $0x0, (%rax)
jmp 0x523d
incq 0x2b0(%rbx)
jmp 0x523d
addq $0x3, 0x2b0(%rbx)
movq %rbp, %rcx
incq %rax
movq %rax, 0x298(%rbx)
jmp 0x510d
addq $0x3, 0x2b0(%rbx)
movq %rbp, %rcx
movzbl (%rax), %edx
cmpl $0x5d, %edx
je 0x511a
cmpl $0x2d, %edx
jne 0x5142
leaq 0x1(%rax), %rdx
movq %rdx, 0x298(%rbx)
cmpq %r14, %rcx
je 0x513b
movb (%rax), %al
leaq 0x1(%rcx), %rdx
movq %rdx, 0x2a8(%rbx)
movb %al, (%rcx)
jmp 0x5142
incq 0x2b0(%rbx)
movq 0x298(%rbx), %rax
movzbl (%rax), %ecx
cmpl $0x2d, %ecx
jne 0x51db
leaq 0x1(%rax), %rdx
movq %rdx, 0x298(%rbx)
movzbl 0x1(%rax), %ecx
cmpl $0x5d, %ecx
je 0x516d
testl %ecx, %ecx
jne 0x5189
movq 0x2a8(%rbx), %rax
cmpq %r14, %rax
je 0x513b
leaq 0x1(%rax), %rcx
movq %rcx, 0x2a8(%rbx)
movb $0x2d, (%rax)
jmp 0x5142
movzbl -0x1(%rax), %eax
cmpb %cl, %al
ja 0x567b
cmpb %cl, %al
jae 0x51cc
movq 0x2a8(%rbx), %rdx
cmpq %r14, %rdx
je 0x51b8
leaq 0x1(%rdx), %rsi
movq %rsi, 0x2a8(%rbx)
leal 0x1(%rax), %esi
movb %sil, (%rdx)
jmp 0x51bf
incq 0x2b0(%rbx)
incl %eax
cmpl %eax, %ecx
jne 0x5199
movq 0x298(%rbx), %rdx
incq %rdx
movq %rdx, 0x298(%rbx)
jmp 0x5142
testl %ecx, %ecx
je 0x51fb
cmpl $0x5d, %ecx
je 0x51fb
leaq 0x1(%rax), %rcx
movq %rcx, 0x298(%rbx)
movq 0x2a8(%rbx), %rcx
jmp 0x5125
movq 0x2a8(%rbx), %rcx
cmpq %r14, %rcx
je 0x521e
leaq 0x1(%rcx), %rax
movq %rax, 0x2a8(%rbx)
movb $0x0, (%rcx)
movq 0x298(%rbx), %rax
jmp 0x5225
incq 0x2b0(%rbx)
cmpb $0x5d, (%rax)
jne 0x56b2
incq %rax
movq %rax, 0x298(%rbx)
movl $0x3, %ecx
testq %rbp, %rbp
je 0x56c1
movq 0x298(%rbx), %rax
movzbl (%rax), %eax
cmpq $0x3f, %rax
ja 0x55cf
btq %rax, %r12
jae 0x55cf
cmpb $0x3f, %al
sete %dl
orb %cl, %dl
testb $0x1, %dl
je 0x5672
movq %r13, 0x18(%rsp)
xorl %r12d, %r12d
cmpb $0x2b, %al
setne %r13b
cmpb $0x2a, %al
jne 0x52d3
movq 0x2a8(%rbx), %rdx
testb $0x2, %cl
jne 0x530b
cmpq %r14, %rdx
je 0x53d3
leaq 0x3(%rdx), %rax
movq %rax, 0x2a8(%rbx)
cmpq %rbp, %rdx
jbe 0x52bd
movb -0x1(%rdx), %al
movb %al, 0x2(%rdx)
leaq -0x1(%rdx), %rax
movq %rax, %rdx
cmpq %rbp, %rax
ja 0x52ab
movw $0x6, (%rbp)
movb $0x0, 0x2(%rbp)
movq 0x2a8(%rbx), %rdx
jmp 0x53db
cmpb $0x2b, %al
jne 0x533e
movq 0x2a8(%rbx), %r15
testb $0x2, %cl
jne 0x538e
cmpq %r14, %r15
je 0x5461
movw $0x6, (%r15)
leaq 0x3(%r15), %rax
movb $0x0, 0x2(%r15)
movq %rax, 0x2a8(%rbx)
jmp 0x5469
cmpq %r14, %rdx
je 0x53c6
leaq 0x3(%rdx), %rax
movq %rax, 0x2a8(%rbx)
cmpq %rbp, %rdx
jbe 0x5336
movb -0x1(%rdx), %al
movb %al, 0x2(%rdx)
leaq -0x1(%rdx), %rax
movq %rax, %rdx
cmpq %rbp, %rax
ja 0x5324
movw $0xa, (%rbp)
jmp 0x53bd
cmpb $0x3f, %al
jne 0x5577
movq 0x2a8(%rbx), %rdx
cmpq %r14, %rdx
je 0x5499
leaq 0x3(%rdx), %rax
movq %rax, 0x2a8(%rbx)
cmpq %rbp, %rdx
jbe 0x5378
movb -0x1(%rdx), %al
movb %al, 0x2(%rdx)
leaq -0x1(%rdx), %rax
movq %rax, %rdx
cmpq %rbp, %rax
ja 0x5366
movw $0x6, (%rbp)
movb $0x0, 0x2(%rbp)
movq 0x2a8(%rbx), %rdx
jmp 0x54a1
cmpq %r14, %r15
je 0x53c6
leaq 0x3(%r15), %rax
movq %rax, 0x2a8(%rbx)
cmpq %rbp, %r15
jbe 0x53b7
movb -0x1(%r15), %al
movb %al, 0x2(%r15)
leaq -0x1(%r15), %rax
movq %rax, %r15
cmpq %rbp, %rax
ja 0x53a3
movw $0xb, (%rbp)
movb $0x0, 0x2(%rbp)
jmp 0x5577
addq $0x3, 0x2b0(%rbx)
jmp 0x5577
addq $0x3, 0x2b0(%rbx)
cmpq %r14, %rdx
je 0x53f6
movw $0x7, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%rbx)
jmp 0x53fe
addq $0x3, 0x2b0(%rbx)
cmpq %rbp, %r14
je 0x542c
cmpb $0x6, (%rbp)
jne 0x542c
leaq 0x3(%rbp), %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0x56d2
cmpb $0x6, (%rbp)
jne 0x542c
movq %rbx, %rdi
movq %r15, %rsi
movq %rbp, %rdx
callq 0x56d2
movq 0x2a8(%rbx), %rdx
cmpq %r14, %rdx
je 0x544e
movw $0x6, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%rbx)
jmp 0x5456
addq $0x3, 0x2b0(%rbx)
movq %rbx, %rdi
movq %rbp, %rsi
jmp 0x553d
addq $0x3, 0x2b0(%rbx)
movq %rbx, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x56d2
movq 0x2a8(%rbx), %rsi
cmpq %r14, %rsi
je 0x54bc
movw $0x7, (%rsi)
leaq 0x3(%rsi), %rax
movb $0x0, 0x2(%rsi)
movq %rax, 0x2a8(%rbx)
jmp 0x54c4
addq $0x3, 0x2b0(%rbx)
cmpq %r14, %rdx
je 0x54f1
movw $0x6, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%rbx)
jmp 0x54f9
addq $0x3, 0x2b0(%rbx)
movq %rbx, %rdi
movq %rbp, %rdx
callq 0x56d2
movq 0x2a8(%rbx), %rdx
cmpq %r14, %rdx
je 0x552f
movw $0x6, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%rbx)
jmp 0x5537
addq $0x3, 0x2b0(%rbx)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x56d2
movq 0x2a8(%rbx), %r15
cmpq %r14, %r15
je 0x5605
movw $0x9, (%r15)
leaq 0x3(%r15), %rax
movb $0x0, 0x2(%r15)
movq %rax, 0x2a8(%rbx)
jmp 0x560d
addq $0x3, 0x2b0(%rbx)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x56d2
movq 0x2a8(%rbx), %rdx
cmpq %r14, %rdx
je 0x5564
movw $0x9, (%rdx)
leaq 0x3(%rdx), %rax
movb $0x0, 0x2(%rdx)
movq %rax, 0x2a8(%rbx)
jmp 0x556c
addq $0x3, 0x2b0(%rbx)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x56d2
movb %r13b, %r12b
leal (%r12,%r12,2), %ecx
incl %ecx
movq 0x298(%rbx), %rax
leaq 0x1(%rax), %rdx
movq %rdx, 0x298(%rbx)
movzbl 0x1(%rax), %eax
cmpq $0x3f, %rax
ja 0x55bb
movabsq $-0x7ffff40000000000, %r12 # imm = 0x80000C0000000000
btq %rax, %r12
movq 0x10(%rsp), %r15
movq 0x18(%rsp), %r13
jae 0x55cf
jmp 0x5669
movq 0x10(%rsp), %r15
movabsq $-0x7ffff40000000000, %r12 # imm = 0x80000C0000000000
movq 0x18(%rsp), %r13
movl %ecx, %eax
andl $0x1, %eax
orl (%r15), %eax
movl %eax, (%r15)
testq %r13, %r13
je 0x55f5
movq %rbx, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x56d2
movq %rbp, %r13
jmp 0x4db5
andl $-0x4, %ecx
orl %ecx, %eax
movl %eax, (%r15)
movq %rbp, %r13
jmp 0x4db5
addq $0x3, 0x2b0(%rbx)
movq %rbx, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x56d2
cmpq %rbp, %r14
je 0x5577
cmpb $0x6, (%rbp)
jne 0x5577
leaq 0x3(%rbp), %rsi
movq %rbx, %rdi
movq %r15, %rdx
jmp 0x5572
testq %r13, %r13
movq 0x20(%rsp), %rax
jne 0x56c3
movq 0x2a8(%rbx), %rcx
cmpq %r14, %rcx
je 0x5684
movw $0x9, (%rcx)
movb $0x0, 0x2(%rcx)
addq $0x3, %rcx
movq %rcx, 0x2a8(%rbx)
jmp 0x56c3
leaq 0xeb0a(%rip), %rsi      # 0x1417a
jmp 0x56b9
leaq 0xeae7(%rip), %rsi      # 0x14160
jmp 0x56b9
leaq 0xeb03(%rip), %rsi      # 0x14185
jmp 0x56b9
addq $0x3, 0x2b0(%rbx)
jmp 0x56c3
leaq 0xeb1b(%rip), %rsi      # 0x141b0
jmp 0x56b9
leaq 0xeb05(%rip), %rsi      # 0x141a3
jmp 0x56b9
leaq 0xeb1d(%rip), %rsi      # 0x141c4
jmp 0x56b9
leaq 0xeb2b(%rip), %rsi      # 0x141db
jmp 0x56b9
leaq 0xeadd(%rip), %rsi      # 0x14196
movq %rbx, %rdi
callq 0x4220
xorl %eax, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq