// File: /workspace/github_c_makefile_star2_O1/darwin-on-arm[P]darwin-sdk/developer_cmds/unifdef/unifdef.c
// Function: skipcomment
static const char *
skipcomment(const char *cp)
{
	if (text || ignoring[depth]) {
		for (; isspace((unsigned char)*cp); cp++)
			if (*cp == '\n')
				linestate = LS_START;
		return (cp);
	}
	while (*cp != '\0')
		/* don't reset to LS_START after a line continuation */
		if (strncmp(cp, "\\\r\n", 3) == 0)
			cp += 3;
		else if (strncmp(cp, "\\\n", 2) == 0)
			cp += 2;
		else switch (incomment) {
		case NO_COMMENT:
			if (strncmp(cp, "/\\\r\n", 4) == 0) {
				incomment = STARTING_COMMENT;
				cp += 4;
			} else if (strncmp(cp, "/\\\n", 3) == 0) {
				incomment = STARTING_COMMENT;
				cp += 3;
			} else if (strncmp(cp, "/*", 2) == 0) {
				incomment = C_COMMENT;
				cp += 2;
			} else if (strncmp(cp, "//", 2) == 0) {
				incomment = CXX_COMMENT;
				cp += 2;
			} else if (strncmp(cp, "\'", 1) == 0) {
				incomment = CHAR_LITERAL;
				linestate = LS_DIRTY;
				cp += 1;
			} else if (strncmp(cp, "\"", 1) == 0) {
				incomment = STRING_LITERAL;
				linestate = LS_DIRTY;
				cp += 1;
			} else if (strncmp(cp, "\n", 1) == 0) {
				linestate = LS_START;
				cp += 1;
			} else if (strchr(" \r\t", *cp) != NULL) {
				cp += 1;
			} else
				return (cp);
			continue;
		case CXX_COMMENT:
			if (strncmp(cp, "\n", 1) == 0) {
				incomment = NO_COMMENT;
				linestate = LS_START;
			}
			cp += 1;
			continue;
		case CHAR_LITERAL:
		case STRING_LITERAL:
			if ((incomment == CHAR_LITERAL && cp[0] == '\'') ||
			    (incomment == STRING_LITERAL && cp[0] == '\"')) {
				incomment = NO_COMMENT;
				cp += 1;
			} else if (cp[0] == '\\') {
				if (cp[1] == '\0')
					cp += 1;
				else
					cp += 2;
			} else if (strncmp(cp, "\n", 1) == 0) {
				if (incomment == CHAR_LITERAL)
					error("unterminated char literal");
				else
					error("unterminated string literal");
			} else
				cp += 1;
			continue;
		case C_COMMENT:
			if (strncmp(cp, "*\\\r\n", 4) == 0) {
				incomment = FINISHING_COMMENT;
				cp += 4;
			} else if (strncmp(cp, "*\\\n", 3) == 0) {
				incomment = FINISHING_COMMENT;
				cp += 3;
			} else if (strncmp(cp, "*/", 2) == 0) {
				incomment = NO_COMMENT;
				cp += 2;
			} else
				cp += 1;
			continue;
		case STARTING_COMMENT:
			if (*cp == '*') {
				incomment = C_COMMENT;
				cp += 1;
			} else if (*cp == '/') {
				incomment = CXX_COMMENT;
				cp += 1;
			} else {
				incomment = NO_COMMENT;
				linestate = LS_DIRTY;
			}
			continue;
		case FINISHING_COMMENT:
			if (*cp == '/') {
				incomment = NO_COMMENT;
				cp += 1;
			} else
				incomment = C_COMMENT;
			continue;
		default:
			abort(); /* bug */
		}
	return (cp);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpb $0x0, 0x514a(%rip)      # 0x9182
jne 0x404e
movslq 0x627f(%rip), %rax      # 0xa2c0
leaq 0x103c8(%rip), %rcx     # 0x14410
cmpb $0x0, (%rax,%rcx)
je 0x407c
callq 0x3290
movq (%rax), %rax
movzbl (%rbx), %ecx
testb $0x20, 0x1(%rax,%rcx,2)
je 0x43bc
cmpb $0xa, %cl
jne 0x4073
movl $0x0, 0x7279(%rip)      # 0xb2ec
movzbl 0x1(%rbx), %ecx
incq %rbx
jmp 0x4059
movb (%rbx), %bpl
testb %bpl, %bpl
je 0x43bc
movl 0x7259(%rip), %r12d     # 0xb2e8
leaq 0x23a4(%rip), %r14      # 0x643a
leaq 0x23a2(%rip), %r15      # 0x643f
leaq 0x201c(%rip), %r13      # 0x60c0
movl $0x3, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3070
testl %eax, %eax
je 0x411d
movl $0x2, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3070
testl %eax, %eax
je 0x4304
movl %r12d, %eax
movslq (%r13,%rax,4), %rax
addq %r13, %rax
jmpq *%rax
cmpl $0x5, %r12d
sete %al
cmpb $0x27, %bpl
sete %cl
testb %al, %cl
jne 0x4130
cmpl $0x6, %r12d
setne %al
cmpb $0x22, %bpl
setne %cl
orb %al, %cl
je 0x4130
cmpb $0x5c, %bpl
je 0x42fa
movzbl %bpl, %eax
cmpl $0xa, %eax
jne 0x43ad
jmp 0x43ce
addq $0x3, %rbx
jmp 0x43b0
cmpb $0x2f, %bpl
jne 0x42a3
movl $0x0, 0x71ae(%rip)      # 0xb2e8
incq %rbx
xorl %r12d, %r12d
jmp 0x43b0
cmpb $0xa, %bpl
jne 0x43ad
xorl %r12d, %r12d
movl %r12d, 0x718f(%rip)     # 0xb2e8
movl %r12d, 0x718c(%rip)     # 0xb2ec
jmp 0x43ad
cmpb $0x2f, %bpl
je 0x42d2
movzbl %bpl, %eax
cmpl $0x2a, %eax
jne 0x42e1
movl $0x1, 0x7162(%rip)      # 0xb2e8
incq %rbx
jmp 0x434a
movl $0x4, %edx
movq %rbx, %rdi
leaq 0x2253(%rip), %rsi      # 0x63f0
callq 0x3070
testl %eax, %eax
je 0x42b2
movl $0x3, %edx
movq %rbx, %rdi
leaq 0x223c(%rip), %rsi      # 0x63f5
callq 0x3070
testl %eax, %eax
je 0x430d
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x2224(%rip), %rsi      # 0x63f9
callq 0x3070
testl %eax, %eax
je 0x433c
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x220b(%rip), %rsi      # 0x63fc
callq 0x3070
testl %eax, %eax
je 0x4352
cmpb $0xa, %bpl
je 0x4387
movzbl %bpl, %eax
cmpl $0x22, %eax
je 0x4368
cmpl $0x27, %eax
jne 0x4393
movl $0x5, 0x70c0(%rip)      # 0xb2e8
movl $0x2, 0x70ba(%rip)      # 0xb2ec
incq %rbx
movl $0x5, %r12d
jmp 0x43b0
movl $0x4, %edx
movq %rbx, %rdi
leaq 0x21ea(%rip), %rsi      # 0x6439
callq 0x3070
testl %eax, %eax
je 0x42c2
movl $0x3, %edx
movq %rbx, %rdi
leaq 0x21d7(%rip), %rsi      # 0x643e
callq 0x3070
testl %eax, %eax
je 0x4326
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x21bf(%rip), %rsi      # 0x6442
callq 0x3070
testl %eax, %eax
jne 0x43ad
movl $0x0, 0x704e(%rip)      # 0xb2e8
addq $0x2, %rbx
jmp 0x413d
movl $0x1, 0x703b(%rip)      # 0xb2e8
jmp 0x434a
movl $0x3, 0x702c(%rip)      # 0xb2e8
addq $0x4, %rbx
jmp 0x431b
movl $0x4, 0x701c(%rip)      # 0xb2e8
addq $0x4, %rbx
jmp 0x4334
movl $0x2, 0x700c(%rip)      # 0xb2e8
incq %rbx
jmp 0x4360
movl $0x0, 0x6ffd(%rip)      # 0xb2e8
movl $0x2, 0x6ff7(%rip)      # 0xb2ec
jmp 0x413d
cmpb $0x0, 0x1(%rbx)
je 0x43ad
addq $0x2, %rbx
jmp 0x43b0
movl $0x3, 0x6fd1(%rip)      # 0xb2e8
addq $0x3, %rbx
movl $0x3, %r12d
jmp 0x43b0
movl $0x4, 0x6fb8(%rip)      # 0xb2e8
addq $0x3, %rbx
movl $0x4, %r12d
jmp 0x43b0
movl $0x1, 0x6fa2(%rip)      # 0xb2e8
addq $0x2, %rbx
movl $0x1, %r12d
jmp 0x43b0
movl $0x2, 0x6f8c(%rip)      # 0xb2e8
addq $0x2, %rbx
movl $0x2, %r12d
jmp 0x43b0
movl $0x6, 0x6f76(%rip)      # 0xb2e8
movl $0x2, 0x6f70(%rip)      # 0xb2ec
incq %rbx
movl $0x6, %r12d
jmp 0x43b0
movl $0x0, 0x6f5b(%rip)      # 0xb2ec
jmp 0x43ad
movsbl %bpl, %esi
movl $0x4, %edx
leaq 0x205c(%rip), %rdi      # 0x63ff
callq 0x3150
testq %rax, %rax
je 0x43bc
incq %rbx
movb (%rbx), %bpl
testb %bpl, %bpl
jne 0x40a4
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x5, %r12d
jne 0x43e0
leaq 0x2028(%rip), %rdi      # 0x6403
callq 0x3fc5
leaq 0x2036(%rip), %rdi      # 0x641d
callq 0x3fc5