// File: /workspace/github_c_makefile_star2_O0/MikeGray-APH[P]LibLouisAPH/source/languages/generic-forward.c
// Function: insert_indicators_capital
static int insert_indicators_capital(struct translate *translate, const struct table *table, const unsigned int *indicators)
{
	unichar lower;
	int notrans_in = 0;

	translate->input_crs =
	translate->output_len = 0;
	while(translate->input_crs < translate->input_len)
	{
		/*   just copy input when notrans is set   */
		if(!notrans_in)
		{
			if(translate->input_mask[translate->input_crs] & MASK_NO_TRANSLATION)
			{
				/*   there may be an end indicator set under the mask   */
				if(!insert_indicators_capital_at(translate, table, indicators[translate->input_crs], &table->capital))
					return 0;

				if(!translate_copy_to_output(translate, 1, 1))
					return 0;
				continue;
			}
		}
		else
		{
			if(!(translate->input_mask[translate->input_crs] & MASK_NO_TRANSLATION))
				notrans_in = 0;
			else
			{
				if(!translate_copy_to_output(translate, 1, 1))
					return 0;
				continue;
			}
		}

		if(!insert_indicators_capital_at(translate, table, indicators[translate->input_crs], &table->capital))
			return 0;

		/*   replace upper case with lower case   */
		lower = generic_upper_to_lower(table, translate->input[translate->input_crs]);
		if(lower != translate->input[translate->input_crs])
		{
			CHANGE_MARK
			if(!translate_insert_dot_for_chars(translate, lower, 1))
				return 0;
		}
		else if(!translate_copy_to_output(translate, 1, 1))
			return 0;
	}

	/*   after input   */
	if(!insert_indicators_capital_at(translate, table, indicators[translate->input_crs], &table->capital))
		return 0;

	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movl $0x0, -0x28(%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 0x15cfe
cmpl $0x0, -0x28(%rbp)
jne 0x15be7
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x15be5
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movl (%rax,%rcx,4), %edx
movq -0x18(%rbp), %rcx
addq $0xd0, %rcx
callq 0x16020
cmpl $0x0, %eax
jne 0x15bbf
movl $0x0, -0x4(%rbp)
jmp 0x15d3a
movq -0x10(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0xaeb0
cmpl $0x0, %eax
jne 0x15be0
movl $0x0, -0x4(%rbp)
jmp 0x15d3a
jmp 0x15b51
jmp 0x15c34
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x15c0c
movl $0x0, -0x28(%rbp)
jmp 0x15c32
movq -0x10(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0xaeb0
cmpl $0x0, %eax
jne 0x15c2d
movl $0x0, -0x4(%rbp)
jmp 0x15d3a
jmp 0x15b51
jmp 0x15c34
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movl (%rax,%rcx,4), %edx
movq -0x18(%rbp), %rcx
addq $0xd0, %rcx
callq 0x16020
cmpl $0x0, %eax
jne 0x15c6c
movl $0x0, -0x4(%rbp)
jmp 0x15d3a
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movzwl (%rax,%rcx,2), %esi
callq 0x16180
movw %ax, -0x22(%rbp)
movzwl -0x22(%rbp), %eax
movq -0x10(%rbp), %rcx
movq 0x38(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x40(%rdx), %rdx
movzwl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
je 0x15cd9
movq -0x10(%rbp), %rax
movl $0x1, 0x94(%rax)
movq -0x10(%rbp), %rdi
movl $0x1, %edx
movzwl -0x22(%rbp), %esi
callq 0x161f0
cmpl $0x0, %eax
jne 0x15cd7
movl $0x0, -0x4(%rbp)
jmp 0x15d3a
jmp 0x15cf9
movq -0x10(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0xaeb0
cmpl $0x0, %eax
jne 0x15cf7
movl $0x0, -0x4(%rbp)
jmp 0x15d3a
jmp 0x15cf9
jmp 0x15b51
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movl (%rax,%rcx,4), %edx
movq -0x18(%rbp), %rcx
addq $0xd0, %rcx
callq 0x16020
cmpl $0x0, %eax
jne 0x15d33
movl $0x0, -0x4(%rbp)
jmp 0x15d3a
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)