// File: /workspace/github_c_makefile_star2_O0/MikeGray-APH[P]LibLouisAPH/source/outputs/table-output.c
// Function: table_output
void table_output(FILE *output, const struct table *table)
{
	int i;

	if(!table)
		return;

	for(i = 0; i < 32; i++)
		attrs_chars[i] = table->attrs_chars[i];

	fprintf(output, "%s\n", table->file_name);
	fputs("\n", output);
	process_output(output, table->process);
	fprintf(output, "\ncontrol:  0x%04x   0x%04x   0x%04x   0x%04x   0x%04x   0x%04x   0x%04x\n", table->marker_user, table->marker_begin, table->marker_end, table->marker_modifier, table->marker_hard, table->marker_soft, table->marker_internal);
	fputs("\ncharacters:\n", output);
	character_output_all(output, table);
	fputs("\ncharacter hash:\n", output);
	character_hash_output(output, table);
	fprintf(output, "\nmodes:  [%d]\n", table->emphases_cnt);
	mode_output(output, &table->nocontract, "nocontract");
	mode_output(output, &table->capital, "capital");
	mode_output(output, &table->numeric, "numeric");
	fprintf(output, "\nemphases:  [%d]\n", table->emphases_cnt);
	mode_output(output, table->emphases, NULL);
	fputs("\nsubpatterns:\n", output);
	subpattern_output(output, table->subpatterns);
	fputs("\nfilters:\n", output);
	filter_output(output, table->filters);

	fprintf(output, "\ninit chars hash:  [%d]\n", table->init_chars_hash_cnt);
	rules_output(output, (const struct rule* const*)table->init_chars_hash, TABLE_INIT_HASH_SIZE, FORWARD, 0);
	fprintf(output, "\ninit dots hash:  [%d]\n", table->init_dots_hash_cnt);
	rules_output(output, (const struct rule* const*)table->init_dots_hash, TABLE_DOTS_HASH_SIZE, BACKWARD, 0);

	fprintf(output, "\npremode chars hash:  [%d]\n", table->premode_chars_hash_cnt);
	rules_output(output, (const struct rule* const*)table->premode_chars_hash, TABLE_PREMODE_HASH_SIZE, FORWARD, 0);
	fprintf(output, "\npremode dots hash:  [%d]\n", table->premode_dots_hash_cnt);
	rules_output(output, (const struct rule* const*)table->premode_dots_hash, TABLE_DOTS_HASH_SIZE, BACKWARD, 0);

	fprintf(output, "\npostmode chars hash:  [%d]\n", table->postmode_chars_hash_cnt);
	rules_output(output, (const struct rule* const*)table->postmode_chars_hash, TABLE_POSTMODE_HASH_SIZE, FORWARD, 0);
	fprintf(output, "\npostmode dots hash:  [%d]\n", table->postmode_dots_hash_cnt);
	rules_output(output, (const struct rule* const*)table->postmode_dots_hash, TABLE_DOTS_HASH_SIZE, BACKWARD, 0);

	fprintf(output, "\npretrans chars hash:  [%d]\n", table->pretrans_chars_hash_cnt);
	rules_output(output, (const struct rule* const*)table->pretrans_chars_hash, TABLE_PRETRANS_HASH_SIZE, FORWARD, 0);
	fprintf(output, "\npretrans dots hash:  [%d]\n", table->pretrans_dots_hash_cnt);
	rules_output(output, (const struct rule* const*)table->pretrans_dots_hash, TABLE_DOTS_HASH_SIZE, BACKWARD, 0);

	fprintf(output, "\ntrans chars hash:  [%d]\n", table->trans_chars_hash_cnt);
	rules_output(output, (const struct rule* const*)table->trans_chars_hash, TABLE_TRANS_HASH_SIZE, FORWARD, 0);
	fprintf(output, "\ntrans dots hash:  [%d]\n", table->trans_dots_hash_cnt);
	rules_output(output, (const struct rule* const*)table->trans_dots_hash, TABLE_DOTS_HASH_SIZE, BACKWARD, 0);

	fprintf(output, "\nposttrans chars hash:  [%d]\n", table->posttrans_chars_hash_cnt);
	rules_output(output, (const struct rule* const*)table->posttrans_chars_hash, TABLE_POSTTRANS_HASH_SIZE, FORWARD, 0);
	fprintf(output, "\nposttrans dots hash:  [%d]\n", table->posttrans_dots_hash_cnt);
	rules_output(output, (const struct rule* const*)table->posttrans_dots_hash, TABLE_DOTS_HASH_SIZE, BACKWARD, 0);

	fprintf(output, "\nfini chars hash:  [%d]\n", table->fini_chars_hash_cnt);
	rules_output(output, (const struct rule* const*)table->fini_chars_hash, TABLE_FINI_HASH_SIZE, FORWARD, 0);
	fprintf(output, "\nfini dots hash:  [%d]\n", table->fini_dots_hash_cnt);
	rules_output(output, (const struct rule* const*)table->fini_dots_hash, TABLE_DOTS_HASH_SIZE, BACKWARD, 0);

	fflush(output);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x1b5ec
jmp 0x1bb41
movl $0x0, -0x14(%rbp)
cmpl $0x20, -0x14(%rbp)
jge 0x1b61e
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movb 0x30(%rax,%rcx), %dl
movslq -0x14(%rbp), %rcx
leaq 0xac70(%rip), %rax      # 0x26280
movb %dl, (%rax,%rcx)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x1b5f3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdx
leaq 0x3609(%rip), %rsi      # 0x1ec3a
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rsi
leaq 0x3b8d(%rip), %rdi      # 0x1f1d0
callq 0x10f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x18(%rax), %esi
callq 0x1bb50
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movzwl 0x1e8(%rax), %edx
movq -0x10(%rbp), %rax
movzwl 0x1ea(%rax), %ecx
movq -0x10(%rbp), %rax
movzwl 0x1ec(%rax), %r8d
movq -0x10(%rbp), %rax
movzwl 0x1ee(%rax), %r9d
movq -0x10(%rbp), %rax
movzwl 0x1f0(%rax), %r11d
movq -0x10(%rbp), %rax
movzwl 0x1f2(%rax), %r10d
movq -0x10(%rbp), %rax
movzwl 0x1f4(%rax), %eax
leaq 0x3ab5(%rip), %rsi      # 0x1f169
movl %r11d, (%rsp)
movl %r10d, 0x8(%rsp)
movl %eax, 0x10(%rsp)
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rsi
leaq 0x3adf(%rip), %rdi      # 0x1f1b2
callq 0x10f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x1bbb0
movq -0x8(%rbp), %rsi
leaq 0x3ad0(%rip), %rdi      # 0x1f1c0
callq 0x10f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x1bc20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x1e4(%rax), %edx
leaq 0x3abb(%rip), %rsi      # 0x1f1d2
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x50, %rsi
leaq 0x2fab(%rip), %rdx      # 0x1e6dc
callq 0x1bd40
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0xd0, %rsi
leaq 0x2f9b(%rip), %rdx      # 0x1e6e7
callq 0x1bd40
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x150, %rsi            # imm = 0x150
leaq 0x2f88(%rip), %rdx      # 0x1e6ef
callq 0x1bd40
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x1e4(%rax), %edx
leaq 0x3a60(%rip), %rsi      # 0x1f1e1
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x1d0(%rax), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x1bd40
movq -0x8(%rbp), %rsi
leaq 0x3a48(%rip), %rdi      # 0x1f1f3
callq 0x10f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rsi
callq 0x1c070
movq -0x8(%rbp), %rsi
leaq 0x3a36(%rip), %rdi      # 0x1f202
callq 0x10f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rsi
callq 0x1c190
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x288(%rax), %edx
leaq 0x3a16(%rip), %rsi      # 0x1f20d
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x278(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x28c(%rax), %edx
leaq 0x39f2(%rip), %rsi      # 0x1f226
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x280(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x2a0(%rax), %edx
leaq 0x39cd(%rip), %rsi      # 0x1f23e
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x290(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x2a4(%rax), %edx
leaq 0x39ac(%rip), %rsi      # 0x1f25a
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x298(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x2b8(%rax), %edx
leaq 0x398a(%rip), %rsi      # 0x1f275
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x2a8(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x2bc(%rax), %edx
leaq 0x396a(%rip), %rsi      # 0x1f292
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x2b0(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x2d0(%rax), %edx
leaq 0x3949(%rip), %rsi      # 0x1f2ae
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x2c0(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x2d4(%rax), %edx
leaq 0x3929(%rip), %rsi      # 0x1f2cb
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x2c8(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x2e8(%rax), %edx
leaq 0x3908(%rip), %rsi      # 0x1f2e7
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x2d8(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x2ec(%rax), %edx
leaq 0x38e5(%rip), %rsi      # 0x1f301
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x2e0(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x300(%rax), %edx
leaq 0x38c1(%rip), %rsi      # 0x1f31a
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x2f0(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x304(%rax), %edx
leaq 0x38a2(%rip), %rsi      # 0x1f338
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x2f8(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x318(%rax), %edx
leaq 0x3882(%rip), %rsi      # 0x1f355
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x308(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x31c(%rax), %edx
leaq 0x385e(%rip), %rsi      # 0x1f36e
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x310(%rax), %rsi
movl $0x100, %edx            # imm = 0x100
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
callq 0x1c2b0
movq -0x8(%rbp), %rdi
callq 0x1170
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)