// File: /workspace/github_c_makefile_star2_O0/theovosse[P]llgen/regexp.c
// Function: chardenot
static char chardenot(char **rest, Boolean *special, Boolean callFromCharList) {
	char ch;

	if (**rest == '\0') {
		*special = false;
		return ('\0');
	}
	if (**rest == '\\') {
		(*rest)++;
		switch (**rest) {
			case '0':
				*special = false;
				ch = '\0';
				break;
			case 't':
				*special = false;
				ch = '\t';
				break;
			case 'n':
				*special = false;
				ch = '\n';
				break;
			case 'r':
				*special = false;
				ch = '\r';
				break;
			default:
				ch = **rest;
				if (viMode) {
					*special = false;
				} else {
					*special = ch != '\\';
				}
				break;
		}
		(*rest)++;
		return (ch);
	}
	ch = *(*rest)++;
	if (viMode) {
		*special = (!callFromCharList && strchr("()[|*+?.", ch) != NULL) || (callFromCharList && strchr("^-]", ch) != NULL);
	} else {
		*special = false;
	}
	return (ch);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %dx, %ax
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movw %ax, -0x1a(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x15e88
movq -0x18(%rbp), %rax
movw $0x0, (%rax)
movb $0x0, -0x1(%rbp)
jmp 0x16001
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x5c, %eax
jne 0x15f6b
movq -0x10(%rbp), %rax
movq (%rax), %rcx
incq %rcx
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
movl %eax, -0x20(%rbp)
subl $0x30, %eax
je 0x15eda
jmp 0x15ebc
movl -0x20(%rbp), %eax
subl $0x6e, %eax
je 0x15ef8
jmp 0x15ec6
movl -0x20(%rbp), %eax
subl $0x72, %eax
je 0x15f07
jmp 0x15ed0
movl -0x20(%rbp), %eax
subl $0x74, %eax
je 0x15ee9
jmp 0x15f16
movq -0x18(%rbp), %rax
movw $0x0, (%rax)
movb $0x0, -0x1b(%rbp)
jmp 0x15f52
movq -0x18(%rbp), %rax
movw $0x0, (%rax)
movb $0x9, -0x1b(%rbp)
jmp 0x15f52
movq -0x18(%rbp), %rax
movw $0x0, (%rax)
movb $0xa, -0x1b(%rbp)
jmp 0x15f52
movq -0x18(%rbp), %rax
movw $0x0, (%rax)
movb $0xd, -0x1b(%rbp)
jmp 0x15f52
movq -0x10(%rbp), %rax
movq (%rax), %rax
movb (%rax), %al
movb %al, -0x1b(%rbp)
cmpw $0x0, 0xcfc6(%rip)      # 0x22ef0
je 0x15f37
movq -0x18(%rbp), %rax
movw $0x0, (%rax)
jmp 0x15f50
movsbl -0x1b(%rbp), %eax
cmpl $0x5c, %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, (%rax)
jmp 0x15f52
movq -0x10(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movb -0x1b(%rbp), %al
movb %al, -0x1(%rbp)
jmp 0x16001
movq -0x10(%rbp), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, (%rcx)
movb (%rax), %al
movb %al, -0x1b(%rbp)
cmpw $0x0, 0xcf67(%rip)      # 0x22ef0
je 0x15ff2
cmpw $0x0, -0x1a(%rbp)
jne 0x15fb0
movsbl -0x1b(%rbp), %esi
leaq 0x5414(%rip), %rdi      # 0x1b3b1
callq 0x30d0
movq %rax, %rcx
movb $0x1, %al
cmpq $0x0, %rcx
movb %al, -0x21(%rbp)
jne 0x15fde
movswl -0x1a(%rbp), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x22(%rbp)
je 0x15fd8
movsbl -0x1b(%rbp), %esi
leaq 0x53f1(%rip), %rdi      # 0x1b3ba
callq 0x30d0
cmpq $0x0, %rax
setne %al
movb %al, -0x22(%rbp)
movb -0x22(%rbp), %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, (%rax)
jmp 0x15ffb
movq -0x18(%rbp), %rax
movw $0x0, (%rax)
movb -0x1b(%rbp), %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)