// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./regexp.c
// Function: nextrune
static int nextrune(struct cstate *g)
{
	if (!*g->source) {
		g->yychar = EOF;
		return 0;
	}
	g->source += chartorune(&g->yychar, g->source);
	if (g->yychar == '\\') {
		if (!*g->source)
			die(g, "unterminated escape sequence");
		g->source += chartorune(&g->yychar, g->source);
		switch (g->yychar) {
		case 'f': g->yychar = '\f'; return 0;
		case 'n': g->yychar = '\n'; return 0;
		case 'r': g->yychar = '\r'; return 0;
		case 't': g->yychar = '\t'; return 0;
		case 'v': g->yychar = '\v'; return 0;
		case 'c':
			if (!g->source[0])
				die(g, "unterminated escape sequence");
			g->yychar = (*g->source++) & 31;
			return 0;
		case 'x':
			if (!g->source[0] || !g->source[1])
				die(g, "unterminated escape sequence");
			g->yychar = hex(g, *g->source++) << 4;
			g->yychar += hex(g, *g->source++);
			if (g->yychar == 0) {
				g->yychar = '0';
				return 1;
			}
			return 1;
		case 'u':
			if (!g->source[0] || !g->source[1] || !g->source[2] || !g->source[3])
				die(g, "unterminated escape sequence");
			g->yychar = hex(g, *g->source++) << 12;
			g->yychar += hex(g, *g->source++) << 8;
			g->yychar += hex(g, *g->source++) << 4;
			g->yychar += hex(g, *g->source++);
			if (g->yychar == 0) {
				g->yychar = '0';
				return 1;
			}
			return 1;
		case 0:
			g->yychar = '0';
			return 1;
		}
		if (strchr(ESCAPES, g->yychar))
			return 1;
		if (isunicodeletter(g->yychar) || g->yychar == '_') /* check identity escape */
			die(g, "invalid escape character");
		return 0;
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpb $0x0, (%rax)
jne 0x30f23
movq -0x10(%rbp), %rax
movl $0xffffffff, 0xac(%rax) # imm = 0xFFFFFFFF
movl $0x0, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rdi
addq $0xac, %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
callq 0x19d20
movl %eax, %edx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
cmpl $0x5c, 0xac(%rax)
jne 0x3135d
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpb $0x0, (%rax)
jne 0x30f7d
movq -0x10(%rbp), %rdi
leaq 0xbfc7(%rip), %rsi      # 0x3cf3f
callq 0x1c7b0
movq -0x10(%rbp), %rax
movq %rax, %rdi
addq $0xac, %rdi
movq 0x18(%rax), %rsi
callq 0x19d20
movl %eax, %edx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movl 0xac(%rax), %eax
movl %eax, -0x14(%rbp)
testl %eax, %eax
je 0x312e7
jmp 0x30fbf
movl -0x14(%rbp), %eax
subl $0x63, %eax
je 0x310a0
jmp 0x30fcd
movl -0x14(%rbp), %eax
subl $0x66, %eax
je 0x3101e
jmp 0x30fd7
movl -0x14(%rbp), %eax
subl $0x6e, %eax
je 0x31038
jmp 0x30fe1
movl -0x14(%rbp), %eax
subl $0x72, %eax
je 0x31052
jmp 0x30feb
movl -0x14(%rbp), %eax
subl $0x74, %eax
je 0x3106c
jmp 0x30ff5
movl -0x14(%rbp), %eax
subl $0x75, %eax
je 0x311a9
jmp 0x31003
movl -0x14(%rbp), %eax
subl $0x76, %eax
je 0x31086
jmp 0x3100d
movl -0x14(%rbp), %eax
subl $0x78, %eax
je 0x310ec
jmp 0x312fe
movq -0x10(%rbp), %rax
movl $0xc, 0xac(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rax
movl $0xa, 0xac(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rax
movl $0xd, 0xac(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rax
movl $0x9, 0xac(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rax
movl $0xb, 0xac(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpb $0x0, (%rax)
jne 0x310bd
movq -0x10(%rbp), %rdi
leaq 0xbe87(%rip), %rsi      # 0x3cf3f
callq 0x1c7b0
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rcx)
movsbl (%rax), %ecx
andl $0x1f, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xac(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpb $0x0, (%rax)
je 0x31107
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpb $0x0, 0x1(%rax)
jne 0x31117
movq -0x10(%rbp), %rdi
leaq 0xbe2d(%rip), %rsi      # 0x3cf3f
callq 0x1c7b0
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rcx)
movsbl (%rax), %esi
callq 0x319f0
movl %eax, %ecx
shll $0x4, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xac(%rax)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rcx)
movsbl (%rax), %esi
callq 0x319f0
movl %eax, %ecx
movq -0x10(%rbp), %rax
addl 0xac(%rax), %ecx
movl %ecx, 0xac(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0xac(%rax)
jne 0x3119d
movq -0x10(%rbp), %rax
movl $0x30, 0xac(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x31364
movl $0x1, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpb $0x0, (%rax)
je 0x311e0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpb $0x0, 0x1(%rax)
je 0x311e0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpb $0x0, 0x2(%rax)
je 0x311e0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpb $0x0, 0x3(%rax)
jne 0x311f0
movq -0x10(%rbp), %rdi
leaq 0xbd54(%rip), %rsi      # 0x3cf3f
callq 0x1c7b0
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rcx)
movsbl (%rax), %esi
callq 0x319f0
movl %eax, %ecx
shll $0xc, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xac(%rax)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rcx)
movsbl (%rax), %esi
callq 0x319f0
movl %eax, %ecx
shll $0x8, %ecx
movq -0x10(%rbp), %rax
addl 0xac(%rax), %ecx
movl %ecx, 0xac(%rax)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rcx)
movsbl (%rax), %esi
callq 0x319f0
movl %eax, %ecx
shll $0x4, %ecx
movq -0x10(%rbp), %rax
addl 0xac(%rax), %ecx
movl %ecx, 0xac(%rax)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rcx)
movsbl (%rax), %esi
callq 0x319f0
movl %eax, %ecx
movq -0x10(%rbp), %rax
addl 0xac(%rax), %ecx
movl %ecx, 0xac(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0xac(%rax)
jne 0x312de
movq -0x10(%rbp), %rax
movl $0x30, 0xac(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x31364
movl $0x1, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rax
movl $0x30, 0xac(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rax
movl 0xac(%rax), %esi
leaq 0xc610(%rip), %rdi      # 0x3d91f
callq 0x3280
cmpq $0x0, %rax
je 0x31323
movl $0x1, -0x4(%rbp)
jmp 0x31364
movq -0x10(%rbp), %rax
movl 0xac(%rax), %edi
callq 0x31a70
cmpl $0x0, %eax
jne 0x31344
movq -0x10(%rbp), %rax
cmpl $0x5f, 0xac(%rax)
jne 0x31354
movq -0x10(%rbp), %rdi
leaq 0xc5f2(%rip), %rsi      # 0x3d941
callq 0x1c7b0
movl $0x0, -0x4(%rbp)
jmp 0x31364
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)