// File: /workspace/github_cpp_makefile_star2_O3/arnoldrobbins[P]mcilroy-regex/sed1.cpp
// Function: yc(Text*, Text*)
void
yc(Text *script, Text *t)
{
	int i;
	int delim = *t->w++;
	uchar *s = script->w;
	uchar *p, *q;
	uchar c, d;
	if(delim == '\n' || delim=='\\')
		syntax("missing delimiter");
	assure(script, 256);
	for(i=0; i<256; i++) 
		s[i] = 0;
	for(q=t->w; *q!=delim; q++)
		if(*q == '\n')
			syntax("missing delimiter");
		else if(*q=='\\' && q[1]==delim)
			q++;
	for(p=t->w, q++; *p != delim; p++, q++) {
		if(*p=='\\' && p[1]==delim)
			p++;
		if(*q == '\n')
			syntax("missing delimiter");
		if(*q == delim)
			syntax("string lengths differ");
		if(*q=='\\' && q[1]==delim)
			q++;
		if(s[*p] && s[*p]!=*q)
			syntax("ambiguous map");
		if(s[*p])
			synwarn("redundant map");
		s[*p] = *q;
	}
	if(*q++ != delim)
		syntax("string lengths differ");
	for(i=0; i<256; i++)
		if(s[i] == 0)
			s[i] = i;
	t->w = q;
	script->w += 256;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r12
movq %rdi, %rbx
movq (%rsi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, (%rsi)
movzbl (%rax), %eax
movq (%rdi), %r15
cmpl $0x5c, %eax
movl %eax, 0x4(%rsp)
je 0x69f5
cmpl $0xa, %eax
jne 0x6a27
movq 0xcd5c(%rip), %r14      # 0x13758
movq %r14, %rdi
movl $0xa, %esi
callq 0x50c0
subq %r14, %rax
leaq 0x693b(%rip), %rdi      # 0xd34e
leaq 0x6892(%rip), %rsi      # 0xd2ac
movq %rax, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x589a
cmpq $0x0, 0x10(%rbx)
je 0x6a3e
movq $-0x101, %rax           # imm = 0xFEFF
addq 0x8(%rbx), %rax
cmpq %rax, (%rbx)
jb 0x6a4b
movq %rbx, %rdi
movl $0x100, %esi            # imm = 0x100
callq 0x5a81
movq %rbx, 0x10(%rsp)
movl $0x100, %edx            # imm = 0x100
movq %r15, %rdi
xorl %esi, %esi
callq 0x5100
movq %r12, 0x8(%rsp)
movq (%r12), %r12
movb (%r12), %al
movl 0x4(%rsp), %edx
cmpb %dl, %al
jne 0x6a7e
leaq 0x1(%r12), %rbp
jmp 0x6c34
leaq 0x68c9(%rip), %r14      # 0xd34e
leaq 0x6820(%rip), %rbx      # 0xd2ac
cmpb $0x5c, %al
je 0x6ac8
movzbl %al, %eax
cmpl $0xa, %eax
jne 0x6ad2
movq 0xccb9(%rip), %r13      # 0x13758
movq %r13, %rdi
movl $0xa, %esi
callq 0x50c0
subq %r13, %rax
movq %r14, %rdi
movq %rbx, %rsi
movq %rax, %rdx
movq %r13, %rcx
xorl %eax, %eax
callq 0x589a
movl 0x4(%rsp), %edx
jmp 0x6ad2
cmpb %dl, 0x1(%r12)
jne 0x6ad2
incq %r12
movq %r12, %rbp
incq %r12
movb 0x1(%rbp), %al
cmpb %dl, %al
jne 0x6a8c
movq 0x8(%rsp), %rax
movq (%rax), %r14
movb (%r14), %al
addq $0x2, %rbp
cmpb %dl, %al
je 0x6c34
leaq 0x6851(%rip), %r13      # 0xd34e
cmpb $0x5c, %al
jne 0x6b0a
cmpb %dl, 0x1(%r14)
jne 0x6b0a
incq %r14
movb (%rbp), %al
cmpb $0xa, %al
jne 0x6b46
movq 0xcc40(%rip), %rbx      # 0x13758
movq %rbx, %rdi
movl $0xa, %esi
callq 0x50c0
subq %rbx, %rax
movq %r13, %rdi
leaq 0x677a(%rip), %rsi      # 0xd2ac
movq %rax, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x589a
movl 0x4(%rsp), %edx
movb (%rbp), %al
cmpb %dl, %al
jne 0x6b7f
movq 0xcc07(%rip), %rbx      # 0x13758
movq %rbx, %rdi
movl $0xa, %esi
callq 0x50c0
subq %rbx, %rax
movq %r13, %rdi
leaq 0x6753(%rip), %rsi      # 0xd2be
movq %rax, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x589a
movl 0x4(%rsp), %edx
movb (%rbp), %al
cmpb $0x5c, %al
jne 0x6b8a
cmpb %dl, 0x2(%r12)
je 0x6b8f
movq %rbp, %r12
jmp 0x6b93
addq $0x2, %r12
movzbl (%r14), %eax
movb (%r15,%rax), %cl
testb %cl, %cl
je 0x6c18
cmpb (%r12), %cl
je 0x6be2
movq 0xcbac(%rip), %rbx      # 0x13758
movq %rbx, %rdi
movl $0xa, %esi
callq 0x50c0
subq %rbx, %rax
movq %r13, %rdi
leaq 0x670e(%rip), %rsi      # 0xd2d4
movq %rax, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x589a
movl 0x4(%rsp), %edx
movzbl (%r14), %eax
cmpb $0x0, (%r15,%rax)
je 0x6c18
movq 0xcb6f(%rip), %rbx      # 0x13758
movq %rbx, %rdi
movl $0xa, %esi
callq 0x50c0
subq %rbx, %rax
movq %r13, %rdi
leaq 0x66df(%rip), %rsi      # 0xd2e2
movq %rax, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x5320
movl 0x4(%rsp), %edx
movzbl (%r14), %eax
movb (%r12), %cl
movb %cl, (%r15,%rax)
leaq 0x1(%r12), %rbp
movb 0x1(%r14), %al
incq %r14
cmpb %dl, %al
jne 0x6afd
cmpb %dl, (%rbp)
je 0x6c6b
movq 0xcb18(%rip), %rbx      # 0x13758
movq %rbx, %rdi
movl $0xa, %esi
callq 0x50c0
subq %rbx, %rax
leaq 0x66f7(%rip), %rdi      # 0xd34e
leaq 0x6660(%rip), %rsi      # 0xd2be
movq %rax, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x589a
xorl %eax, %eax
pxor %xmm0, %xmm0
movdqu (%r15,%rax), %xmm1
pcmpeqb %xmm0, %xmm1
movd %xmm1, %ecx
testb $0x1, %cl
je 0x6c88
movb %al, (%r15,%rax)
movl %ecx, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0x6c9a
leal 0x1(%rax), %edx
movb %dl, 0x1(%r15,%rax)
movl %ecx, %edx
shrl $0x10, %edx
testb $0x1, %dl
je 0x6cac
leal 0x2(%rax), %edx
movb %dl, 0x2(%r15,%rax)
shrl $0x18, %ecx
testb $0x1, %cl
je 0x6cbc
leal 0x3(%rax), %ecx
movb %cl, 0x3(%r15,%rax)
pextrw $0x2, %xmm1, %ecx
testb $0x1, %cl
je 0x6cce
leal 0x4(%rax), %edx
movb %dl, 0x4(%r15,%rax)
shrl $0x8, %ecx
testb $0x1, %cl
je 0x6cde
leal 0x5(%rax), %ecx
movb %cl, 0x5(%r15,%rax)
pextrw $0x3, %xmm1, %ecx
testb $0x1, %cl
je 0x6cf0
leal 0x6(%rax), %edx
movb %dl, 0x6(%r15,%rax)
shrl $0x8, %ecx
testb $0x1, %cl
je 0x6d00
leal 0x7(%rax), %ecx
movb %cl, 0x7(%r15,%rax)
pextrw $0x4, %xmm1, %ecx
testb $0x1, %cl
je 0x6d12
leal 0x8(%rax), %edx
movb %dl, 0x8(%r15,%rax)
shrl $0x8, %ecx
testb $0x1, %cl
je 0x6d22
leal 0x9(%rax), %ecx
movb %cl, 0x9(%r15,%rax)
pextrw $0x5, %xmm1, %ecx
testb $0x1, %cl
je 0x6d34
leal 0xa(%rax), %edx
movb %dl, 0xa(%r15,%rax)
shrl $0x8, %ecx
testb $0x1, %cl
je 0x6d44
leal 0xb(%rax), %ecx
movb %cl, 0xb(%r15,%rax)
pextrw $0x6, %xmm1, %ecx
testb $0x1, %cl
je 0x6d56
leal 0xc(%rax), %edx
movb %dl, 0xc(%r15,%rax)
shrl $0x8, %ecx
testb $0x1, %cl
je 0x6d66
leal 0xd(%rax), %ecx
movb %cl, 0xd(%r15,%rax)
pextrw $0x7, %xmm1, %ecx
testb $0x1, %cl
je 0x6d78
leal 0xe(%rax), %edx
movb %dl, 0xe(%r15,%rax)
shrl $0x8, %ecx
testb $0x1, %cl
je 0x6d88
leal 0xf(%rax), %ecx
movb %cl, 0xf(%r15,%rax)
addq $0x10, %rax
cmpq $0x100, %rax            # imm = 0x100
jne 0x6c71
addq $0x2, %r12
movq 0x8(%rsp), %rax
movq %r12, (%rax)
movq 0x10(%rsp), %rax
addq $0x100, (%rax)          # imm = 0x100
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq