// File: /workspace/github_cpp_makefile_star2_O1/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 %rdi, %r14
movq (%rsi), %rax
leaq 0x1(%rax), %rcx
movq %rsi, 0x8(%rsp)
movq %rcx, (%rsi)
movzbl (%rax), %ebp
movq (%rdi), %r15
cmpl $0x5c, %ebp
je 0x69fb
cmpl $0xa, %ebp
jne 0x6a2d
movq 0xcd56(%rip), %rbx      # 0x13758
movq %rbx, %rdi
movl $0xa, %esi
callq 0x50c0
subq %rbx, %rax
leaq 0x6938(%rip), %rdi      # 0xd351
leaq 0x688f(%rip), %rsi      # 0xd2af
movq %rax, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x5899
cmpq $0x0, 0x10(%r14)
je 0x6a44
movq $-0x101, %rax           # imm = 0xFEFF
addq 0x8(%r14), %rax
cmpq %rax, (%r14)
jb 0x6a51
movq %r14, %rdi
movl $0x100, %esi            # imm = 0x100
callq 0x5a80
movq %r14, 0x10(%rsp)
movl $0x100, %edx            # imm = 0x100
movq %r15, %rdi
xorl %esi, %esi
callq 0x5100
movq 0x8(%rsp), %rax
movq (%rax), %rbx
movb (%rbx), %al
cmpb %bpl, %al
je 0x6ace
leaq 0x68d6(%rip), %r14      # 0xd351
leaq 0x682d(%rip), %r12      # 0xd2af
cmpb $0x5c, %al
je 0x6aba
movzbl %al, %eax
cmpl $0xa, %eax
jne 0x6ac3
movq 0xccc3(%rip), %r13      # 0x13758
movq %r13, %rdi
movl $0xa, %esi
callq 0x50c0
subq %r13, %rax
movq %r14, %rdi
movq %r12, %rsi
movq %rax, %rdx
movq %r13, %rcx
xorl %eax, %eax
callq 0x5899
jmp 0x6ac3
cmpb %bpl, 0x1(%rbx)
jne 0x6ac3
incq %rbx
movb 0x1(%rbx), %al
incq %rbx
cmpb %bpl, %al
jne 0x6a82
movq 0x8(%rsp), %rax
movq (%rax), %r13
movb (%r13), %al
cmpb %bpl, %al
je 0x6c19
leaq 0x1(%rbx), %r12
cmpb $0x5c, %al
jne 0x6af4
cmpb %bpl, 0x1(%r13)
jne 0x6af4
incq %r13
cmpb $0xa, 0x1(%rbx)
jne 0x6b2c
movq 0xcc57(%rip), %r14      # 0x13758
movq %r14, %rdi
movl $0xa, %esi
callq 0x50c0
subq %r14, %rax
leaq 0x6839(%rip), %rdi      # 0xd351
leaq 0x6790(%rip), %rsi      # 0xd2af
movq %rax, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x5899
cmpb %bpl, 0x1(%rbx)
jne 0x6b64
movq 0xcc1f(%rip), %r14      # 0x13758
movq %r14, %rdi
movl $0xa, %esi
callq 0x50c0
subq %r14, %rax
leaq 0x6801(%rip), %rdi      # 0xd351
leaq 0x676a(%rip), %rsi      # 0xd2c1
movq %rax, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x5899
cmpb $0x5c, 0x1(%rbx)
jne 0x6b70
cmpb %bpl, 0x2(%rbx)
je 0x6b75
movq %r12, %rbx
jmp 0x6b79
addq $0x2, %rbx
movzbl (%r13), %eax
movb (%r15,%rax), %al
testb %al, %al
je 0x6bbc
cmpb (%rbx), %al
je 0x6bbc
movq 0xcbc7(%rip), %r14      # 0x13758
movq %r14, %rdi
movl $0xa, %esi
callq 0x50c0
subq %r14, %rax
leaq 0x67a9(%rip), %rdi      # 0xd351
leaq 0x6728(%rip), %rsi      # 0xd2d7
movq %rax, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x5899
movzbl (%r13), %eax
cmpb $0x0, (%r15,%rax)
je 0x6bfa
movq 0xcb89(%rip), %r14      # 0x13758
movq %r14, %rdi
movl $0xa, %esi
callq 0x50c0
subq %r14, %rax
leaq 0x676b(%rip), %rdi      # 0xd351
leaq 0x66f8(%rip), %rsi      # 0xd2e5
movq %rax, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x5320
movb (%rbx), %al
movzbl (%r13), %ecx
movb %al, (%r15,%rcx)
leaq 0x1(%rbx), %r12
movb 0x1(%r13), %al
incq %r13
cmpb %bpl, %al
jne 0x6ae7
cmpb %bpl, 0x1(%rbx)
je 0x6c51
movq 0xcb32(%rip), %r14      # 0x13758
movq %r14, %rdi
movl $0xa, %esi
callq 0x50c0
subq %r14, %rax
leaq 0x6714(%rip), %rdi      # 0xd351
leaq 0x667d(%rip), %rsi      # 0xd2c1
movq %rax, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x5899
xorl %eax, %eax
movq 0x10(%rsp), %rcx
cmpb $0x0, (%r15,%rax)
jne 0x6c63
movb %al, (%r15,%rax)
incq %rax
cmpq $0x100, %rax            # imm = 0x100
jne 0x6c58
addq $0x2, %rbx
movq 0x8(%rsp), %rax
movq %rbx, (%rax)
addq $0x100, (%rcx)          # imm = 0x100
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq