// File: /workspace/github_c_makefile_star2_O3/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, 0x516e(%rip)      # 0x9182
jne 0x402a
movslq 0x62a3(%rip), %rax      # 0xa2c0
leaq 0x103ec(%rip), %rcx     # 0x14410
cmpb $0x0, (%rax,%rcx)
je 0x4058
callq 0x3280
movq (%rax), %rax
movzbl (%rbx), %ecx
testb $0x20, 0x1(%rax,%rcx,2)
je 0x4339
cmpb $0xa, %cl
jne 0x404f
movl $0x0, 0x729d(%rip)      # 0xb2ec
movzbl 0x1(%rbx), %ecx
incq %rbx
jmp 0x4035
movb (%rbx), %bpl
testb %bpl, %bpl
je 0x4339
movl 0x727e(%rip), %eax      # 0xb2e8
leaq 0x204f(%rip), %r13      # 0x60c0
leaq 0x2376(%rip), %r14      # 0x63ee
leaq 0x2374(%rip), %r15      # 0x63f3
leaq 0x23a7(%rip), %r12      # 0x642d
cmpb $0x5c, %bpl
jne 0x40b0
cmpb $0xd, 0x1(%rbx)
jne 0x40a1
cmpb $0xa, 0x2(%rbx)
jne 0x40a1
addq $0x3, %rbx
jmp 0x42b5
cmpb $0xa, 0x1(%rbx)
jne 0x40b0
addq $0x2, %rbx
jmp 0x42b5
movl %eax, %ecx
movslq (%r13,%rcx,4), %rcx
addq %r13, %rcx
jmpq *%rcx
movl $0x4, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3070
testl %eax, %eax
je 0x4213
movzbl %bpl, %eax
cmpl $0x26, %eax
jg 0x426a
cmpl $0xa, %eax
je 0x42c3
cmpl $0x22, %eax
jne 0x431f
movl $0x6, 0x71eb(%rip)      # 0xb2e8
movl $0x2, 0x71e5(%rip)      # 0xb2ec
incq %rbx
movl $0x6, %eax
jmp 0x42b5
cmpb $0x2f, %bpl
je 0x41ed
movl $0x1, 0x71c0(%rip)      # 0xb2e8
jmp 0x42b0
movl $0x2, %eax
cmpb $0xa, %bpl
jne 0x420b
xorl %eax, %eax
movl %eax, 0x71a4(%rip)      # 0xb2e8
movl %eax, 0x71a2(%rip)      # 0xb2ec
jmp 0x420b
cmpb $0x2f, %bpl
je 0x4240
movzbl %bpl, %eax
cmpl $0x2a, %eax
jne 0x4254
movl $0x1, 0x7178(%rip)      # 0xb2e8
jmp 0x42ad
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3070
testl %eax, %eax
je 0x422b
cmpb $0x2a, %bpl
jne 0x42ad
cmpb $0x5c, 0x1(%rbx)
jne 0x4294
cmpb $0xa, 0x2(%rbx)
jne 0x4294
movl $0x4, 0x7133(%rip)      # 0xb2e8
addq $0x3, %rbx
jmp 0x4239
cmpb $0x27, %bpl
je 0x41ed
movzbl %bpl, %ecx
cmpl $0x5c, %ecx
je 0x4201
cmpl $0xa, %ecx
jne 0x420b
jmp 0x4357
cmpb $0x22, %bpl
je 0x41ed
movzbl %bpl, %ecx
cmpl $0x5c, %ecx
je 0x4201
cmpl $0xa, %ecx
jne 0x420b
jmp 0x434b
movl $0x0, 0x70f1(%rip)      # 0xb2e8
incq %rbx
xorl %eax, %eax
jmp 0x42b5
cmpb $0x0, 0x1(%rbx)
jne 0x40a7
incq %rbx
jmp 0x42b5
movl $0x3, 0x70cb(%rip)      # 0xb2e8
addq $0x4, %rbx
movl $0x3, %eax
jmp 0x42b5
movl $0x4, 0x70b3(%rip)      # 0xb2e8
addq $0x4, %rbx
movl $0x4, %eax
jmp 0x42b5
movl $0x2, 0x709e(%rip)      # 0xb2e8
incq %rbx
movl $0x2, %eax
jmp 0x42b5
movl $0x0, 0x708a(%rip)      # 0xb2e8
movl $0x2, 0x7084(%rip)      # 0xb2ec
jmp 0x41fa
cmpl $0x27, %eax
je 0x42d2
cmpl $0x2f, %eax
jne 0x431f
cmpb $0x5c, 0x1(%rbx)
jne 0x42f0
cmpb $0xa, 0x2(%rbx)
jne 0x42f0
movl $0x3, 0x705a(%rip)      # 0xb2e8
addq $0x3, %rbx
jmp 0x4221
cmpb $0x2f, 0x1(%rbx)
jne 0x42ad
movl $0x0, 0x7044(%rip)      # 0xb2e8
addq $0x2, %rbx
jmp 0x41fa
incq %rbx
movl $0x1, %eax
movb (%rbx), %bpl
testb %bpl, %bpl
jne 0x4086
jmp 0x4339
movl $0x0, 0x701f(%rip)      # 0xb2ec
jmp 0x41f7
movl $0x5, 0x700c(%rip)      # 0xb2e8
movl $0x2, 0x7006(%rip)      # 0xb2ec
incq %rbx
movl $0x5, %eax
jmp 0x42b5
cmpb $0x2a, 0x1(%rbx)
jne 0x4306
movl $0x1, 0x6fe8(%rip)      # 0xb2e8
addq $0x2, %rbx
jmp 0x42b0
cmpb $0x2f, 0x1(%rbx)
jne 0x431f
movl $0x2, 0x6fd2(%rip)      # 0xb2e8
addq $0x2, %rbx
jmp 0x424d
movsbl %bpl, %esi
movl $0x4, %edx
movq %r15, %rdi
callq 0x3150
testq %rax, %rax
jne 0x41f7
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x20bf(%rip), %rdi      # 0x6411
callq 0x3fa1
leaq 0x2099(%rip), %rdi      # 0x63f7
callq 0x3fa1