// File: /workspace/github_c_makefile_star2_O0/MikeGray-APH[P]LibLouisAPH/source/languages/generic-forward.c
// Function: convert_user_indicators
static int convert_user_indicators(struct translate *translate)
{
	const struct table *table;
	int mask;

	/*   only copy indicators from last table in tables   */
	table = translate->tables[translate->table_cnt - 1];
	translate->table_crs = translate->table_cnt - 1;

	mask = 0;
	translate->input_crs =
	translate->output_len = 0;
	while(translate->input_crs < translate->input_len)

	/*   no indicator processing inside a notrans block   */
	if(mask & MASK_NO_TRANSLATION)
	{
		if(translate_is_marked_name_at(translate, table->marker_end, u"notrans", 7, translate->input_crs))
		{
			CHANGE_MARK
			mask &= ~MASK_NO_TRANSLATION;
			if(!translate_skip(translate, 9, 1))
				return 0;
		}
		else
		{
			translate->input_mask[translate->input_crs] = mask;
			if(!translate_copy_to_output(translate, 1, 1))
				return 0;
		}
	}

	/*   begin marker   */
	else if(translate->input[translate->input_crs] == table->marker_begin)
	{
		if(translate_is_nocontract_set(translate) && is_marked_equal_to(translate, u"nocontract", 10))
		{
			CHANGE_MARK
			if(!generic_insert_marked(translate, table->nocontract.begin, table->nocontract.begin_len, table->marker_soft))
				return 0;
			if(!translate_skip(translate, 12, 1))
				return 0;
		}
		else if(translate_is_numeric_set(translate) && is_marked_equal_to(translate, u"numeric", 7))
		{
			CHANGE_MARK
			if(!generic_insert_marked(translate, table->numeric.begin, table->numeric.begin_len, table->marker_soft))
				return 0;
			if(!translate_skip(translate, 9, 1))
				return 0;
		}
		else if(is_marked_equal_to(translate, u"nocapital", 9))
		{
			CHANGE_MARK
			mask |= MASK_NO_CAPITALIZATION;
			if(!translate_skip(translate, 11, 1))
				return 0;
		}
		else if(is_marked_equal_to(translate, u"notrans", 7))
		{
			CHANGE_MARK
			mask |= MASK_NO_TRANSLATION;
			if(!translate_skip(translate, 9, 1))
				return 0;
		}
		else
		{
			translate->input_mask[translate->input_crs] = mask;
			if(!translate_copy_marked_user(translate))
				return 0;
		}
	}

	/*  end marker   */
	else if(translate->input[translate->input_crs] == table->marker_end)
	{
		if(translate_is_nocontract_set(translate) && is_marked_equal_to(translate, u"nocontract", 10))
		{
			CHANGE_MARK
			if(!generic_insert_marked(translate, table->nocontract.end, table->nocontract.end_len, table->marker_soft))
				return 0;
			if(!translate_skip(translate, 12, 1))
				return 0;
		}
		else if(translate_is_numeric_set(translate) && is_marked_equal_to(translate, u"numeric", 7))
		{
			CHANGE_MARK
			if(!generic_insert_marked(translate, table->numeric.end, table->numeric.end_len, table->marker_soft))
				return 0;
			if(!translate_skip(translate, 9, 1))
				return 0;
		}
		else if(is_marked_equal_to(translate, u"nocapital", 9))
		{
			CHANGE_MARK
			mask &= ~MASK_NO_CAPITALIZATION;
			if(!translate_skip(translate, 11, 1))
				return 0;
		}
		else
		{
			translate->input_mask[translate->input_crs] = mask;
			if(!translate_copy_marked_user(translate))
				return 0;
		}
	}

	/*   no marker   */
	else
	{
		translate->input_mask[translate->input_crs] = mask;
		if(!translate_copy_to_output(translate, 1, 1))
			return 0;
	}

	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movl 0xc(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0xc(%rax), %ecx
subl $0x1, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x8(%rax)
movl $0x0, -0x1c(%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 0x11fa1
movl -0x1c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x11b16
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movw 0x1ec(%rax), %ax
movq -0x10(%rbp), %rcx
movl 0x40(%rcx), %r8d
leaq 0xd449(%rip), %rdx      # 0x1eed0
movl $0x7, %ecx
movzwl %ax, %esi
callq 0xa540
cmpl $0x0, %eax
je 0x11ad6
movq -0x10(%rbp), %rax
movl $0x1, 0x94(%rax)
movl -0x1c(%rbp), %eax
andl $-0x2, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
movl $0x9, %esi
movl $0x1, %edx
callq 0xa9a0
cmpl $0x0, %eax
jne 0x11ad4
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11b11
movl -0x1c(%rbp), %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0xaeb0
cmpl $0x0, %eax
jne 0x11b0f
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11b11
jmp 0x11f9c
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movzwl (%rax,%rcx,2), %eax
movq -0x18(%rbp), %rcx
movzwl 0x1ea(%rcx), %ecx
cmpl %ecx, %eax
jne 0x11d6c
movq -0x10(%rbp), %rdi
callq 0x12f80
cmpl $0x0, %eax
je 0x11bdb
movq -0x10(%rbp), %rdi
leaq 0xd386(%rip), %rsi      # 0x1eee0
movl $0xa, %edx
callq 0x12fb0
cmpl $0x0, %eax
je 0x11bdb
movq -0x10(%rbp), %rax
movl $0x1, 0x94(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x50, %rsi
addq $0xc, %rsi
movq -0x18(%rbp), %rax
movl 0xa4(%rax), %edx
movq -0x18(%rbp), %rax
movzwl 0x1f2(%rax), %ecx
callq 0x102a0
cmpl $0x0, %eax
jne 0x11bb2
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
movq -0x10(%rbp), %rdi
movl $0xc, %esi
movl $0x1, %edx
callq 0xa9a0
cmpl $0x0, %eax
jne 0x11bd6
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11d67
movq -0x10(%rbp), %rdi
callq 0x12560
cmpl $0x0, %eax
je 0x11c7c
movq -0x10(%rbp), %rdi
leaq 0xd2fe(%rip), %rsi      # 0x1eef6
movl $0x7, %edx
callq 0x12fb0
cmpl $0x0, %eax
je 0x11c7c
movq -0x10(%rbp), %rax
movl $0x1, 0x94(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x150, %rsi            # imm = 0x150
addq $0xc, %rsi
movq -0x18(%rbp), %rax
movl 0x1a4(%rax), %edx
movq -0x18(%rbp), %rax
movzwl 0x1f2(%rax), %ecx
callq 0x102a0
cmpl $0x0, %eax
jne 0x11c53
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
movq -0x10(%rbp), %rdi
movl $0x9, %esi
movl $0x1, %edx
callq 0xa9a0
cmpl $0x0, %eax
jne 0x11c77
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11d65
movq -0x10(%rbp), %rdi
leaq 0xd27f(%rip), %rsi      # 0x1ef06
movl $0x9, %edx
callq 0x12fb0
cmpl $0x0, %eax
je 0x11cd6
movq -0x10(%rbp), %rax
movl $0x1, 0x94(%rax)
movl -0x1c(%rbp), %eax
orl $0x2, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
movl $0xb, %esi
movl $0x1, %edx
callq 0xa9a0
cmpl $0x0, %eax
jne 0x11cd1
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11d63
movq -0x10(%rbp), %rdi
leaq 0xd1ef(%rip), %rsi      # 0x1eed0
movl $0x7, %edx
callq 0x12fb0
cmpl $0x0, %eax
je 0x11d2d
movq -0x10(%rbp), %rax
movl $0x1, 0x94(%rax)
movl -0x1c(%rbp), %eax
orl $0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
movl $0x9, %esi
movl $0x1, %edx
callq 0xa9a0
cmpl $0x0, %eax
jne 0x11d2b
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11d61
movl -0x1c(%rbp), %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rdi
callq 0xb050
cmpl $0x0, %eax
jne 0x11d5f
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11d61
jmp 0x11d63
jmp 0x11d65
jmp 0x11d67
jmp 0x11f9a
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movzwl (%rax,%rcx,2), %eax
movq -0x18(%rbp), %rcx
movzwl 0x1ec(%rcx), %ecx
cmpl %ecx, %eax
jne 0x11f60
movq -0x10(%rbp), %rdi
callq 0x12f80
cmpl $0x0, %eax
je 0x11e31
movq -0x10(%rbp), %rdi
leaq 0xd130(%rip), %rsi      # 0x1eee0
movl $0xa, %edx
callq 0x12fb0
cmpl $0x0, %eax
je 0x11e31
movq -0x10(%rbp), %rax
movl $0x1, 0x94(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x50, %rsi
addq $0x1a, %rsi
movq -0x18(%rbp), %rax
movl 0xa8(%rax), %edx
movq -0x18(%rbp), %rax
movzwl 0x1f2(%rax), %ecx
callq 0x102a0
cmpl $0x0, %eax
jne 0x11e08
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
movq -0x10(%rbp), %rdi
movl $0xc, %esi
movl $0x1, %edx
callq 0xa9a0
cmpl $0x0, %eax
jne 0x11e2c
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11f5e
movq -0x10(%rbp), %rdi
callq 0x12560
cmpl $0x0, %eax
je 0x11ed2
movq -0x10(%rbp), %rdi
leaq 0xd0a8(%rip), %rsi      # 0x1eef6
movl $0x7, %edx
callq 0x12fb0
cmpl $0x0, %eax
je 0x11ed2
movq -0x10(%rbp), %rax
movl $0x1, 0x94(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x150, %rsi            # imm = 0x150
addq $0x1a, %rsi
movq -0x18(%rbp), %rax
movl 0x1a8(%rax), %edx
movq -0x18(%rbp), %rax
movzwl 0x1f2(%rax), %ecx
callq 0x102a0
cmpl $0x0, %eax
jne 0x11ea9
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
movq -0x10(%rbp), %rdi
movl $0x9, %esi
movl $0x1, %edx
callq 0xa9a0
cmpl $0x0, %eax
jne 0x11ecd
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11f5c
movq -0x10(%rbp), %rdi
leaq 0xd029(%rip), %rsi      # 0x1ef06
movl $0x9, %edx
callq 0x12fb0
cmpl $0x0, %eax
je 0x11f29
movq -0x10(%rbp), %rax
movl $0x1, 0x94(%rax)
movl -0x1c(%rbp), %eax
andl $-0x3, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
movl $0xb, %esi
movl $0x1, %edx
callq 0xa9a0
cmpl $0x0, %eax
jne 0x11f27
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11f5a
movl -0x1c(%rbp), %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rdi
callq 0xb050
cmpl $0x0, %eax
jne 0x11f58
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11f5a
jmp 0x11f5c
jmp 0x11f5e
jmp 0x11f98
movl -0x1c(%rbp), %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x40(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0xaeb0
cmpl $0x0, %eax
jne 0x11f96
movl $0x0, -0x4(%rbp)
jmp 0x11fa8
jmp 0x11f98
jmp 0x11f9a
jmp 0x11f9c
jmp 0x11a46
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)