// File: /workspace/github_c_makefile_star2_O0/mmcco[P]sljit/regex_src/regexJIT.c
// Function: regex_continue_match_debug
void regex_continue_match_debug(struct regex_match *match, const regex_char_t *input_string, int length)
{
	long *ptr;
	long *end;
	long count;
#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
	long current;
#endif
	long no_states = match->machine->no_states;
	long len = match->machine->size;

	while (length > 0) {
		match->u.call_continue(match, input_string, 1);

		if (match->fast_forward) {
			if (match->machine->flags & REGEX_MATCH_VERBOSE)
				printf("fast forward\n");
		}

		/* Verbose (first). */
		if (match->machine->flags & REGEX_MATCH_VERBOSE) {
			ptr = match->current;
			end = ptr + len;
			count = 0;
			printf("'%c' (%3ld->%3ld [%3ld]) ", *input_string, (long)match->best_begin, (long)match->best_end, (long)match->best_id);
			while (ptr < end) {
				printf("[%3ld:", (long)count++);
				switch (no_states) {
				case 2:
					if (ptr[1] != -1)
						printf("+] ");
					else
						printf(" ] ");
					break;

				case 3:
					if (ptr[1] != -1)
						printf("+,%3ld] ", (long)ptr[2]);
					else
						printf(" ,XXX] ");
					break;

				case 4:
					if (ptr[1] != -1)
						printf("+,%3ld,%3ld] ", (long)ptr[2], (long)ptr[3]);
					else
						printf(" ,XXX,XXX] ");
					break;
				}
				ptr += no_states;
			}
			printf("\n");
		}

#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
		/* Sanity check (later). */
		ptr = match->next;
		end = ptr + len;
		while (ptr < end) {
			SLJIT_ASSERT(ptr[1] == -1);
			ptr += no_states;
		}

		/* Check number of active elements. */
		ptr = match->current + no_states;
		end = ptr + len - no_states;
		count = 0;
		while (ptr < end) {
			if (ptr[1] != -1)
				count++;
			ptr += no_states;
		}

		/* Check chain list. */
		current = match->head;
		ptr = match->current;
		while (current != 0) {
			SLJIT_ASSERT(current >= 0 && current < len * sizeof(long));
			SLJIT_ASSERT((current % (no_states * sizeof(long))) == 0);
			SLJIT_ASSERT(count > 0);
			current = ptr[(current / sizeof(long)) + 1];
			count--;
		}
		SLJIT_ASSERT(count == 0);
#endif

		if (match->fast_quit) {
			/* the machine has stopped working. */
			if (match->machine->flags & REGEX_MATCH_VERBOSE)
				printf("Best match has found\n");
			break;
		}

		input_string++;
		length--;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x897a
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x1, %edx
callq *%rax
movq -0x8(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0x85f1
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movl (%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x85ef
leaq 0x172ee(%rip), %rdi     # 0x1f8d6
movb $0x0, %al
callq 0x2060
jmp 0x85f1
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movl (%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x876b
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %esi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x30(%rax), %r8
leaq 0x17291(%rip), %rdi     # 0x1f8e4
movb $0x0, %al
callq 0x2060
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x875d
movq -0x30(%rbp), %rsi
movq %rsi, %rax
incq %rax
movq %rax, -0x30(%rbp)
leaq 0x17281(%rip), %rdi     # 0x1f8fe
xorl %eax, %eax
callq 0x2060
movq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
subq $0x2, %rax
je 0x86af
jmp 0x8694
movq -0x50(%rbp), %rax
subq $0x3, %rax
je 0x86da
jmp 0x86a0
movq -0x50(%rbp), %rax
subq $0x4, %rax
je 0x870d
jmp 0x8748
movq -0x20(%rbp), %rax
cmpq $-0x1, 0x8(%rax)
je 0x86ca
leaq 0x17244(%rip), %rdi     # 0x1f905
movb $0x0, %al
callq 0x2060
jmp 0x86d8
leaq 0x17238(%rip), %rdi     # 0x1f909
movb $0x0, %al
callq 0x2060
jmp 0x8748
movq -0x20(%rbp), %rax
cmpq $-0x1, 0x8(%rax)
je 0x86fd
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x17219(%rip), %rdi     # 0x1f90d
movb $0x0, %al
callq 0x2060
jmp 0x870b
leaq 0x17212(%rip), %rdi     # 0x1f916
movb $0x0, %al
callq 0x2060
jmp 0x8748
movq -0x20(%rbp), %rax
cmpq $-0x1, 0x8(%rax)
je 0x8738
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0x171ef(%rip), %rdi     # 0x1f91e
movb $0x0, %al
callq 0x2060
jmp 0x8746
leaq 0x171ed(%rip), %rdi     # 0x1f92c
movb $0x0, %al
callq 0x2060
jmp 0x8748
movq -0x40(%rbp), %rax
shlq $0x3, %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x865a
leaq 0x16987(%rip), %rdi     # 0x1f0eb
movb $0x0, %al
callq 0x2060
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x87cd
jmp 0x8796
movq -0x20(%rbp), %rax
cmpq $-0x1, 0x8(%rax)
je 0x87b9
leaq 0x17068(%rip), %rdi     # 0x1f810
movl $0x9f9, %esi            # imm = 0x9F9
movb $0x0, %al
callq 0x2060
callq 0x2040
jmp 0x87bb
movq -0x40(%rbp), %rax
shlq $0x3, %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x878a
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x40(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
xorl %ecx, %ecx
subq -0x40(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x883e
movq -0x20(%rbp), %rax
cmpq $-0x1, 0x8(%rax)
je 0x882c
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x40(%rbp), %rax
shlq $0x3, %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x880b
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x8910
jmp 0x8862
cmpq $0x0, -0x38(%rbp)
jl 0x887a
movq -0x38(%rbp), %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
cmpq %rcx, %rax
jb 0x8892
leaq 0x16f8f(%rip), %rdi     # 0x1f810
movl $0xa0b, %esi            # imm = 0xA0B
movb $0x0, %al
callq 0x2060
callq 0x2040
jmp 0x8894
jmp 0x8896
movq -0x38(%rbp), %rax
movq -0x40(%rbp), %rcx
shlq $0x3, %rcx
xorl %edx, %edx
divq %rcx
cmpq $0x0, %rdx
je 0x88c5
leaq 0x16f5c(%rip), %rdi     # 0x1f810
movl $0xa0c, %esi            # imm = 0xA0C
movb $0x0, %al
callq 0x2060
callq 0x2040
jmp 0x88c7
jmp 0x88c9
cmpq $0x0, -0x30(%rbp)
jg 0x88e8
leaq 0x16f39(%rip), %rdi     # 0x1f810
movl $0xa0d, %esi            # imm = 0xA0D
movb $0x0, %al
callq 0x2060
callq 0x2040
jmp 0x88ea
movq -0x20(%rbp), %rax
movq -0x38(%rbp), %rcx
shrq $0x3, %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x8855
jmp 0x8912
cmpq $0x0, -0x30(%rbp)
je 0x8931
leaq 0x16ef0(%rip), %rdi     # 0x1f810
movl $0xa11, %esi            # imm = 0xA11
movb $0x0, %al
callq 0x2060
callq 0x2040
jmp 0x8933
movq -0x8(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x8960
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movl (%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x895e
leaq 0x16fe1(%rip), %rdi     # 0x1f938
movb $0x0, %al
callq 0x2060
jmp 0x897a
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x85a3
addq $0x50, %rsp
popq %rbp
retq