// File: /workspace/github_c_makefile_star2_O0/MikeGray-APH[P]LibLouisAPH/source/languages/generic-backward.c
// Function: convert_indicators_mode
static int convert_indicators_mode(struct translate *translate, const struct mode *mode, const unichar delimiter)
{
	int cnt;

	cnt = 0;
	translate->input_crs =
	translate->output_len = 0;
	while(translate->input_crs < translate->input_len)
	{
		if(translate_copy_marked_indicators_or_modifiers(translate) > 0)
			continue;

		if(translate_is_equal(translate, mode->begin, mode->begin_len))
		{
			if(!translate_insert_dot(translate, delimiter))
				return -1;
			if(!translate_copy_to_output(translate, mode->begin_len, 1))
				return -1;
			if(!translate_insert_dot(translate, delimiter))
				return -1;
			cnt++;
		}
		else if(translate_is_equal(translate, mode->end, mode->end_len))
		{
			if(!translate_insert_dot(translate, delimiter))
				return -1;
			if(!translate_copy_to_output(translate, mode->end_len, 1))
				return -1;
			if(!translate_insert_dot(translate, delimiter))
				return -1;
			cnt++;
		}
		else if(translate_is_equal(translate, mode->word, mode->word_len))
		{
			if(!translate_insert_dot(translate, delimiter))
				return -1;
			if(!translate_copy_to_output(translate, mode->word_len, 1))
				return -1;
			if(!translate_insert_dot(translate, delimiter))
				return -1;
			cnt++;
		}
		else if(translate_is_equal(translate, mode->term, mode->term_len))
		{
			if(!translate_insert_dot(translate, delimiter))
				return -1;
			if(!translate_copy_to_output(translate, mode->term_len, 1))
				return -1;
			if(!translate_insert_dot(translate, delimiter))
				return -1;
			cnt++;
		}
		else if(translate_is_equal(translate, mode->symbol, mode->symbol_len))
		{
			if(!translate_insert_dot(translate, delimiter))
				return -1;
			if(!translate_copy_to_output(translate, mode->symbol_len, 1))
				return -1;
			if(!translate_insert_dot(translate, delimiter))
				return -1;
			cnt++;
		}
		else if(!translate_copy_to_output(translate, 1, 1))
			return -1;
	}

	return cnt;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %dx, %ax
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movw %ax, -0x1a(%rbp)
movl $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rax
movl $0x0, 0x68(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x40(%rax)
movq -0x10(%rbp), %rax
movl 0x40(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0x44(%rcx), %eax
jge 0x17f2a
movq -0x10(%rbp), %rdi
callq 0xb250
cmpl $0x0, %eax
jle 0x17c48
jmp 0x17c24
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0xc, %rsi
movq -0x18(%rbp), %rax
movl 0x54(%rax), %edx
callq 0x17f70
cmpl $0x0, %eax
je 0x17cd5
movq -0x10(%rbp), %rdi
movzwl -0x1a(%rbp), %esi
callq 0x17fa0
cmpl $0x0, %eax
jne 0x17c83
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x54(%rax), %esi
movl $0x1, %edx
callq 0xaeb0
cmpl $0x0, %eax
jne 0x17ca9
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movq -0x10(%rbp), %rdi
movzwl -0x1a(%rbp), %esi
callq 0x17fa0
cmpl $0x0, %eax
jne 0x17cc7
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x17f25
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x1a, %rsi
movq -0x18(%rbp), %rax
movl 0x58(%rax), %edx
callq 0x17f70
cmpl $0x0, %eax
je 0x17d62
movq -0x10(%rbp), %rdi
movzwl -0x1a(%rbp), %esi
callq 0x17fa0
cmpl $0x0, %eax
jne 0x17d10
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x58(%rax), %esi
movl $0x1, %edx
callq 0xaeb0
cmpl $0x0, %eax
jne 0x17d36
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movq -0x10(%rbp), %rdi
movzwl -0x1a(%rbp), %esi
callq 0x17fa0
cmpl $0x0, %eax
jne 0x17d54
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x17f23
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rax
movl 0x5c(%rax), %edx
callq 0x17f70
cmpl $0x0, %eax
je 0x17def
movq -0x10(%rbp), %rdi
movzwl -0x1a(%rbp), %esi
callq 0x17fa0
cmpl $0x0, %eax
jne 0x17d9d
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x5c(%rax), %esi
movl $0x1, %edx
callq 0xaeb0
cmpl $0x0, %eax
jne 0x17dc3
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movq -0x10(%rbp), %rdi
movzwl -0x1a(%rbp), %esi
callq 0x17fa0
cmpl $0x0, %eax
jne 0x17de1
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x17f21
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x36, %rsi
movq -0x18(%rbp), %rax
movl 0x60(%rax), %edx
callq 0x17f70
cmpl $0x0, %eax
je 0x17e7c
movq -0x10(%rbp), %rdi
movzwl -0x1a(%rbp), %esi
callq 0x17fa0
cmpl $0x0, %eax
jne 0x17e2a
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x60(%rax), %esi
movl $0x1, %edx
callq 0xaeb0
cmpl $0x0, %eax
jne 0x17e50
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movq -0x10(%rbp), %rdi
movzwl -0x1a(%rbp), %esi
callq 0x17fa0
cmpl $0x0, %eax
jne 0x17e6e
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x17f1f
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x44, %rsi
movq -0x18(%rbp), %rax
movl 0x64(%rax), %edx
callq 0x17f70
cmpl $0x0, %eax
je 0x17efd
movq -0x10(%rbp), %rdi
movzwl -0x1a(%rbp), %esi
callq 0x17fa0
cmpl $0x0, %eax
jne 0x17eb4
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x64(%rax), %esi
movl $0x1, %edx
callq 0xaeb0
cmpl $0x0, %eax
jne 0x17ed7
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movq -0x10(%rbp), %rdi
movzwl -0x1a(%rbp), %esi
callq 0x17fa0
cmpl $0x0, %eax
jne 0x17ef2
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x17f1d
movq -0x10(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0xaeb0
cmpl $0x0, %eax
jne 0x17f1b
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17f30
jmp 0x17f1d
jmp 0x17f1f
jmp 0x17f21
jmp 0x17f23
jmp 0x17f25
jmp 0x17c24
movl -0x20(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)