// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rdi, %rbx
movl 0xc(%rdi), %eax
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
xorl %edx, %edx
cmpq %rcx, %rax
je 0xcd8b
movq (%rbx), %rsi
movq (%rsi,%rcx,8), %rsi
addl 0x28c(%rsi), %edx
incq %rcx
jmp 0xcd74
testl %edx, %edx
je 0xcdac
andl $0x0, 0x94(%rbx)
pushq $0x1
popq %rsi
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0x9ac5
testl %eax, %eax
je 0xdad0
cmpl $0x0, 0x94(%rbx)
je 0xcdc5
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
movq (%rbx), %rax
movslq 0xc(%rbx), %rcx
movq -0x8(%rax,%rcx,8), %r15
andl $0x0, 0x68(%rbx)
andl $0x0, 0x40(%rbx)
movq 0x1d0(%r15), %r14
testq %r14, %r14
je 0xce25
movzwl 0x1f2(%r15), %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdaed
testl %eax, %eax
js 0xdad0
je 0xce20
movl $0x1, 0x94(%rbx)
movq (%r14), %r14
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
jne 0xcde0
jmp 0xdad0
movq (%r14), %r14
jmp 0xcde0
movq (%rbx), %rax
movslq 0xc(%rbx), %rcx
movq -0x8(%rax,%rcx,8), %rax
cmpl $0x0, 0x1d8(%rax)
je 0xce72
leaq 0x50(%r15), %rsi
movzwl 0x1f2(%r15), %edx
movq %rbx, %rdi
callq 0xdaed
testl %eax, %eax
js 0xdad0
je 0xce72
movl $0x1, 0x94(%rbx)
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
movq (%rbx), %rax
movslq 0xc(%rbx), %rcx
movq -0x8(%rax,%rcx,8), %rax
cmpl $0x0, 0x1dc(%rax)
je 0xcec2
leaq 0xd0(%r15), %rsi
movzwl 0x1f2(%r15), %edx
movq %rbx, %rdi
callq 0xdaed
testl %eax, %eax
js 0xdad0
je 0xcec2
movl $0x1, 0x94(%rbx)
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
movq (%rbx), %rax
movslq 0xc(%rbx), %rcx
movq -0x8(%rax,%rcx,8), %rax
cmpl $0x0, 0x1e0(%rax)
je 0xcf27
leaq 0x150(%r15), %rsi
pushq $0x10
popq %rcx
leaq 0x28(%rsp), %rax
movq %rax, %rdi
rep  movsq (%rsi), %es:(%rdi)
andl $0x0, 0x64(%rax)
movzwl 0x1f2(%r15), %edx
movq %rbx, %rdi
movq %rax, %rsi
callq 0xdaed
testl %eax, %eax
js 0xdad0
je 0xcf27
movl $0x1, 0x94(%rbx)
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
movq 0x60(%rbx), %rax
movslq 0x68(%rbx), %rcx
andw $0x0, (%rax,%rcx,2)
andl $0x0, 0x94(%rbx)
movq (%rbx), %rax
movslq 0xc(%rbx), %rcx
movq -0x8(%rax,%rcx,8), %r15
decq %rcx
movl %ecx, 0x8(%rbx)
andl $0x0, 0x68(%rbx)
andl $0x0, 0x40(%rbx)
leaq 0x150(%r15), %rbp
leaq 0x78(%r15), %rax
movq %rax, 0x20(%rsp)
leaq 0x6a(%r15), %rax
movq %rax, (%rsp)
leaq 0x5c(%r15), %rax
movq %rax, 0x18(%rsp)
leaq 0x16a(%r15), %rax
movq %rax, 0x8(%rsp)
leaq 0x86(%r15), %rax
movq %rax, 0x10(%rsp)
xorl %eax, %eax
xorl %r13d, %r13d
xorl %r14d, %r14d
xorl %r12d, %r12d
cmpl 0x44(%rbx), %eax
jge 0xd2ca
movq %rbx, %rdi
movq %r15, %rsi
movq %rbp, %rdx
callq 0x66bb
cmpl $0x5, %eax
ja 0xd030
movl %eax, %ecx
leaq 0x4d66(%rip), %rdx      # 0x11d24
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
testl %r12d, %r12d
je 0xd105
movq %rbx, %rdi
callq 0x6c6c
pushq $0x1
popq %r12
movl %r12d, %r14d
jmp 0xd06c
movq %rbx, %rdi
callq 0x6c6c
testl %eax, %eax
js 0xdad0
movl 0xa8(%r15), %edx
testl %edx, %edx
je 0xd183
movzwl 0x1f2(%r15), %ecx
movq %rbx, %rdi
movq (%rsp), %rsi
callq 0x9760
xorl %r14d, %r14d
movl $0x0, %r12d
testl %eax, %eax
jne 0xd189
jmp 0xdad3
xorl %r13d, %r13d
testl %r14d, %r14d
je 0xd079
movq %rbx, %rdi
pushq $0x1
popq %r14
movl %r14d, %esi
movl %r14d, %edx
callq 0x6b0c
testl %eax, %eax
jne 0xd189
jmp 0xdad0
testl %r12d, %r12d
je 0xd144
movq %rbx, %rdi
callq 0x6c6c
pushq $0x1
popq %r12
movl %r12d, %r13d
testl %eax, %eax
jns 0xd189
jmp 0xdad0
movslq 0x40(%rbx), %rcx
movslq 0xc(%rbx), %rax
movq (%rbx), %rdx
movq 0x38(%rbx), %rsi
movq -0x8(%rdx,%rax,8), %rax
movzwl (%rsi,%rcx,2), %ecx
cmpw 0x1ee(%rax), %cx
je 0xd0b0
cmpw 0x1f0(%rax), %cx
je 0xd0b0
cmpw 0x1f2(%rax), %cx
jne 0xd191
testl %r13d, %r13d
je 0xd0e7
movl $0x1, 0x94(%rbx)
movl 0x1a8(%r15), %edx
testl %edx, %edx
je 0xd0e7
movzwl 0x1f2(%r15), %ecx
movq %rbx, %rdi
movq 0x8(%rsp), %rsi
callq 0x9760
testl %eax, %eax
je 0xdad0
movq %rbx, %rdi
callq 0x6cc5
xorl %r13d, %r13d
movl $0x0, %r14d
testl %eax, %eax
jns 0xd189
jmp 0xdad3
movl 0xa4(%r15), %edx
testl %edx, %edx
je 0xcfd0
cmpl $0x0, 0xa8(%r15)
je 0xcfd0
movzwl 0x1f2(%r15), %ecx
movq %rbx, %rdi
movq 0x18(%rsp), %rsi
callq 0x9760
testl %eax, %eax
jne 0xcfd0
jmp 0xdad0
movl 0xac(%r15), %edx
testl %edx, %edx
je 0xd05d
cmpl $0x0, 0xb0(%r15)
je 0xd05d
movzwl 0x1f2(%r15), %ecx
movq %rbx, %rdi
movq 0x20(%rsp), %rsi
callq 0x9760
testl %eax, %eax
jne 0xd05d
jmp 0xdad0
xorl %r14d, %r14d
xorl %r12d, %r12d
movl 0x40(%rbx), %eax
jmp 0xcf99
testl %r13d, %r13d
je 0xd1ea
movq %rbx, %rdi
pushq $0x3
popq %rsi
callq 0xdcca
testl %eax, %eax
je 0xd259
movl $0x1, 0x94(%rbx)
movl 0x1a8(%r15), %edx
testl %edx, %edx
je 0xd1db
movzwl 0x1f2(%r15), %ecx
movq %rbx, %rdi
movq 0x8(%rsp), %rsi
callq 0x9760
testl %eax, %eax
je 0xdad0
cmpl $0x0, 0xb0(%r15)
jne 0xd215
xorl %r13d, %r13d
jmp 0xd254
xorl %r13d, %r13d
testl %r12d, %r12d
je 0xd254
movq %rbx, %rdi
pushq $0x3
popq %rsi
callq 0xdcca
testl %eax, %eax
je 0xd270
cmpl $0x0, 0xb0(%r15)
movl $0x0, %r12d
je 0xd2b5
movq %rbx, %rdi
pushq $0x1
popq %rdx
movl %edx, %esi
callq 0x6b0c
testl %eax, %eax
je 0xdad0
movl 0xb0(%r15), %edx
movzwl 0x1f2(%r15), %ecx
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
callq 0x9760
xorl %r13d, %r13d
movl $0x0, %r14d
jmp 0xd01a
xorl %r12d, %r12d
jmp 0xd2b5
movq %rbx, %rdi
movl $0x3000, %esi           # imm = 0x3000
callq 0xdcca
testl %eax, %eax
je 0xd276
pushq $0x1
popq %r13
jmp 0xd2b5
pushq $0x1
popq %r12
jmp 0xd2b5
movl $0x1, 0x94(%rbx)
movl 0x1a8(%r15), %edx
testl %edx, %edx
je 0xd2b2
movzwl 0x1f2(%r15), %ecx
movq %rbx, %rdi
movq 0x8(%rsp), %rsi
callq 0x9760
xorl %r13d, %r13d
movl $0x0, %r14d
testl %eax, %eax
jne 0xd2b5
jmp 0xdad3
xorl %r13d, %r13d
movq %rbx, %rdi
pushq $0x1
popq %rdx
movl %edx, %esi
callq 0x6b0c
xorl %r14d, %r14d
jmp 0xd020
testl %r13d, %r13d
je 0xd2f8
movl 0x1a8(%r15), %edx
testl %edx, %edx
je 0xd2fd
movzwl 0x1f2(%r15), %ecx
movq %rbx, %rdi
movq 0x8(%rsp), %rsi
callq 0x9760
testl %eax, %eax
jne 0xd2fd
jmp 0xdad0
testl %r12d, %r12d
je 0xd325
movl 0xb0(%r15), %edx
testl %edx, %edx
je 0xd325
movzwl 0x1f2(%r15), %ecx
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
callq 0x9760
testl %eax, %eax
je 0xdad0
movq 0x60(%rbx), %rax
movslq 0x68(%rbx), %rcx
andw $0x0, (%rax,%rcx,2)
movl 0x94(%rbx), %ebp
testl %ebp, %ebp
je 0xd34c
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
andl $0x0, 0x94(%rbx)
movq %rbx, %rdi
callq 0x9989
testl %eax, %eax
je 0xdad0
movl 0xc(%rbx), %eax
movl 0x94(%rbx), %ecx
orl %ecx, %ebp
xorl %esi, %esi
testl %eax, %eax
movl $0x0, %edx
cmovgl %eax, %edx
xorl %edi, %edi
cmpq %rsi, %rdx
je 0xd394
movq (%rbx), %r8
movq (%r8,%rsi,8), %r8
addl 0x304(%r8), %edi
incq %rsi
jmp 0xd37c
xorl %r15d, %r15d
testl %ebp, %ebp
setne %r15b
testl %edi, %edi
je 0xd3eb
testl %ecx, %ecx
je 0xd3b5
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
andl $0x0, 0x94(%rbx)
pushq $0x6
popq %rsi
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0x9ac5
testl %eax, %eax
je 0xdad0
movl 0xc(%rbx), %eax
movl 0x94(%rbx), %ecx
testl %ecx, %ecx
pushq $0x1
popq %rdx
cmovnel %edx, %r15d
xorl %edx, %edx
testl %eax, %eax
cmovgl %eax, %edx
xorl %esi, %esi
xorl %edi, %edi
cmpq %rsi, %rdx
je 0xd407
movq (%rbx), %r8
movq (%r8,%rsi,8), %r8
addl 0x2ec(%r8), %edi
incq %rsi
jmp 0xd3ef
testl %edi, %edi
je 0xd455
testl %ecx, %ecx
je 0xd41f
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
andl $0x0, 0x94(%rbx)
pushq $0x5
popq %rsi
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0x9ac5
testl %eax, %eax
je 0xdad0
movl 0xc(%rbx), %eax
movl 0x94(%rbx), %ecx
testl %ecx, %ecx
pushq $0x1
popq %rdx
cmovnel %edx, %r15d
xorl %edx, %edx
testl %eax, %eax
cmovgl %eax, %edx
xorl %esi, %esi
xorl %edi, %edi
cmpq %rsi, %rdx
je 0xd479
movq (%rbx), %r8
movq (%r8,%rsi,8), %r8
addl 0x2d4(%r8), %edi
incq %rsi
jmp 0xd459
movl %eax, %r14d
jmp 0xdad3
testl %edi, %edi
je 0xd4c7
testl %ecx, %ecx
je 0xd491
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
andl $0x0, 0x94(%rbx)
pushq $0x4
popq %rsi
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0x9ac5
testl %eax, %eax
je 0xdad0
movl 0xc(%rbx), %eax
movl 0x94(%rbx), %ecx
testl %ecx, %ecx
pushq $0x1
popq %rdx
cmovnel %edx, %r15d
xorl %edx, %edx
testl %eax, %eax
cmovgl %eax, %edx
xorl %esi, %esi
xorl %edi, %edi
cmpq %rsi, %rdx
je 0xd4e3
movq (%rbx), %r8
movq (%r8,%rsi,8), %r8
addl 0x2bc(%r8), %edi
incq %rsi
jmp 0xd4cb
testl %edi, %edi
je 0xd52a
testl %ecx, %ecx
je 0xd4fb
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
andl $0x0, 0x94(%rbx)
pushq $0x3
popq %rsi
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0x9ac5
testl %eax, %eax
je 0xdad0
movl 0xc(%rbx), %eax
movl 0x94(%rbx), %ecx
testl %ecx, %ecx
pushq $0x1
popq %rdx
cmovnel %edx, %r15d
movq (%rbx), %rdx
movslq %eax, %rsi
movq -0x8(%rdx,%rsi,8), %rsi
cmpl $0x0, 0x1dc(%rsi)
je 0xd761
testl %ecx, %ecx
je 0xd55c
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
movq (%rbx), %rdx
movl 0xc(%rbx), %eax
movl %r15d, 0x18(%rsp)
andl $0x0, 0x94(%rbx)
movslq %eax, %rcx
decl %eax
movq -0x8(%rdx,%rcx,8), %r14
movl %eax, 0x8(%rbx)
andl $0x0, 0x68(%rbx)
andl $0x0, 0x40(%rbx)
leaq 0x150(%r14), %r15
leaq 0xd0(%r14), %rax
movq %rax, 0x8(%rsp)
pushq $0x1
popq %rbp
leaq 0x473e(%rip), %r13      # 0x11cd8
movl $0x0, (%rsp)
movb $0x1, %r12b
movl 0x40(%rbx), %eax
cmpl 0x44(%rbx), %eax
jge 0xd734
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x66bb
cmpl $0x5, %eax
ja 0xd5cf
movl %eax, %eax
movslq (%r13,%rax,4), %rax
addq %r13, %rax
jmpq *%rax
testb $0x1, %r12b
jne 0xd60d
movq %rbx, %rdi
callq 0x6c6c
xorl %r12d, %r12d
testl %eax, %eax
jg 0xd5a4
movq %rbx, %rdi
movl %ebp, %esi
movl %ebp, %edx
callq 0x6b0c
xorl %r12d, %r12d
testl %eax, %eax
jne 0xd5a4
jmp 0xd741
movl (%rsp), %ecx
cmpl $0x3, %ecx
movl $0x0, %eax
cmovll %eax, %ecx
movl %ecx, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq 0x8(%rsp), %rdx
callq 0x66bb
cmpl $0x6, %eax
ja 0xd64c
movl %eax, %eax
leaq 0x46c5(%rip), %rcx      # 0x11cf0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, (%rsp)
jmp 0xd64c
movl %ebp, (%rsp)
jmp 0xd64c
pushq $0x3
jmp 0xd648
pushq $0x2
popq %rax
movl %eax, (%rsp)
movq %rbx, %rdi
callq 0x6c6c
testl %eax, %eax
jg 0xd5a1
movl (%rsp), %eax
testl %eax, %eax
je 0xd6f4
cmpl $0x2, %eax
jg 0xd6b0
movq %rbx, %rdi
pushq $0x3
popq %rsi
callq 0xdcca
testl %eax, %eax
je 0xd69b
movq %rbx, %rdi
movl %ebp, %esi
movl %ebp, %edx
callq 0x6b0c
movl $0x0, (%rsp)
testl %eax, %eax
jne 0xd5a1
jmp 0xd741
cmpl $0x2, (%rsp)
jne 0xd6b0
movq %rbx, %rdi
pushq $0x40
popq %rsi
callq 0xdcca
testl %eax, %eax
je 0xd67b
movslq 0x8(%rbx), %rax
movq (%rbx), %rcx
movq 0x38(%rbx), %rdx
movq (%rcx,%rax,8), %rdi
movslq 0x40(%rbx), %rax
movzwl (%rdx,%rax,2), %r12d
movzwl %r12w, %esi
callq 0x1e48
testq %rax, %rax
je 0xd6e5
testb $0x1, 0x25(%rax)
je 0xd6e5
movq 0x8(%rax), %rax
movzwl 0x20(%rax), %r12d
movq 0x38(%rbx), %rax
movslq 0x40(%rbx), %rcx
cmpw (%rax,%rcx,2), %r12w
jne 0xd702
movq %rbx, %rdi
movl %ebp, %esi
movl %ebp, %edx
callq 0x6b0c
jmp 0xd71a
movl $0x1, 0x94(%rbx)
movzwl %r12w, %esi
movq %rbx, %rdi
movl %ebp, %edx
callq 0xdd05
testl %eax, %eax
je 0xd741
movl (%rsp), %ecx
cmpl $0x1, %ecx
movl $0x0, %eax
cmovel %eax, %ecx
movl %ecx, (%rsp)
jmp 0xd5a1
movq 0x60(%rbx), %rax
movslq 0x68(%rbx), %rcx
andw $0x0, (%rax,%rcx,2)
movl 0x94(%rbx), %ecx
testl %ecx, %ecx
pushq $0x1
popq %rax
movl 0x18(%rsp), %r15d
cmovnel %eax, %r15d
movq (%rbx), %rdx
movslq 0xc(%rbx), %rax
movq -0x8(%rdx,%rax,8), %rsi
cmpl $0x0, 0x1e0(%rsi)
je 0xd9a2
testl %ecx, %ecx
je 0xd788
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
movq (%rbx), %rdx
movl 0xc(%rbx), %eax
movl %r15d, 0x18(%rsp)
andl $0x0, 0x94(%rbx)
movslq %eax, %rcx
decl %eax
movq -0x8(%rdx,%rcx,8), %rcx
movl %eax, 0x8(%rbx)
andl $0x0, 0x68(%rbx)
andl $0x0, 0x40(%rbx)
leaq 0x150(%rcx), %rax
movq %rax, 0x8(%rsp)
leaq 0x50(%rcx), %rax
movq %rax, 0x20(%rsp)
movq %rcx, (%rsp)
leaq 0x194(%rcx), %rax
movq %rax, 0x10(%rsp)
xorl %eax, %eax
xorl %r12d, %r12d
xorl %r14d, %r14d
cmpl 0x44(%rbx), %eax
jge 0xd97e
movq %rbx, %rdi
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x66bb
xorl %r15d, %r15d
movb $0x1, %dl
cmpl $0x5, %eax
ja 0xd82a
movl %eax, %eax
leaq 0x4509(%rip), %rcx      # 0x11d0c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
pushq $0x1
popq %r13
movl %r13d, %ebp
jmpq *%rax
xorl %r12d, %r12d
jmp 0xd877
pushq $0x1
popq %rbp
movl %r12d, %r13d
movl $0x0, %r12d
jmp 0xd830
pushq $0x1
popq %r12
movl %r14d, %ebp
movl %r12d, %r13d
testl %r14d, %r14d
je 0xd877
movq %rbx, %rdi
movq (%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x66bb
cmpl $0x6, %eax
jne 0xd86f
movq %rbx, %rdi
callq 0x6c6c
testl %eax, %eax
jle 0xd98b
movq %rbx, %rdi
pushq $0x1
popq %r15
movl %r15d, %esi
movl %r15d, %edx
callq 0x6b0c
jmp 0xd8d1
xorl %edx, %edx
movl %ebp, %r15d
movl %r13d, %r12d
movl %edx, %ebp
movq %rbx, %rdi
callq 0x6c6c
testl %eax, %eax
jle 0xd88d
movl %r12d, %r13d
jmp 0xd94f
testl %r12d, %r12d
je 0xd93b
movq (%rsp), %rax
movl 0x1b4(%rax), %r13d
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movl %r13d, %edx
callq 0xdc6a
testl %eax, %eax
je 0xd8da
movl $0x1, 0x94(%rbx)
movq %rbx, %rdi
pushq $0x20
popq %rsi
movl %r13d, %edx
callq 0xdd05
pushq $0x1
popq %r13
testl %eax, %eax
jne 0xd94f
jmp 0xd98b
testb %bpl, %bpl
je 0xd8f0
movq %rbx, %rdi
movl $0x3000, %esi           # imm = 0x3000
callq 0xdcca
testl %eax, %eax
je 0xd93b
movq 0x38(%rbx), %rax
movslq 0x40(%rbx), %rcx
movzwl (%rax,%rcx,2), %ebp
movzwl %bp, %esi
movq (%rsp), %rdi
callq 0x1e48
testq %rax, %rax
je 0xd91b
testb $0x10, 0x25(%rax)
je 0xd91b
movq 0x10(%rax), %rax
movzwl 0x20(%rax), %ebp
movq 0x38(%rbx), %rax
movslq 0x40(%rbx), %rcx
cmpw (%rax,%rcx,2), %bp
jne 0xd95d
movq %rbx, %rdi
pushq $0x1
popq %r13
movl %r13d, %esi
movl %r13d, %edx
jmp 0xd868
movq %rbx, %rdi
pushq $0x1
popq %rdx
movl %edx, %esi
callq 0x6b0c
testl %eax, %eax
je 0xd98b
xorl %r13d, %r13d
movl 0x40(%rbx), %eax
movl %r13d, %r12d
movl %r15d, %r14d
jmp 0xd7d6
movl $0x1, 0x94(%rbx)
movzwl %bp, %esi
movq %rbx, %rdi
pushq $0x1
popq %r13
movl %r13d, %edx
callq 0xdd05
jmp 0xd8d1
movq 0x60(%rbx), %rax
movslq 0x68(%rbx), %rcx
andw $0x0, (%rax,%rcx,2)
movl 0xc(%rbx), %eax
movl 0x94(%rbx), %ecx
testl %ecx, %ecx
pushq $0x1
popq %rdx
movl 0x18(%rsp), %r15d
cmovnel %edx, %r15d
xorl %edx, %edx
testl %eax, %eax
cmovlel %edx, %eax
xorl %esi, %esi
cmpq %rdx, %rax
je 0xd9c2
movq (%rbx), %rdi
movq (%rdi,%rdx,8), %rdi
addl 0x2a4(%rdi), %esi
incq %rdx
jmp 0xd9ab
testl %esi, %esi
je 0xda06
testl %ecx, %ecx
je 0xd9da
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
andl $0x0, 0x94(%rbx)
pushq $0x2
popq %rsi
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0x9ac5
testl %eax, %eax
je 0xdad0
movl 0x94(%rbx), %ecx
testl %ecx, %ecx
pushq $0x1
popq %rax
cmovnel %eax, %r15d
testl %ecx, %ecx
je 0xda1a
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
andl $0x0, 0x94(%rbx)
movq %rbx, %rdi
callq 0x98d3
xorl %r14d, %r14d
testl %eax, %eax
je 0xdad3
movl 0x94(%rbx), %ebp
testl %ebp, %ebp
je 0xda4e
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad3
andl $0x0, 0x94(%rbx)
movq %rbx, %rdi
callq 0x9a22
testl %eax, %eax
je 0xdad3
movl 0xc(%rbx), %ecx
movl 0x94(%rbx), %eax
orl %eax, %ebp
xorl %edx, %edx
testl %ecx, %ecx
cmovlel %edx, %ecx
xorl %esi, %esi
cmpq %rdx, %rcx
je 0xda8c
movq (%rbx), %rdi
movq (%rdi,%rdx,8), %rdi
addl 0x31c(%rdi), %esi
incq %rdx
jmp 0xda75
testl %ebp, %ebp
pushq $0x1
popq %r14
cmovnel %r14d, %r15d
testl %esi, %esi
je 0xdae8
testl %eax, %eax
je 0xdaaa
movq %rbx, %rdi
callq 0x6d28
testl %eax, %eax
je 0xdad0
andl $0x0, 0x94(%rbx)
pushq $0x7
popq %rsi
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0x9ac5
testl %eax, %eax
je 0xdad0
cmpl $0x0, 0x94(%rbx)
cmovel %r15d, %r14d
jmp 0xdad3
xorl %r14d, %r14d
movl %r14d, %eax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl %r15d, %r14d
jmp 0xdad3