// File: /workspace/github_c_makefile_star2_O0/MikeGray-APH[P]LibLouisAPH/source/languages/generic-backward.c
// Function: translate_generic_backward
int translate_generic_backward(struct translate *translate)
{
	int processed;

	processed = 0;

	if(translate_get_init_dots_hash_cnt(translate))
	{
		CHANGE_RESET
		if(!generic_process(translate, TABLE_HASH_INIT, BACKWARD))
			return 0;
		CHANGE_CHECK
		processed = 1;
	}

	CHANGE_CHECK
	if(!translate_output_to_input(translate))
		return 0;

	/*   does its own swapping   */
	if(!convert_indicators_emphases(translate, translate->tables[translate->table_cnt - 1]))
		return 0;
	processed = 0;

	CHANGE_RESET
	if(!add_soft_terminators(translate))
		return 0;
	CHANGE_CHECK
	processed = 1;

	CHANGE_CHECK
	if(!translate_output_to_input(translate))
		return 0;

	CHANGE_RESET
	if(!generic_remove_modifier_delimiters(translate))
		return 0;
	CHANGE_CHECK
	processed = 1;

	if(translate_get_posttrans_dots_hash_cnt(translate))
	{
		CHANGE_CHECK
		if(!translate_output_to_input(translate))
			return 0;

		CHANGE_RESET
		if(!generic_process(translate, TABLE_HASH_POSTTRANS, BACKWARD))
			return 0;
		CHANGE_CHECK
		processed = 1;
	}

	if(translate_get_trans_dots_hash_cnt(translate))
	{
		CHANGE_CHECK
		if(!translate_output_to_input(translate))
			return 0;

		CHANGE_RESET
		if(!generic_process(translate, TABLE_HASH_TRANS, BACKWARD))
			return 0;
		CHANGE_CHECK
		processed = 1;
	}

	if(translate_get_pretrans_dots_hash_cnt(translate))
	{
		CHANGE_CHECK
		if(!translate_output_to_input(translate))
			return 0;

		CHANGE_RESET
		if(!generic_process(translate, TABLE_HASH_PRETRANS, BACKWARD))
			return 0;
		CHANGE_CHECK
		processed = 1;
	}

	if(translate_get_postmode_dots_hash_cnt(translate))
	{
		CHANGE_CHECK
		if(!translate_output_to_input(translate))
			return 0;

		CHANGE_RESET
		if(!generic_process(translate, TABLE_HASH_POSTMODE, BACKWARD))
			return 0;
		CHANGE_CHECK
		processed = 1;
	}

	if(translate_is_capital_set(translate))
	{
		CHANGE_CHECK
		if(!translate_output_to_input(translate))
			return 0;

		CHANGE_RESET
		convert_indicators_capital(translate);
		CHANGE_CHECK
		processed = 1;
	}

	if(translate_is_numeric_set(translate))
	{
		CHANGE_CHECK
		if(!translate_output_to_input(translate))
			return 0;

		CHANGE_RESET
		convert_indicators_numeric(translate);
		CHANGE_CHECK
		processed = 1;
	}

	if(translate_get_premode_dots_hash_cnt(translate))
	{
		CHANGE_CHECK
		if(!translate_output_to_input(translate))
			return 0;

		CHANGE_RESET
		if(!generic_process(translate, TABLE_HASH_PREMODE, BACKWARD))
			return 0;
		CHANGE_CHECK
		processed = 1;
	}

	CHANGE_CHECK
	if(!translate_output_to_input(translate))
		return 0;

	CHANGE_RESET
	if(!generic_remove_soft_delimiters(translate))
		return 0;
	CHANGE_CHECK
	processed = 1;

	CHANGE_CHECK
	if(!translate_output_to_input(translate))
		return 0;

	CHANGE_RESET
	if(!generic_remove_hard_and_modifier_delimiters(translate))
		return 0;
	CHANGE_CHECK
	processed = 1;

	if(translate_get_fini_dots_hash_cnt(translate))
	{
		CHANGE_CHECK
		if(!translate_output_to_input(translate))
			return 0;

		CHANGE_RESET
		if(!generic_process(translate, TABLE_HASH_FINI, BACKWARD))
			return 0;
		CHANGE_CHECK
		processed = 1;
	}

	return processed;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x10(%rbp), %rdi
callq 0x16a50
cmpl $0x0, %eax
je 0x164a9
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x10920
cmpl $0x0, %eax
jne 0x16493
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x164a7
movl $0x1, -0x14(%rbp)
jmp 0x164a9
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x164d2
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x164d0
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x164d2
movq -0x10(%rbp), %rdi
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), %rsi
callq 0x16aa0
cmpl $0x0, %eax
jne 0x16504
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movl $0x0, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
callq 0x16d30
cmpl $0x0, %eax
jne 0x16533
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x16547
movl $0x1, -0x14(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x16570
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x1656e
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x16570
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
callq 0x106f0
cmpl $0x0, %eax
jne 0x16598
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x165ac
movl $0x1, -0x14(%rbp)
movq -0x10(%rbp), %rdi
callq 0x173a0
cmpl $0x0, %eax
je 0x1662b
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x165e3
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x165e1
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x165e3
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
movl $0x6, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x10920
cmpl $0x0, %eax
jne 0x16615
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x16629
movl $0x1, -0x14(%rbp)
jmp 0x1662b
movq -0x10(%rbp), %rdi
callq 0x173f0
cmpl $0x0, %eax
je 0x166aa
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x16662
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x16660
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x16662
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
movl $0x5, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x10920
cmpl $0x0, %eax
jne 0x16694
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x166a8
movl $0x1, -0x14(%rbp)
jmp 0x166aa
movq -0x10(%rbp), %rdi
callq 0x17440
cmpl $0x0, %eax
je 0x16729
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x166e1
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x166df
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x166e1
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
movl $0x4, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x10920
cmpl $0x0, %eax
jne 0x16713
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x16727
movl $0x1, -0x14(%rbp)
jmp 0x16729
movq -0x10(%rbp), %rdi
callq 0x17490
cmpl $0x0, %eax
je 0x167a8
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x16760
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x1675e
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x16760
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
movl $0x3, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x10920
cmpl $0x0, %eax
jne 0x16792
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x167a6
movl $0x1, -0x14(%rbp)
jmp 0x167a8
movq -0x10(%rbp), %rdi
callq 0x174e0
cmpl $0x0, %eax
je 0x1680c
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x167df
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x167dd
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x167df
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
callq 0x17510
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x1680a
movl $0x1, -0x14(%rbp)
jmp 0x1680c
movq -0x10(%rbp), %rdi
callq 0x17830
cmpl $0x0, %eax
je 0x16870
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x16843
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x16841
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x16843
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
callq 0x17860
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x1686e
movl $0x1, -0x14(%rbp)
jmp 0x16870
movq -0x10(%rbp), %rdi
callq 0x17b50
cmpl $0x0, %eax
je 0x168ef
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x168a7
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x168a5
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x168a7
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
movl $0x2, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x10920
cmpl $0x0, %eax
jne 0x168d9
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x168ed
movl $0x1, -0x14(%rbp)
jmp 0x168ef
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x16918
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x16916
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x16918
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
callq 0x10570
cmpl $0x0, %eax
jne 0x16940
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x16954
movl $0x1, -0x14(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x1697d
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x1697b
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x1697d
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
callq 0x107f0
cmpl $0x0, %eax
jne 0x169a5
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x169b9
movl $0x1, -0x14(%rbp)
movq -0x10(%rbp), %rdi
callq 0x17ba0
cmpl $0x0, %eax
je 0x16a32
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x169ed
movq -0x10(%rbp), %rdi
callq 0xb370
cmpl $0x0, %eax
jne 0x169eb
movl $0x0, -0x4(%rbp)
jmp 0x16a38
jmp 0x169ed
movq -0x10(%rbp), %rax
movl $0x0, 0x94(%rax)
movq -0x10(%rbp), %rdi
movl $0x7, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x10920
cmpl $0x0, %eax
jne 0x16a1c
movl $0x0, -0x4(%rbp)
jmp 0x16a38
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x16a30
movl $0x1, -0x14(%rbp)
jmp 0x16a32
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)