// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/../foreign/uncompface.h
// Function: Gen
static void
Gen(struct xfacectx *ctx, char *f, size_t f_len)
{
	int m, l, k, j, i, h;

#define XFACE_GEN(g) gen_helper(ctx, gg_G.g, sizeof(gg_G.g), h, k); break

	for (j = 0; j < XFACE_HEIGHT;  j++)
	{
		for (i = 0; i < XFACE_WIDTH;  i++)
		{
			h = i + j * XFACE_WIDTH;
			k = 0;
			for (l = i - 2; l <= i + 2; l++)
				for (m = j - 2; m <= j; m++)
				{
					if ((l >= i) && (m == j))
						continue;
					if ((l > 0) && (l <= XFACE_WIDTH) && (m > 0)) {
						if((l + m * XFACE_WIDTH < 0) || (l + m * XFACE_WIDTH >= (int)f_len)) {
							de_err(ctx->c, "xface: Internal error (4)");
							ctx->errflag = 1;
							return;
						}
						k = f[l + m * XFACE_WIDTH] ? k * 2 + 1 : k * 2;
					}
				}
			switch (i)
			{
				case 1 :
					switch (j)
					{
						case 1 : XFACE_GEN(g_22);
						case 2 : XFACE_GEN(g_21);
						default : XFACE_GEN(g_20);
					}
					break;
				case 2 :
					switch (j)
					{
						case 1 : XFACE_GEN(g_12);
						case 2 : XFACE_GEN(g_11);
						default : XFACE_GEN(g_10);
					}
					break;
				case XFACE_WIDTH - 1 :
					switch (j)
					{
						case 1 : XFACE_GEN(g_42);
						case 2 : XFACE_GEN(g_41);
						default : XFACE_GEN(g_40);
					}
					break;
#if 0
				case XFACE_WIDTH :
					switch (j)
					{
						case 1 : XFACE_GEN(g_32);
						case 2 : XFACE_GEN(g_31);
						default : XFACE_GEN(g_30);
					}
					break;
#endif
				default :
					switch (j)
					{
						case 1 : XFACE_GEN(g_02);
						case 2 : XFACE_GEN(g_01);
						default : XFACE_GEN(g_00);
					}
					break;
			}
		}
	}

#undef XFACE_GEN
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl $0x0, -0x28(%rbp)
cmpl $0x30, -0x28(%rbp)
jge 0x13e49e
movl $0x0, -0x2c(%rbp)
cmpl $0x30, -0x2c(%rbp)
jge 0x13e48e
movl -0x2c(%rbp), %eax
imull $0x30, -0x28(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x30(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x2c(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
movl -0x2c(%rbp), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jg 0x13e23b
movl -0x28(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x28(%rbp), %eax
jg 0x13e22b
movl -0x20(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jl 0x13e18d
movl -0x1c(%rbp), %eax
cmpl -0x28(%rbp), %eax
jne 0x13e18d
jmp 0x13e21d
cmpl $0x0, -0x20(%rbp)
jle 0x13e21b
cmpl $0x30, -0x20(%rbp)
jg 0x13e21b
cmpl $0x0, -0x1c(%rbp)
jle 0x13e21b
movl -0x20(%rbp), %eax
imull $0x30, -0x1c(%rbp), %ecx
addl %ecx, %eax
cmpl $0x0, %eax
jl 0x13e1c2
movl -0x20(%rbp), %eax
imull $0x30, -0x1c(%rbp), %ecx
addl %ecx, %eax
movq -0x18(%rbp), %rcx
cmpl %ecx, %eax
jl 0x13e1e7
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x8f728(%rip), %rsi     # 0x1cd8f8
movb $0x0, %al
callq 0x15bfb0
movq -0x8(%rbp), %rax
movl $0x1, 0x8(%rax)
jmp 0x13e49e
movq -0x10(%rbp), %rax
movl -0x20(%rbp), %ecx
imull $0x30, -0x1c(%rbp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x13e20d
movl -0x24(%rbp), %eax
shll %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x13e215
movl -0x24(%rbp), %eax
shll %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
movl %eax, -0x24(%rbp)
jmp 0x13e21d
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x13e16c
jmp 0x13e22d
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x13e152
movl -0x2c(%rbp), %eax
movl %eax, -0x38(%rbp)
subl $0x1, %eax
je 0x13e267
jmp 0x13e248
movl -0x38(%rbp), %eax
subl $0x2, %eax
je 0x13e2f0
jmp 0x13e256
movl -0x38(%rbp), %eax
subl $0x2f, %eax
je 0x13e379
jmp 0x13e3ff
movl -0x28(%rbp), %eax
movl %eax, -0x3c(%rbp)
subl $0x1, %eax
je 0x13e27e
jmp 0x13e274
movl -0x3c(%rbp), %eax
subl $0x2, %eax
je 0x13e2a3
jmp 0x13e2c8
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f6e0(%rip), %rsi     # 0x1cd970
addq $0x2e7, %rsi            # imm = 0x2E7
movl $0x1, %edx
callq 0x13ecc0
jmp 0x13e2eb
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f6bb(%rip), %rsi     # 0x1cd970
addq $0x2dd, %rsi            # imm = 0x2DD
movl $0x1, %edx
callq 0x13ecc0
jmp 0x13e2eb
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f696(%rip), %rsi     # 0x1cd970
addq $0x251, %rsi            # imm = 0x251
movl $0x8, %edx
callq 0x13ecc0
jmp 0x13e47e
movl -0x28(%rbp), %eax
movl %eax, -0x40(%rbp)
subl $0x1, %eax
je 0x13e307
jmp 0x13e2fd
movl -0x40(%rbp), %eax
subl $0x2, %eax
je 0x13e32c
jmp 0x13e351
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f657(%rip), %rsi     # 0x1cd970
addq $0x2e6, %rsi            # imm = 0x2E6
movl $0x1, %edx
callq 0x13ecc0
jmp 0x13e374
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f632(%rip), %rsi     # 0x1cd970
addq $0x2d9, %rsi            # imm = 0x2D9
movl $0x4, %edx
callq 0x13ecc0
jmp 0x13e374
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f60d(%rip), %rsi     # 0x1cd970
addq $0x211, %rsi            # imm = 0x211
movl $0x40, %edx
callq 0x13ecc0
jmp 0x13e47e
movl -0x28(%rbp), %eax
movl %eax, -0x44(%rbp)
subl $0x1, %eax
je 0x13e390
jmp 0x13e386
movl -0x44(%rbp), %eax
subl $0x2, %eax
je 0x13e3b5
jmp 0x13e3da
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f5ce(%rip), %rsi     # 0x1cd970
addq $0x2e8, %rsi            # imm = 0x2E8
movl $0x1, %edx
callq 0x13ecc0
jmp 0x13e3fd
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f5a9(%rip), %rsi     # 0x1cd970
addq $0x2de, %rsi            # imm = 0x2DE
movl $0x8, %edx
callq 0x13ecc0
jmp 0x13e3fd
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f584(%rip), %rsi     # 0x1cd970
addq $0x259, %rsi            # imm = 0x259
movl $0x80, %edx
callq 0x13ecc0
jmp 0x13e47e
movl -0x28(%rbp), %eax
movl %eax, -0x48(%rbp)
subl $0x1, %eax
je 0x13e416
jmp 0x13e40c
movl -0x48(%rbp), %eax
subl $0x2, %eax
je 0x13e43b
jmp 0x13e460
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f548(%rip), %rsi     # 0x1cd970
addq $0x210, %rsi            # imm = 0x210
movl $0x1, %edx
callq 0x13ecc0
jmp 0x13e47c
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f523(%rip), %rsi     # 0x1cd970
addq $0x200, %rsi            # imm = 0x200
movl $0x10, %edx
callq 0x13ecc0
jmp 0x13e47c
movq -0x8(%rbp), %rdi
movl -0x30(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0x8f4fe(%rip), %rsi     # 0x1cd970
movl $0x200, %edx            # imm = 0x200
callq 0x13ecc0
jmp 0x13e47e
jmp 0x13e480
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x13e12c
jmp 0x13e490
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x13e11b
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)