// File: /workspace/github_c_makefile_star2_O2/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, 0x43cc(%rip)      # 0x8182
jne 0x3dcc
movslq 0x5501(%rip), %rax      # 0x92c0
leaq 0xf64a(%rip), %rcx      # 0x13410
cmpb $0x0, (%rax,%rcx)
je 0x3df3
callq 0x3280
movq (%rax), %rax
movzbl (%rbx), %ecx
testb $0x20, 0x1(%rax,%rcx,2)
je 0x40cf
cmpb $0xa, %cl
jne 0x3dee
andl $0x0, 0x64fe(%rip)      # 0xa2ec
incq %rbx
jmp 0x3dd4
movl 0x64ef(%rip), %eax      # 0xa2e8
leaq 0x12c0(%rip), %r12      # 0x50c0
pushq $0x4
popq %r15
pushq $0x2
popq %r13
movsbl (%rbx), %ebp
movzbl %bpl, %r14d
cmpl $0x5c, %ebp
je 0x3e1e
testl %r14d, %r14d
jne 0x3e3c
jmp 0x40cf
cmpb $0xd, 0x1(%rbx)
jne 0x3e30
cmpb $0xa, 0x2(%rbx)
jne 0x3e30
addq $0x3, %rbx
jmp 0x3e08
cmpb $0xa, 0x1(%rbx)
jne 0x3e3c
addq $0x2, %rbx
jmp 0x3e08
movl %eax, %ecx
movslq (%r12,%rcx,4), %rcx
addq %r12, %rcx
jmpq *%rcx
movq %rbx, %rdi
leaq 0x159d(%rip), %rsi      # 0x53ee
movq %r15, %rdx
callq 0x3070
testl %eax, %eax
je 0x3fb7
cmpb $0xa, %bpl
je 0x4071
movzbl %bpl, %eax
cmpl $0x22, %eax
je 0x4033
cmpl $0x27, %eax
je 0x4052
cmpl $0x2f, %eax
jne 0x40b5
cmpb $0x5c, 0x1(%rbx)
jne 0x407d
cmpb $0xa, 0x2(%rbx)
jne 0x407d
movl $0x3, 0x6440(%rip)      # 0xa2e8
addq $0x3, %rbx
pushq $0x3
popq %rax
jmp 0x3e08
cmpl $0x2f, %r14d
je 0x3f94
movl $0x1, 0x6420(%rip)      # 0xa2e8
pushq $0x1
popq %rax
jmp 0x3e08
movl %r13d, %eax
cmpb $0xa, %bpl
jne 0x3faf
andl $0x0, 0x6404(%rip)      # 0xa2e8
andl $0x0, 0x6401(%rip)      # 0xa2ec
xorl %eax, %eax
jmp 0x3faf
cmpb $0x2f, %bpl
je 0x3fe3
movzbl %bpl, %eax
cmpl $0x2a, %eax
jne 0x3ff8
movl $0x1, 0x63d5(%rip)      # 0xa2e8
jmp 0x4028
movq %rbx, %rdi
leaq 0x150b(%rip), %rsi      # 0x542d
movq %r15, %rdx
callq 0x3070
testl %eax, %eax
je 0x3fcd
cmpl $0x2a, %r14d
jne 0x4028
cmpb $0x5c, 0x1(%rbx)
jne 0x4010
cmpb $0xa, 0x2(%rbx)
jne 0x4010
movl $0x4, 0x638e(%rip)      # 0xa2e8
addq $0x3, %rbx
pushq $0x4
popq %rax
jmp 0x3e08
cmpl $0x27, %r14d
je 0x3f94
cmpl $0x5c, %r14d
je 0x3fa5
cmpl $0xa, %r14d
jne 0x3faf
jmp 0x40ed
cmpl $0x22, %r14d
je 0x3f94
cmpl $0x5c, %r14d
je 0x3fa5
cmpl $0xa, %r14d
jne 0x3faf
jmp 0x40e1
andl $0x0, 0x634d(%rip)      # 0xa2e8
incq %rbx
xorl %eax, %eax
jmp 0x3e08
cmpb $0x0, 0x1(%rbx)
jne 0x3e36
incq %rbx
jmp 0x3e08
movl $0x3, 0x6327(%rip)      # 0xa2e8
addq $0x4, %rbx
pushq $0x3
popq %rax
jmp 0x3e08
movl $0x4, 0x6311(%rip)      # 0xa2e8
addq $0x4, %rbx
pushq $0x4
popq %rax
jmp 0x3e08
movl $0x2, 0x62fb(%rip)      # 0xa2e8
incq %rbx
movl %r13d, %eax
jmp 0x3e08
andl $0x0, 0x62e9(%rip)      # 0xa2e8
movl $0x2, 0x62e3(%rip)      # 0xa2ec
xorl %eax, %eax
jmp 0x3e08
cmpb $0x2f, 0x1(%rbx)
jne 0x4028
andl $0x0, 0x62cb(%rip)      # 0xa2e8
addq $0x2, %rbx
xorl %eax, %eax
jmp 0x3e08
incq %rbx
pushq $0x1
popq %rax
jmp 0x3e08
movl $0x6, 0x62ab(%rip)      # 0xa2e8
movl $0x2, 0x62a5(%rip)      # 0xa2ec
incq %rbx
pushq $0x6
popq %rax
jmp 0x3e08
movl $0x5, 0x628c(%rip)      # 0xa2e8
movl $0x2, 0x6286(%rip)      # 0xa2ec
incq %rbx
pushq $0x5
popq %rax
jmp 0x3e08
andl $0x0, 0x6274(%rip)      # 0xa2ec
jmp 0x3f9b
cmpb $0x2a, 0x1(%rbx)
jne 0x4099
movl $0x1, 0x625b(%rip)      # 0xa2e8
addq $0x2, %rbx
pushq $0x1
popq %rax
jmp 0x3e08
cmpb $0x2f, 0x1(%rbx)
jne 0x40b5
movl $0x2, 0x623f(%rip)      # 0xa2e8
addq $0x2, %rbx
movl %r13d, %eax
jmp 0x3e08
leaq 0x1337(%rip), %rdi      # 0x53f3
movl %ebp, %esi
movq %r15, %rdx
callq 0x3150
testq %rax, %rax
jne 0x3f9b
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1329(%rip), %rdi      # 0x5411
callq 0x3d45
leaq 0x1303(%rip), %rdi      # 0x53f7
callq 0x3d45