LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_fp_art
static int de_identify_fp_art(deark *c)
{
	UI fld1;

	if(!de_input_file_has_ext(c, "art")) return 0;
	fld1 = (UI)de_getu16le(0);
	if(fld1==0xffff) {
		return fp_art_id_hires(c);
	}
	return fp_art_id_stdres(c, fld1);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0xbed6c(%rip), %rsi     # 0x123941
callq 0xdfcd5
testl %eax, %eax
je 0x64c7c
movq 0x18(%rbx), %rdi
xorl %r14d, %r14d
xorl %esi, %esi
callq 0xe3fa3
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x64c81
movq %rsp, %rsi
movq $0x2, (%rsi)
movq 0x18(%rbx), %rdi
callq 0xe3fc4
xorl %r14d, %r14d
cmpl $0x12c, %eax            # imm = 0x12C
jne 0x64ce3
movq 0x18(%rbx), %rdi
movq %rsp, %rsi
callq 0xe3fc4
cmpl $0x12c, %eax            # imm = 0x12C
jne 0x64ce3
movq 0x18(%rbx), %rdi
movq %rsp, %rsi
callq 0xe3fc4
addl $0xffffdfff, %eax       # imm = 0xFFFFDFFF
cmpl $0xffffe000, %eax       # imm = 0xFFFFE000
jb 0x64ce3
movq 0x18(%rbx), %rdi
movq %rsp, %rsi
callq 0xe3fc4
addl $0xffffdfff, %eax       # imm = 0xFFFFDFFF
cmpl $0xffffe000, %eax       # imm = 0xFFFFE000
jb 0x64ce3
movq 0x18(%rbx), %rdi
movq %rsp, %rsi
callq 0xe3fc4
xorl %ecx, %ecx
cmpl $0x1, %eax
pushq $0x3b
jmp 0x64cdd
xorl %r14d, %r14d
jmp 0x64ce3
xorps %xmm0, %xmm0
movq %rsp, %r15
movaps %xmm0, 0x10(%r15)
movaps %xmm0, (%r15)
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x690d9
cmpb $0x0, (%r15)
je 0x64ce3
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rax, %rsi
imulq %rcx, %rsi
addq $0x8, %rsi
movq 0x18(%rbx), %rdx
movq 0x18(%rdx), %rdx
cmpq %rdx, %rsi
jne 0x64ccb
pushq $0x4a
popq %r14
jmp 0x64ce3
incq %rax
imulq %rcx, %rax
addq $0x8, %rax
xorl %ecx, %ecx
cmpq %rdx, %rax
pushq $0x18
popq %r14
cmovnel %ecx, %r14d
movl %r14d, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_ybm
void de_module_ybm(deark *c, struct deark_module_info *mi)
{
	mi->id = "ybm";
	mi->desc = "Bennet Yee's face format, a.k.a. YBM";
	mi->run_fn = de_run_ybm;
	mi->identify_fn = de_identify_ybm;
}

// Assembly:
leaq 0xb3222(%rip), %rax     # 0x117f19
movq %rax, (%rsi)
leaq 0xb321c(%rip), %rax     # 0x117f1d
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x64d1c
movq %rax, 0x18(%rsi)
leaq 0x171(%rip), %rax       # 0x64e88
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_run_ybm
static void de_run_ybm(deark *c, de_module_params *mparams)
{
	de_bitmap *img = NULL;
	i64 npwidth, pdwidth, height;
	i64 i, j;
	i64 words_per_row;
	i64 pos;

	pos = 2;
	npwidth = de_getu16be_p(&pos);
	height = de_getu16be_p(&pos);
	de_dbg_dimensions(c, npwidth, height);
	if(!de_good_image_dimensions(c, npwidth, height)) goto done;
	pdwidth = de_pad_to_n(npwidth, 16);
	words_per_row = pdwidth/16;

	img = de_bitmap_create2(c, npwidth, pdwidth, height, 1);

	for(j=0; j<height; j++) {
		for(i=0; i<words_per_row; i++) {
			u8 x;

			// This encoding is unusual: LSB-first 16-bit integers.
			x = de_getbyte_p(&pos);
			de_unpack_pixels_bilevel_from_byte(img, i*16+8, j, x, 8,
				DE_CVTF_WHITEISZERO|DE_CVTF_LSBFIRST|DE_CVTF_ONLYWHITE);
			x = de_getbyte_p(&pos);
			de_unpack_pixels_bilevel_from_byte(img, i*16, j, x, 8,
				DE_CVTF_WHITEISZERO|DE_CVTF_LSBFIRST|DE_CVTF_ONLYWHITE);
		}
	}
	de_bitmap_write_to_file(img, NULL, 0);

done:
	de_bitmap_destroy(img);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %r15
leaq 0x18(%rsp), %rbx
movq $0x2, (%rbx)
movq 0x18(%rdi), %rdi
movq %rbx, %rsi
callq 0xe3f6e
movq %rax, %r14
movq 0x18(%r15), %rdi
movq %rbx, %rsi
callq 0xe3f6e
movq %rax, %rbp
movq %r15, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0xdf038
movq %r15, %rdi
movq %r14, %rsi
movq %rbp, %rdx
callq 0xe6be1
testl %eax, %eax
je 0x64e6f
pushq $0x10
popq %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xdfbb6
movq %rax, %rcx
cqto
idivq %rbx
movq %rax, %rbx
pushq $0x1
popq %r8
movq %r15, 0x28(%rsp)
movq %r15, %rdi
movq %r14, %rsi
movq %rcx, %rdx
movq %rbp, %rcx
callq 0xe746f
xorl %ecx, %ecx
testq %rbx, %rbx
cmovleq %rcx, %rbx
movq %rax, 0x8(%rsp)
testq %rbp, %rbp
cmovleq %rcx, %rbp
shlq $0x4, %rbx
movq %rbx, 0x30(%rsp)
movq %rbp, 0x20(%rsp)
movq 0x28(%rsp), %r12
movq 0x8(%rsp), %r13
pushq $0x8
popq %rbx
pushq $0x7
popq %r15
cmpq %rbp, %rcx
je 0x64e5c
movq %rcx, 0x10(%rsp)
xorl %ebp, %ebp
cmpq %rbp, 0x30(%rsp)
je 0x64e4d
movq 0x18(%r12), %rdi
leaq 0x18(%rsp), %rsi
callq 0xe3f2a
leaq 0x8(%rbp), %rsi
movzbl %al, %ecx
movq %r13, %rdi
movq 0x10(%rsp), %r14
movq %r14, %rdx
movl %ebx, %r8d
movl %r15d, %r9d
callq 0xe76a6
movq 0x18(%r12), %rdi
leaq 0x18(%rsp), %rsi
callq 0xe3f2a
movzbl %al, %ecx
movq %r13, %rdi
movq %rbp, %rsi
movq %r14, %rdx
movl %ebx, %r8d
movl %r15d, %r9d
callq 0xe76a6
addq $0x10, %rbp
jmp 0x64dee
movq 0x10(%rsp), %rcx
incq %rcx
movq 0x20(%rsp), %rbp
jmp 0x64de2
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xe70b7
jmp 0x64e71
xorl %ebx, %ebx
movq %rbx, %rdi
callq 0xe7084
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_ybm
static int de_identify_ybm(deark *c)
{
	i64 width, height;
	i64 rowspan;

	if(dbuf_memcmp(c->infile, 0, "!!", 2))
		return 0;
	width = de_getu16be(2);
	height = de_getu16be(4);
	rowspan = ((width+15)/16)*2;
	if(6+height*rowspan == c->infile->len)
		return 100;
	return 0;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x18(%rdi), %rdi
leaq 0xa846d(%rip), %rdx     # 0x10d307
xorl %r14d, %r14d
pushq $0x2
popq %rcx
xorl %esi, %esi
callq 0xe4d48
testl %eax, %eax
jne 0x64ef6
movq 0x18(%rbx), %rdi
pushq $0x2
popq %rsi
callq 0xe3f46
movq %rax, %r14
movq 0x18(%rbx), %rdi
pushq $0x4
popq %rsi
callq 0xe3f46
movq %rax, %rcx
addq $0xf, %r14
pushq $0x10
popq %rsi
movq %r14, %rax
cqto
idivq %rsi
imulq %rcx, %rax
leaq 0x6(,%rax,2), %rax
movq 0x18(%rbx), %rcx
xorl %edx, %edx
cmpq 0x18(%rcx), %rax
pushq $0x64
popq %r14
cmovnel %edx, %r14d
movl %r14d, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_olpc565
void de_module_olpc565(deark *c, struct deark_module_info *mi)
{
	mi->id = "olpc565";
	mi->desc = "OLPC .565 firmware icon";
	mi->run_fn = de_run_olpc565;
	mi->identify_fn = de_identify_olpc565;
}

// Assembly:
leaq 0xb303a(%rip), %rax     # 0x117f42
movq %rax, (%rsi)
leaq 0xb3038(%rip), %rax     # 0x117f4a
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x64f2d
movq %rax, 0x18(%rsi)
leaq 0x11b(%rip), %rax       # 0x65043
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_run_olpc565
static void de_run_olpc565(deark *c, de_module_params *mparams)
{
	de_bitmap *img = NULL;
	i64 width, height;
	i64 i, j;
	i64 rowspan;
	u8 b0, b1;
	u32 clr;

	width = de_getu16le(4);
	height = de_getu16le(6);
	if(!de_good_image_dimensions(c, width, height)) goto done;
	rowspan = width*2;

	img = de_bitmap_create(c, width, height, 3);

	for(j=0; j<height; j++) {
		for(i=0; i<width; i++) {
			b0 = de_getbyte(8 + j*rowspan + i*2);
			b1 = de_getbyte(8 + j*rowspan + i*2 + 1);
			clr = (((u32)b1)<<8) | b0;
			clr = de_rgb565_to_888(clr);
			de_bitmap_setpixel_rgb(img, i, j, clr);
		}
	}
	de_bitmap_write_to_file(img, NULL, 0);

done:
	de_bitmap_destroy(img);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movq 0x18(%rdi), %rdi
pushq $0x4
popq %rsi
callq 0xe3fa3
movq %rax, %r12
movq 0x18(%rbx), %rdi
pushq $0x6
popq %rsi
callq 0xe3fa3
movq %rax, %r15
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0xe6be1
testl %eax, %eax
je 0x6502b
leaq (%r12,%r12), %rax
movq %rax, 0x10(%rsp)
pushq $0x3
popq %rcx
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0xe7437
movq %rax, 0x8(%rsp)
xorl %r13d, %r13d
testq %r12, %r12
cmovleq %r13, %r12
testq %r15, %r15
cmovleq %r13, %r15
pushq $0x9
popq %rbp
movq %r15, 0x18(%rsp)
cmpq %r15, %r13
je 0x65018
movq %rbp, 0x20(%rsp)
xorl %r15d, %r15d
cmpq %r15, %r12
je 0x65004
movq 0x18(%rbx), %rdi
leaq -0x1(%rbp), %rsi
callq 0xe3eb4
movl %eax, %r14d
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xe3eb4
movzbl %al, %eax
shll $0x8, %eax
movzbl %r14b, %edi
orl %eax, %edi
callq 0xe1da6
movq 0x8(%rsp), %rdi
movq %r15, %rsi
movq %r13, %rdx
movl %eax, %ecx
callq 0xe7287
incq %r15
addq $0x2, %rbp
jmp 0x64fb7
incq %r13
movq 0x20(%rsp), %rbp
addq 0x10(%rsp), %rbp
movq 0x18(%rsp), %r15
jmp 0x64faa
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xe70b7
jmp 0x6502d
xorl %ebx, %ebx
movq %rbx, %rdi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xe7084
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_iim
void de_module_iim(deark *c, struct deark_module_info *mi)
{
	mi->id = "iim";
	mi->desc = "InShape IIM";
	mi->run_fn = de_run_iim;
	mi->identify_fn = de_identify_iim;
}

// Assembly:
leaq 0xb2ef6(%rip), %rax     # 0x117f62
movq %rax, (%rsi)
leaq 0xb2ef0(%rip), %rax     # 0x117f66
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x65091
movq %rax, 0x18(%rsi)
leaq 0x144(%rip), %rax       # 0x651d0
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_run_iim
static void de_run_iim(deark *c, de_module_params *mparams)
{
	de_bitmap *img = NULL;
	i64 width, height;
	i64 i, j;
	i64 n, bpp;
	i64 rowspan;
	u32 clr;

	// This code is based on reverse engineering, and may be incorrect.

	n = de_getu16be(8); // Unknown field
	bpp = de_getu16be(10);
	if(n!=4 || bpp!=24) {
		de_dbg(c, "This type of IIM image is not supported");
		goto done;
	}
	width = de_getu16be(12);
	height = de_getu16be(14);
	if(!de_good_image_dimensions(c, width, height)) goto done;
	rowspan = width*3;

	img = de_bitmap_create(c, width, height, 3);

	for(j=0; j<height; j++) {
		for(i=0; i<width; i++) {
			clr = dbuf_getRGB(c->infile, 16+j*rowspan+i*3, 0);
			de_bitmap_setpixel_rgb(img, i, j, clr);
		}
	}
	de_bitmap_write_to_file(img, NULL, 0);

done:
	de_bitmap_destroy(img);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movq 0x18(%rdi), %rdi
pushq $0x8
popq %rsi
callq 0xe3f46
movq %rax, %r14
movq 0x18(%rbx), %rdi
pushq $0xa
popq %rsi
callq 0xe3f46
cmpq $0x4, %r14
jne 0x65193
cmpq $0x18, %rax
jne 0x65193
movq 0x18(%rbx), %rdi
pushq $0xc
popq %rsi
callq 0xe3f46
movq %rax, %r13
movq 0x18(%rbx), %rdi
pushq $0xe
popq %rsi
callq 0xe3f46
movq %rax, %rbp
movq %rbx, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0xe6be1
testl %eax, %eax
je 0x651b7
pushq $0x3
popq %rcx
movq %rbx, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0xe7437
movq %rax, %r14
xorl %r12d, %r12d
testq %r13, %r13
movl $0x0, %r15d
cmovgq %r13, %r15
testq %rbp, %rbp
cmovleq %r12, %rbp
leaq (,%r13,2), %rax
addq %r13, %rax
movq %rax, (%rsp)
pushq $0x10
popq %r13
movq %rbp, 0x8(%rsp)
cmpq %rbp, %r12
je 0x651a9
movq %r13, 0x10(%rsp)
xorl %ebp, %ebp
cmpq %rbp, %r15
je 0x65180
movq 0x18(%rbx), %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0xe45a4
movq %r14, %rdi
movq %rbp, %rsi
movq %r12, %rdx
movl %eax, %ecx
callq 0xe7287
incq %rbp
addq $0x3, %r13
jmp 0x65154
incq %r12
movq 0x10(%rsp), %r13
addq (%rsp), %r13
movq 0x8(%rsp), %rbp
jmp 0x65148
leaq 0xb30f7(%rip), %rsi     # 0x118291
xorl %r14d, %r14d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
jmp 0x651ba
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xe70b7
jmp 0x651ba
xorl %r14d, %r14d
movq %r14, %rdi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xe7084
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_pm_xv
void de_module_pm_xv(deark *c, struct deark_module_info *mi)
{
	mi->id = "pm_xv";
	mi->desc = "PM (XV)";
	mi->run_fn = de_run_pm_xv;
	mi->identify_fn = de_identify_pm_xv;
}

// Assembly:
leaq 0xb2d79(%rip), %rax     # 0x117f72
movq %rax, (%rsi)
leaq 0xb2d75(%rip), %rax     # 0x117f78
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x6521e
movq %rax, 0x18(%rsi)
leaq 0x26f(%rip), %rax       # 0x65488
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_crg
void de_module_crg(deark *c, struct deark_module_info *mi)
{
	mi->id = "crg";
	mi->desc = "Calamus Raster Graphic";
	mi->run_fn = de_run_crg;
	mi->identify_fn = de_identify_crg;
}

// Assembly:
leaq 0xb2aa3(%rip), %rax     # 0x117f80
movq %rax, (%rsi)
leaq 0xb2a9d(%rip), %rax     # 0x117f84
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x65502
movq %rax, 0x18(%rsi)
leaq 0x1a9(%rip), %rax       # 0x656a6
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_farbfeld
void de_module_farbfeld(deark *c, struct deark_module_info *mi)
{
	mi->id = "farbfeld";
	mi->desc = "farbfeld image";
	mi->run_fn = de_run_farbfeld;
	mi->identify_fn = de_identify_farbfeld;
}

// Assembly:
leaq 0xb28cc(%rip), %rax     # 0x117f9b
movq %rax, (%rsi)
leaq 0xb28cb(%rip), %rax     # 0x117fa4
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x656f4
movq %rax, 0x18(%rsi)
leaq 0x1d6(%rip), %rax       # 0x658c5
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_hsiraw
void de_module_hsiraw(deark *c, struct deark_module_info *mi)
{
	mi->id = "hsiraw";
	mi->desc = "HSI Raw";
	mi->run_fn = de_run_hsiraw;
	mi->identify_fn = de_identify_hsiraw;
}

// Assembly:
leaq 0xb26c5(%rip), %rax     # 0x117fb3
movq %rax, (%rsi)
leaq 0xb26c2(%rip), %rax     # 0x117fba
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x65913
movq %rax, 0x18(%rsi)
leaq 0x266(%rip), %rax       # 0x65b74
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_qdv
void de_module_qdv(deark *c, struct deark_module_info *mi)
{
	mi->id = "qdv";
	mi->desc = "QDV (Giffer)";
	mi->run_fn = de_run_qdv;
	mi->identify_fn = de_identify_qdv;
}

// Assembly:
leaq 0xb2425(%rip), %rax     # 0x117fc2
movq %rax, (%rsi)
leaq 0xb241f(%rip), %rax     # 0x117fc6
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x65bc2
movq %rax, 0x18(%rsi)
leaq 0x112(%rip), %rax       # 0x65ccf
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_run_qdv
static void de_run_qdv(deark *c, de_module_params *mparams)
{
	i64 w, h;
	i64 num_pal_colors;
	i64 pos;
	de_bitmap *img = NULL;
	de_color pal[256];

	// Warning: This decoder is based on reverse engineering, and may be
	// incorrect or incomplete.

	w = de_getu16be(0);
	h = de_getu16be(2);
	de_dbg_dimensions(c, w, h);
	if(!de_good_image_dimensions(c, w, h)) goto done;

	num_pal_colors = 1 + (i64)de_getbyte(4);
	de_dbg(c, "number of palette colors: %d", (int)num_pal_colors);

	pos = 5;
	de_read_simple_palette(c, c->infile, pos, num_pal_colors, 3, pal, 256,
		DE_RDPALTYPE_24BIT, DE_RDPALFLAG_INITPAL);
	pos += 3*num_pal_colors;

	img = de_bitmap_create(c, w, h, 3);
	de_convert_image_paletted(c->infile, pos, 8, w, pal, img, 0);
	de_bitmap_write_to_file(img, NULL, 0);

done:
	de_bitmap_destroy(img);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x408, %rsp            # imm = 0x408
movq %rdi, %rbx
movq 0x18(%rdi), %rdi
xorl %r12d, %r12d
xorl %esi, %esi
callq 0xe3f46
movq %rax, %r14
movq 0x18(%rbx), %rdi
pushq $0x2
popq %rsi
callq 0xe3f46
movq %rax, %r15
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0xdf038
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0xe6be1
testl %eax, %eax
je 0x65cb5
movq 0x18(%rbx), %rdi
pushq $0x4
popq %rsi
callq 0xe3eb4
movzbl %al, %ebp
leaq 0x1(%rbp), %r12
leaq 0x9e76c(%rip), %rsi     # 0x1043a0
movq %rbx, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rsi
subq $0x8, %rsp
pushq $0x5
popq %rdx
pushq $0x3
popq %r8
leaq 0x8(%rsp), %r13
movq %rbx, %rdi
movq %r12, %rcx
movq %r13, %r9
pushq $0x10
pushq $0x1
pushq $0x100                  # imm = 0x100
callq 0xe79ca
addq $0x20, %rsp
leaq 0x8(%rbp,%rbp,2), %rbp
pushq $0x3
popq %rcx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0xe7437
movq %rax, %r12
movq 0x18(%rbx), %rdi
subq $0x8, %rsp
pushq $0x8
popq %rdx
movq %rbp, %rsi
movq %r14, %rcx
movq %r13, %r8
movq %rax, %r9
pushq $0x0
callq 0xe7cbc
popq %rax
popq %rcx
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xe70b7
movq %r12, %rdi
callq 0xe7084
addq $0x408, %rsp            # imm = 0x408
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_qdv
static int de_identify_qdv(deark *c)
{
	i64 w, h;
	i64 num_pal_colors;

	w = de_getu16be(0);
	h = de_getu16be(2);
	num_pal_colors = 1 + (i64)de_getbyte(4);
	if(5+num_pal_colors*3+w*h != c->infile->len)
		return 0;
	if(de_input_file_has_ext(c, "qdv"))
		return 100;
	return 30;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x18(%rdi), %rdi
xorl %r14d, %r14d
xorl %esi, %esi
callq 0xe3f46
movq %rax, %r15
movq 0x18(%rbx), %rdi
pushq $0x2
popq %rsi
callq 0xe3f46
movq %rax, %r12
movq 0x18(%rbx), %rdi
pushq $0x4
popq %rsi
callq 0xe3eb4
movzbl %al, %eax
leaq (%rax,%rax,2), %rax
imulq %r15, %r12
addq %r12, %rax
addq $0x8, %rax
movq 0x18(%rbx), %rcx
cmpq 0x18(%rcx), %rax
jne 0x65d3e
leaq 0xb2299(%rip), %rsi     # 0x117fc2
movq %rbx, %rdi
callq 0xdfcd5
testl %eax, %eax
pushq $0x1e
popq %rax
pushq $0x64
popq %r14
cmovel %eax, %r14d
movl %r14d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_vitec
void de_module_vitec(deark *c, struct deark_module_info *mi)
{
	mi->id = "vitec";
	mi->desc = "VITec image format";
	mi->run_fn = de_run_vitec;
	mi->identify_fn = de_identify_vitec;
}

// Assembly:
leaq 0xb227f(%rip), %rax     # 0x117fd3
movq %rax, (%rsi)
leaq 0xb227b(%rip), %rax     # 0x117fd9
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x65d79
movq %rax, 0x18(%rsi)
leaq 0x292(%rip), %rax       # 0x66006
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_hs2
void de_module_hs2(deark *c, struct deark_module_info *mi)
{
	mi->id = "hs2";
	mi->desc = "HS2 (POSTERING)";
	mi->run_fn = de_run_hs2;
	mi->identify_fn = de_identify_hs2;
}

// Assembly:
leaq 0xb1fbd(%rip), %rax     # 0x117fec
movq %rax, (%rsi)
leaq 0xb1fb7(%rip), %rax     # 0x117ff0
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x66054
movq %rax, 0x18(%rsi)
leaq 0x3f(%rip), %rax        # 0x6608e
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_lumena_cel
void de_module_lumena_cel(deark *c, struct deark_module_info *mi)
{
	mi->id = "lumena_cel";
	mi->desc = "Lumena CEL";
	mi->run_fn = de_run_lumena_cel;
	mi->identify_fn = de_identify_lumena_cel;
}

// Assembly:
leaq 0xb1f2d(%rip), %rax     # 0x118000
movq %rax, (%rsi)
leaq 0xb1f2e(%rip), %rax     # 0x11800b
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x660f8
movq %rax, 0x18(%rsi)
leaq 0x1fe(%rip), %rax       # 0x662f1
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_lumena_cel
static int de_identify_lumena_cel(deark *c)
{
	i64 width, height;
	int is_16bit = 0;
	int is_32bit = 0;

	if(!de_input_file_has_ext(c, "cel")) return 0;
	width = de_getu16le(0);
	height = de_getu16le(2);

	is_16bit = (c->infile->len == 4 + width*height*2);
	is_32bit = (c->infile->len == 4 + width*height*4);

	if(is_16bit || is_32bit)
		return 60;

	return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r14
leaq 0xb1d07(%rip), %rsi     # 0x118007
callq 0xdfcd5
testl %eax, %eax
je 0x66352
movq 0x18(%r14), %rdi
xorl %ebx, %ebx
xorl %esi, %esi
callq 0xe3fa3
movq %rax, %r15
movq 0x18(%r14), %rdi
pushq $0x2
popq %rsi
callq 0xe3fa3
movq 0x18(%r14), %rcx
movq 0x18(%rcx), %rcx
imulq %r15, %rax
leaq 0x4(,%rax,4), %rdx
cmpq %rdx, %rcx
pushq $0x3c
popq %rdx
cmovel %edx, %ebx
leaq 0x4(,%rax,2), %rax
cmpq %rax, %rcx
cmovel %edx, %ebx
jmp 0x66354
xorl %ebx, %ebx
movl %ebx, %eax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_deskmate_pnt
void de_module_deskmate_pnt(deark *c, struct deark_module_info *mi)
{
	mi->id = "deskmate_pnt";
	mi->desc = "Tandy DeskMate Paint";
	mi->run_fn = de_run_deskmate_pnt;
	mi->identify_fn = de_identify_deskmate_pnt;
}

// Assembly:
leaq 0xb1cb3(%rip), %rax     # 0x118016
movq %rax, (%rsi)
leaq 0xb1cb6(%rip), %rax     # 0x118023
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x66388
movq %rax, 0x18(%rsi)
leaq 0x143(%rip), %rax       # 0x664c6
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_run_deskmate_pnt
static void de_run_deskmate_pnt(deark *c, de_module_params *mparams)
{
	i64 w, h;
	i64 rowspan;
	i64 pos = 0;
	int is_compressed;
	de_bitmap *img = NULL;
	dbuf *unc_pixels = NULL;
	i64 unc_pixels_size;
	de_color pal[16];

	pos += 22;
	de_dbg(c, "image at %"I64_FMT, pos);
	w = 312;
	h = 176;
	rowspan = w/2;
	unc_pixels_size = rowspan * h;

	de_copy_std_palette(DE_PALID_PC16, 0, 0, pal, 16, 0);

	is_compressed = (pos+unc_pixels_size != c->infile->len);
	de_dbg(c, "compressed: %d", is_compressed);

	if(is_compressed) {
		unc_pixels = dbuf_create_membuf(c, unc_pixels_size, 0x1);
		while(1) {
			i64 count;
			u8 val;

			if(pos >= c->infile->len) break; // out of source data
			if(unc_pixels->len >= unc_pixels_size) break; // enough dst data
			val = de_getbyte_p(&pos);
			count = (i64)de_getbyte_p(&pos);
			dbuf_write_run(unc_pixels, val, count);
		}
	}
	else {
		unc_pixels = dbuf_open_input_subfile(c->infile, pos, unc_pixels_size);
	}

	img = de_bitmap_create(c, w, h, 3);
	de_convert_image_paletted(unc_pixels, 0, 4, rowspan, pal, img, 0);
	de_bitmap_write_to_file(img, NULL, 0);

	dbuf_close(unc_pixels);
	de_bitmap_destroy(img);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x50, %rsp
movq %rdi, %rbx
movq $0x16, 0x8(%rsp)
leaq 0xbb1f9(%rip), %rsi     # 0x1215a0
pushq $0x16
popq %r15
movq %r15, %rdx
xorl %eax, %eax
callq 0xde896
pushq $0x14
popq %rdi
leaq 0x10(%rsp), %rcx
pushq $0x10
popq %r8
xorl %esi, %esi
xorl %edx, %edx
xorl %r9d, %r9d
callq 0xe1b11
movq 0x18(%rbx), %rax
movq 0x18(%rax), %r14
xorl %edx, %edx
cmpq $0x6b56, %r14           # imm = 0x6B56
setne %dl
leaq 0xc4ae4(%rip), %rsi     # 0x12aecc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
cmpq $0x6b56, %r14           # imm = 0x6B56
je 0x66453
pushq $0x1
popq %rdx
movl $0x6b40, %esi           # imm = 0x6B40
movq %rbx, %rdi
callq 0xe59cd
movq %rax, %r14
leaq 0x8(%rsp), %r12
movq 0x18(%rbx), %rdi
cmpq 0x18(%rdi), %r15
jge 0x66467
cmpq $0x6b3f, 0x18(%r14)     # imm = 0x6B3F
jg 0x66467
movq %r12, %rsi
callq 0xe3f2a
movl %eax, %ebp
movq 0x18(%rbx), %rdi
movq %r12, %rsi
callq 0xe3f2a
movzbl %al, %edx
movzbl %bpl, %esi
movq %r14, %rdi
callq 0xe5e40
movq 0x8(%rsp), %r15
jmp 0x66413
movq 0x18(%rbx), %rdi
pushq $0x16
popq %rsi
movl $0x6b40, %edx           # imm = 0x6B40
callq 0xe6248
movq %rax, %r14
pushq $0x3
popq %rcx
movl $0x138, %esi            # imm = 0x138
movl $0xb0, %edx
movq %rbx, %rdi
callq 0xe7437
movq %rax, %rbx
andl $0x0, (%rsp)
pushq $0x4
popq %rdx
leaq 0x10(%rsp), %r8
movl $0x9c, %ecx
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %r9
callq 0xe7cbc
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xe70b7
movq %r14, %rdi
callq 0xe5591
movq %rbx, %rdi
callq 0xe7084
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_mdesk_icn
void de_module_mdesk_icn(deark *c, struct deark_module_info *mi)
{
	mi->id = "mdesk_icn";
	mi->desc = "Magic Desk icon";
	mi->run_fn = de_run_mdesk_icn;
	mi->identify_fn = de_identify_mdesk_icn;
	mi->help_fn = de_help_mdesk_icn;
}

// Assembly:
leaq 0xb1b49(%rip), %rax     # 0x118038
movq %rax, (%rsi)
leaq 0xb1b49(%rip), %rax     # 0x118042
movq %rax, 0x8(%rsi)
leaq 0x1b(%rip), %rax        # 0x6651f
movq %rax, 0x18(%rsi)
leaq 0x18b(%rip), %rax       # 0x6669a
movq %rax, 0x20(%rsi)
leaq 0x20d(%rip), %rax       # 0x66727
movq %rax, 0x28(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_mdesk_icn
static int de_identify_mdesk_icn(deark *c)
{
	u8 b2;
	int has_ext;
	int b2_ok;

	if(c->infile->len!=515) return 0;
	if(de_getu16be(0)!=0x1f1f) return 0;
	b2 = de_getbyte(2);

	has_ext = (de_input_file_has_ext(c, "icn") ||
		de_input_file_has_ext(c, "tbi"));
	b2_ok = (b2==0x00 || b2==0x03 || b2==0xff);

	if(has_ext && b2_ok) {
		return 90;
	}
	return 14;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x18(%rdi), %rdi
xorl %r14d, %r14d
cmpq $0x203, 0x18(%rdi)      # imm = 0x203
jne 0x6671f
xorl %r14d, %r14d
xorl %esi, %esi
callq 0xe3f46
cmpq $0x1f1f, %rax           # imm = 0x1F1F
jne 0x6671f
movq 0x18(%rbx), %rdi
pushq $0x2
popq %rsi
callq 0xe3eb4
movl %eax, %ebp
leaq 0xb1965(%rip), %rsi     # 0x11803e
movq %rbx, %rdi
callq 0xdfcd5
movb $0x1, %dl
testl %eax, %eax
jne 0x666fb
leaq 0xb1e07(%rip), %rsi     # 0x1184f5
movq %rbx, %rdi
callq 0xdfcd5
testl %eax, %eax
setne %dl
incb %bpl
movb $0x13, %al
movl %ebp, %ecx
shrb %cl, %al
testb $0x1, %al
pushq $0x5a
popq %r14
pushq $0xe
popq %rax
cmovel %eax, %r14d
cmpb $0x5, %bpl
cmovael %eax, %r14d
testb %dl, %dl
cmovel %eax, %r14d
movl %r14d, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_animator_pic
void de_module_animator_pic(deark *c, struct deark_module_info *mi)
{
	mi->id = "animator_pic";
	mi->desc = "Autodesk Animator PIC/CEL";
	mi->run_fn = de_run_animator_pic;
	mi->identify_fn = de_identify_animator_pic;
}

// Assembly:
leaq 0xb1916(%rip), %rax     # 0x118052
movq %rax, (%rsi)
leaq 0xb1919(%rip), %rax     # 0x11805f
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x66761
movq %rax, 0x18(%rsi)
leaq 0x162(%rip), %rax       # 0x668be
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_run_animator_pic
static void de_run_animator_pic(deark *c, de_module_params *mparams)
{
	de_bitmap *img = NULL;
	de_finfo *fi = NULL;
	i64 pos = 2;
	i64 w, h;
	i64 imgsize;
	de_color pal[256];

	w = de_getu16le_p(&pos);
	h = de_getu16le_p(&pos);
	de_dbg_dimensions(c, w, h);
	if(!de_good_image_dimensions(c, w, h)) goto done;
	pos += 4; // xcoord/ycoord
	pos += 1; // depth
	pos += 1; // compression type
	imgsize = de_getu32le_p(&pos);
	de_dbg(c, "image size: %"I64_FMT, imgsize);
	pos += 16;
	de_read_simple_palette(c, c->infile, pos, 256, 3, pal, 256, DE_RDPALTYPE_VGA18BIT, 0);
	pos += 3*256;

	fi = de_finfo_create(c);
	fi->density.code = DE_DENSITY_UNK_UNITS;
	fi->density.xdens = 240.0;
	fi->density.ydens = 200.0;
	img = de_bitmap_create(c, w, h, 3);
	de_convert_image_paletted(c->infile, pos, 8, w, pal, img, 0);;
	de_bitmap_write_to_file_finfo(img, fi, 0);

done:
	de_bitmap_destroy(img);
	de_finfo_destroy(c, fi);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x418, %rsp            # imm = 0x418
movq %rdi, %rbx
leaq 0x8(%rsp), %r15
movq $0x2, (%r15)
movq 0x18(%rdi), %rdi
movq %r15, %rsi
callq 0xe3fc4
movq %rax, %r14
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe3fc4
movq %rax, %r15
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0xdf038
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0xe6be1
testl %eax, %eax
je 0x66893
leaq 0x8(%rsp), %r12
addq $0x6, (%r12)
movq 0x18(%rbx), %rdi
movq %r12, %rsi
callq 0xe40bf
leaq 0xb1d49(%rip), %rsi     # 0x118529
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq (%r12), %rdx
addq $0x10, %rdx
movq %rdx, (%r12)
movq 0x18(%rbx), %rsi
subq $0x8, %rsp
pushq $0x3
popq %r8
leaq 0x18(%rsp), %rbp
movl $0x100, %ecx            # imm = 0x100
movq %rbx, %rdi
movq %rbp, %r9
pushq $0x0
pushq $0x2
pushq $0x100                  # imm = 0x100
callq 0xe79ca
addq $0x20, %rsp
addq $0x300, (%r12)          # imm = 0x300
movq %rbx, %rdi
callq 0xdfd1a
movq %rax, %r13
movl $0x1, 0x78(%rax)
movaps 0x9fa38(%rip), %xmm0    # 0x106280
movups %xmm0, 0x80(%rax)
pushq $0x3
popq %rcx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0xe7437
movq %rax, %r15
movq 0x18(%rbx), %rdi
movq (%r12), %rsi
subq $0x8, %rsp
pushq $0x8
popq %rdx
movq %r14, %rcx
movq %rbp, %r8
movq %rax, %r9
pushq $0x0
callq 0xe7cbc
popq %rax
popq %rcx
movq %r15, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0xe70ab
jmp 0x66899
xorl %r13d, %r13d
xorl %r15d, %r15d
movq %r15, %rdi
callq 0xe7084
movq %rbx, %rdi
movq %r13, %rsi
callq 0xdfd24
addq $0x418, %rsp            # imm = 0x418
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_animator_pic
static int de_identify_animator_pic(deark *c)
{
	if(de_getu16le(0)!=0x9119) return 0;
	if(de_getbyte(10)!=0x08) return 0;
	if(de_getbyte(11)!=0x00) return 0;
	if(de_input_file_has_ext(c, "pic") ||
		de_input_file_has_ext(c, "cel"))
	{
		return 100;
	}
	return 80;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x18(%rdi), %rdi
xorl %r14d, %r14d
xorl %esi, %esi
callq 0xe3fa3
cmpq $0x9119, %rax           # imm = 0x9119
jne 0x66930
movq 0x18(%rbx), %rdi
pushq $0xa
popq %rsi
callq 0xe3eb4
cmpb $0x8, %al
jne 0x66930
movq 0x18(%rbx), %rdi
pushq $0xb
popq %rsi
callq 0xe3eb4
testb %al, %al
jne 0x66930
leaq 0xc2583(%rip), %rsi     # 0x128e85
movq %rbx, %rdi
callq 0xdfcd5
testl %eax, %eax
je 0x66914
pushq $0x64
popq %r14
jmp 0x66930
leaq 0xb16ec(%rip), %rsi     # 0x118007
movq %rbx, %rdi
callq 0xdfcd5
testl %eax, %eax
pushq $0x50
popq %rax
pushq $0x64
popq %r14
cmovel %eax, %r14d
movl %r14d, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_dgi
void de_module_dgi(deark *c, struct deark_module_info *mi)
{
	mi->id = "dgi";
	mi->desc = "DGI (Digi-Pic)";
	mi->run_fn = de_run_dgi;
	mi->identify_fn = de_identify_dgi;
}

// Assembly:
leaq 0xb1737(%rip), %rax     # 0x118079
movq %rax, (%rsi)
leaq 0xb1731(%rip), %rax     # 0x11807d
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x66967
movq %rax, 0x18(%rsi)
leaq 0x11c(%rip), %rax       # 0x66a7e
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_run_dgi
static void de_run_dgi(deark *c, de_module_params *mparams)
{
	dbuf *imgbuf = NULL;
	de_bitmap *img = NULL;
	de_finfo *fi = NULL;
	de_color pal[4];

	imgbuf = dbuf_create_membuf(c, 64000, 0x1);

	// Full 640x400 image is stored as four 320x200-pixel quadrants.
	// Each quadrant is interlaced.
	do_dgi_convert_quadrant(c, imgbuf, 0, 0);
	do_dgi_convert_quadrant(c, imgbuf, 16000, 80);
	do_dgi_convert_quadrant(c, imgbuf, 32008, 32000);
	do_dgi_convert_quadrant(c, imgbuf, 48008, 32080);

	de_copy_std_palette(DE_PALID_CGA, 1, 0, pal, 4, 0);

	fi = de_finfo_create(c);
	img = de_bitmap_create(c, 640, 400, 3);
	de_convert_image_paletted(imgbuf, 0, 2, 160, pal, img, 0);

	// DGI targets CGA 320x200.
	fi->density.code = DE_DENSITY_UNK_UNITS;
	fi->density.xdens = 240;
	fi->density.ydens = 200;

	de_bitmap_write_to_file_finfo(img, fi, 0);

	dbuf_close(imgbuf);
	de_bitmap_destroy(img);
	de_finfo_destroy(c, fi);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
pushq $0x1
popq %rbp
movl $0xfa00, %esi           # imm = 0xFA00
movl %ebp, %edx
callq 0xe59cd
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x69167
pushq $0x50
popq %rcx
movl $0x3e80, %edx           # imm = 0x3E80
movq %rbx, %rdi
movq %r14, %rsi
callq 0x69167
movl $0x7d08, %edx           # imm = 0x7D08
movl $0x7d00, %ecx           # imm = 0x7D00
movq %rbx, %rdi
movq %r14, %rsi
callq 0x69167
movl $0xbb88, %edx           # imm = 0xBB88
movl $0x7d50, %ecx           # imm = 0x7D50
movq %rbx, %rdi
movq %r14, %rsi
callq 0x69167
pushq $0xa
popq %rdi
leaq 0x10(%rsp), %r12
pushq $0x4
popq %r8
movl %ebp, %esi
xorl %edx, %edx
movq %r12, %rcx
xorl %r9d, %r9d
callq 0xe1b11
movq %rbx, %rdi
callq 0xdfd1a
movq %rax, %r15
pushq $0x3
popq %rcx
movl $0x280, %esi            # imm = 0x280
movl $0x190, %edx            # imm = 0x190
movq %rbx, %rdi
callq 0xe7437
movq %rax, %r13
andl $0x0, (%rsp)
pushq $0x2
popq %rdx
movl $0xa0, %ecx
movq %r14, %rdi
xorl %esi, %esi
movq %r12, %r8
movq %rax, %r9
callq 0xe7cbc
movl $0x1, 0x78(%r15)
movaps 0x9f841(%rip), %xmm0    # 0x106280
movups %xmm0, 0x80(%r15)
movq %r13, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0xe70ab
movq %r14, %rdi
callq 0xe5591
movq %r13, %rdi
callq 0xe7084
movq %rbx, %rdi
movq %r15, %rsi
callq 0xdfd24
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_dgi
static int de_identify_dgi(deark *c)
{
	int has_ext;

	if(c->infile->len < 64008) return 0;
	has_ext = de_input_file_has_ext(c, "dgi");
	if(!has_ext && c->infile->len!=64008) return 0;
	if(dbuf_memcmp(c->infile, 32000, (const void*)"\x01\x04\0\0\0\0\0\0", 8)) return 0;
	if(has_ext && c->infile->len==64008) return 100;
	return 20; // either no .dgi extension, or file unexpectedly large (but not both)
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq 0x18(%rdi), %rax
xorl %ebx, %ebx
cmpq $0xfa08, 0x18(%rax)     # imm = 0xFA08
jl 0x66ae6
movq %rdi, %r14
leaq 0xb15dd(%rip), %rsi     # 0x118079
callq 0xdfcd5
movl %eax, %ebp
movq 0x18(%r14), %rdi
testl %eax, %eax
jne 0x66ab5
cmpq $0xfa08, 0x18(%rdi)     # imm = 0xFA08
jne 0x66ae6
leaq 0xb0f84(%rip), %rdx     # 0x117a40
pushq $0x8
popq %rcx
movl $0x7d00, %esi           # imm = 0x7D00
callq 0xe4d48
testl %eax, %eax
jne 0x66ae6
testl %ebp, %ebp
je 0x66ae3
movq 0x18(%r14), %rax
cmpq $0xfa08, 0x18(%rax)     # imm = 0xFA08
jne 0x66ae3
pushq $0x64
jmp 0x66ae5
pushq $0x14
popq %rbx
movl %ebx, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_cserve_rle
void de_module_cserve_rle(deark *c, struct deark_module_info *mi)
{
	mi->id = "cserve_rle";
	mi->desc = "CompuServe RLE";
	mi->run_fn = de_run_cserve_rle;
	mi->identify_fn = de_identify_cserve_rle;
}

// Assembly:
leaq 0xb1598(%rip), %rax     # 0x11808c
movq %rax, (%rsi)
leaq 0xb1599(%rip), %rax     # 0x118097
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x66b19
movq %rax, 0x18(%rsi)
leaq 0x220(%rip), %rax       # 0x66d34
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_lotus_mscr
void de_module_lotus_mscr(deark *c, struct deark_module_info *mi)
{
	mi->id = "lotus_mscr";
	mi->desc = "Lotus Manuscript graphics";
	mi->run_fn = de_run_lotus_mscr;
	mi->identify_fn = de_identify_lotus_mscr;
}

// Assembly:
leaq 0xb135b(%rip), %rax     # 0x1180a6
movq %rax, (%rsi)
leaq 0xb135c(%rip), %rax     # 0x1180b1
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x66d70
movq %rax, 0x18(%rsi)
leaq 0x2a5(%rip), %rax       # 0x67010
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_lotus_mscr
static int de_identify_lotus_mscr(deark *c)
{
	u8 is_rle, x;
	i64 d1, d2, h, rb;

	x = de_getbyte(0);
	if(x=='B' && de_input_file_has_ext(c, "bit")) {
		is_rle = 0;
	}
	else if(x=='R' && de_input_file_has_ext(c, "rle")) {
		is_rle = 1;
	}
	else {
		return 0;
	}

	d1 = de_getu16le(1);
	d2 = de_getu16le(3);
	if(is_rle) {
		// RLE is particularly hard to detect, because we can't use the file size.
		if(d1!=d2) return 0;
		if(d1!=72 && d1!=300) return 0;
	}
	else {
		if(d1>=600 || d2>600) return 0;
	}

	h = de_getu16le(5);
	rb = de_getu16le(7);
	if(h==0 || rb==0 || h>3300 || rb>320) return 0;
	if(is_rle) {
		return 12;
	}
	else {
		if(9+h*rb == c->infile->len) return 75;
	}

	return 0;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x18(%rdi), %rdi
xorl %esi, %esi
callq 0xe3eb4
cmpb $0x52, %al
je 0x6704d
movzbl %al, %eax
cmpl $0x42, %eax
jne 0x6713a
leaq 0xd1b64(%rip), %rsi     # 0x138b9d
movq %rbx, %rdi
callq 0xdfcd5
movb $0x1, %bpl
testl %eax, %eax
jne 0x6706b
jmp 0x6713a
leaq 0xb103f(%rip), %rsi     # 0x118093
movq %rbx, %rdi
callq 0xdfcd5
xorl %ebp, %ebp
movl $0x0, %ecx
testl %eax, %eax
je 0x6713c
movq 0x18(%rbx), %rdi
pushq $0x1
popq %rsi
callq 0xe3fa3
movq %rax, %r14
movq 0x18(%rbx), %rdi
pushq $0x3
popq %rsi
callq 0xe3fa3
testb %bpl, %bpl
je 0x670ac
cmpq $0x258, %r14            # imm = 0x258
setge %cl
cmpq $0x259, %rax            # imm = 0x259
setge %al
orb %cl, %al
movl $0x0, %ecx
je 0x670c9
jmp 0x6713c
cmpq %rax, %r14
jne 0x6713a
cmpq $0x48, %r14
je 0x670c9
movl $0x0, %ecx
cmpq $0x12c, %r14            # imm = 0x12C
jne 0x6713c
movq 0x18(%rbx), %rdi
pushq $0x5
popq %rsi
callq 0xe3fa3
movq %rax, %r14
movq 0x18(%rbx), %rdi
pushq $0x7
popq %rsi
callq 0xe3fa3
testq %r14, %r14
setne %cl
testq %rax, %rax
setne %dl
andb %cl, %dl
cmpq $0xce5, %r14            # imm = 0xCE5
setl %cl
cmpq $0x141, %rax            # imm = 0x141
setl %sil
andb %cl, %sil
andb %dl, %sil
andb %sil, %bpl
xorl %edx, %edx
testb %sil, %sil
pushq $0xc
popq %rcx
cmovel %edx, %ecx
cmpb $0x1, %bpl
jne 0x6713c
imulq %r14, %rax
addq $0x9, %rax
movq 0x18(%rbx), %rcx
cmpq 0x18(%rcx), %rax
pushq $0x4b
popq %rax
cmovel %eax, %edx
movl %edx, %ecx
jmp 0x6713c
xorl %ecx, %ecx
movl %ecx, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_fastgraph_spr
void de_module_fastgraph_spr(deark *c, struct deark_module_info *mi)
{
	mi->id = "fastgraph_spr";
	mi->desc = "Fastgraph SPR";
	mi->run_fn = de_run_fastgraph_spr;
	mi->identify_fn = de_identify_fastgraph_spr;
	mi->help_fn = de_help_fastgraph_spr;
	mi->flags |= DE_MODFLAG_HIDDEN;
}

// Assembly:
leaq 0xb0f81(%rip), %rax     # 0x1180cb
movq %rax, (%rsi)
leaq 0xb0f85(%rip), %rax     # 0x1180d9
movq %rax, 0x8(%rsi)
leaq 0x1f(%rip), %rax        # 0x6717e
movq %rax, 0x18(%rsi)
leaq 0xb5(%rip), %rax        # 0x6721f
movq %rax, 0x20(%rsi)
leaq 0xba(%rip), %rax        # 0x6722f
movq %rax, 0x28(%rsi)
orb $0x1, 0x30(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_run_fastgraph_spr
static void de_run_fastgraph_spr(deark *c, de_module_params *mparams)
{
	struct fastgraph_ctx *d = NULL;

	d = de_malloc(c, sizeof(struct fastgraph_ctx));
	d->is_ppr = 0;

	if(has_fastgraph_spr_sig(c)) {
		d->w = 1 + 256*(i64)de_getbyte(18) + (i64)de_getbyte(16);
		d->h = 1 + 256*(i64)de_getbyte(22) + (i64)de_getbyte(20);
		d->img_startpos = 26;
	}

	do_fastgraph_internal(c, d);

	de_free(c, d);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movl $0x430, %esi            # imm = 0x430
callq 0xdecaf
movq %rax, %r14
movb $0x0, (%rax)
movq %rbx, %rdi
callq 0x69278
testl %eax, %eax
je 0x67204
movq 0x18(%rbx), %rdi
pushq $0x12
popq %rsi
callq 0xe3eb4
movzbl %al, %r15d
shll $0x8, %r15d
movq 0x18(%rbx), %rdi
pushq $0x10
popq %rsi
callq 0xe3eb4
movzbl %al, %eax
addq %r15, %rax
incq %rax
movq %rax, 0x8(%r14)
movq 0x18(%rbx), %rdi
pushq $0x16
popq %rsi
callq 0xe3eb4
movzbl %al, %r15d
shll $0x8, %r15d
movq 0x18(%rbx), %rdi
pushq $0x14
popq %rsi
callq 0xe3eb4
movzbl %al, %eax
addq %r15, %rax
incq %rax
movq %rax, 0x10(%r14)
movq $0x1a, 0x18(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x69299
movq %rbx, %rdi
movq %r14, %rsi
popq %rbx
popq %r14
popq %r15
jmp 0xded32
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_fastgraph_ppr
void de_module_fastgraph_ppr(deark *c, struct deark_module_info *mi)
{
	mi->id = "fastgraph_ppr";
	mi->desc = "Fastgraph PPR";
	mi->run_fn = de_run_fastgraph_ppr;
	mi->identify_fn = NULL;
	mi->help_fn = de_help_fastgraph_ppr;
	mi->flags |= DE_MODFLAG_HIDDEN;
}

// Assembly:
leaq 0xb0eac(%rip), %rax     # 0x1180e7
movq %rax, (%rsi)
leaq 0xb0eb0(%rip), %rax     # 0x1180f5
movq %rax, 0x8(%rsi)
leaq 0x19(%rip), %rax        # 0x67269
movq %rax, 0x18(%rsi)
andq $0x0, 0x20(%rsi)
leaq 0x3d(%rip), %rax        # 0x6729d
movq %rax, 0x28(%rsi)
orb $0x1, 0x30(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_run_fastgraph_ppr
static void de_run_fastgraph_ppr(deark *c, de_module_params *mparams)
{
	struct fastgraph_ctx *d = NULL;

	d = de_malloc(c, sizeof(struct fastgraph_ctx));
	d->is_ppr = 1;

	do_fastgraph_internal(c, d);

	de_free(c, d);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x430, %esi            # imm = 0x430
callq 0xdecaf
movq %rax, %r14
movb $0x1, (%rax)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x69299
movq %rbx, %rdi
movq %r14, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0xded32
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_young_picasso
void de_module_young_picasso(deark *c, struct deark_module_info *mi)
{
	mi->id = "young_picasso";
	mi->desc = "Young Picasso .YP";
	mi->run_fn = de_run_yp;
	mi->identify_fn = de_identify_yp;
}

// Assembly:
leaq 0xb0e5a(%rip), %rax     # 0x118103
movq %rax, (%rsi)
leaq 0xb0e5e(%rip), %rax     # 0x118111
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x672ce
movq %rax, 0x18(%rsi)
leaq 0x1bd(%rip), %rax       # 0x67486
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_iconmgr_ica
void de_module_iconmgr_ica(deark *c, struct deark_module_info *mi)
{
	mi->id = "iconmgr_ica";
	mi->desc = "Icon Manager Archive (.ica)";
	mi->run_fn = de_run_iconmgr_ica;
	mi->identify_fn = de_identify_iconmgr_ica;
}

// Assembly:
leaq 0xb0c69(%rip), %rax     # 0x118123
movq %rax, (%rsi)
leaq 0xb0c6b(%rip), %rax     # 0x11812f
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x674df
movq %rax, 0x18(%rsi)
leaq 0x371(%rip), %rax       # 0x6784b
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_iconmgr_ica
static int de_identify_iconmgr_ica(deark *c)
{
	u8 b;

	if(dbuf_memcmp(c->infile, 0, "IC", 2)) return 0;
	b = de_getbyte(2);
	if(de_getbyte(3) != 0) return 0;
	if(b=='M' || b=='2') {
		return 90;
	}
	return 0;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdi, %r14
movq 0x18(%rdi), %rdi
leaq 0xa707a(%rip), %rdx     # 0x10e8d7
xorl %ebx, %ebx
pushq $0x2
popq %rcx
xorl %esi, %esi
callq 0xe4d48
testl %eax, %eax
jne 0x6789e
movq 0x18(%r14), %rdi
pushq $0x2
popq %rsi
callq 0xe3eb4
movl %eax, %ebp
movq 0x18(%r14), %rdi
pushq $0x3
popq %rsi
callq 0xe3eb4
testb %al, %al
jne 0x6789e
xorl %ebx, %ebx
cmpb $0x32, %bpl
pushq $0x5a
popq %rax
cmovel %eax, %ebx
cmpb $0x4d, %bpl
cmovel %eax, %ebx
movl %ebx, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_thumbsplus
void de_module_thumbsplus(deark *c, struct deark_module_info *mi)
{
	mi->id = "thumbsplus";
	mi->desc = "ThumbsPlus v1-2 database (.tud)";
	mi->run_fn = de_run_thumbsplus;
	mi->identify_fn = de_identify_thumbsplus;
}

// Assembly:
leaq 0xb089f(%rip), %rax     # 0x11814b
movq %rax, (%rsi)
leaq 0xb08a0(%rip), %rax     # 0x118156
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x678d1
movq %rax, 0x18(%rsi)
leaq 0x479(%rip), %rax       # 0x67d45
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_fmtowns_icn
void de_module_fmtowns_icn(deark *c, struct deark_module_info *mi)
{
	mi->id = "fmtowns_icn";
	mi->desc = "FM Towns icons";
	mi->run_fn = de_run_fmtowns_icn;
	mi->identify_fn = de_identify_fmtowns_icn;
}

// Assembly:
leaq 0xb040f(%rip), %rax     # 0x118176
movq %rax, (%rsi)
leaq 0xb0411(%rip), %rax     # 0x118182
movq %rax, 0x8(%rsi)
leaq 0x10(%rip), %rax        # 0x67d8c
movq %rax, 0x18(%rsi)
leaq 0x4c9(%rip), %rax       # 0x68250
movq %rax, 0x20(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_fmtowns_icn
static int de_identify_fmtowns_icn(deark *c)
{
	u8 buf[10];

	de_read(buf, 0, sizeof(buf));
	if(!de_memcmp(buf, (const void*)"ICNFILE\0\0\x1a", 10)) {
		return 100;
	}
	if(!de_memcmp(buf, (const void*)"CRI-FJ2 ", 8)) {
		return 100;
	}
	if(!de_memcmp(buf, (const void*)"CRI-FUJI", 8)) {
		return 100;
	}
	return 0;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq 0x18(%rdi), %rdi
leaq 0xe(%rsp), %rbx
pushq $0xa
popq %r14
movq %rbx, %rsi
xorl %edx, %edx
movq %r14, %rcx
callq 0xe3cb7
leaq 0xafae8(%rip), %rsi     # 0x117d60
movq %rbx, %rdi
movq %r14, %rdx
callq 0x18230
movl %eax, %ecx
pushq $0x64
popq %rax
testl %ecx, %ecx
je 0x682b4
movabsq $0x20324a462d495243, %rcx # imm = 0x20324A462D495243
cmpq %rcx, 0xe(%rsp)
je 0x682b4
xorl %ecx, %ecx
movabsq $0x494a55462d495243, %rax # imm = 0x494A55462D495243
cmpq %rax, 0xe(%rsp)
pushq $0x64
popq %rax
cmovnel %ecx, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_fmtowns_hel
void de_module_fmtowns_hel(deark *c, struct deark_module_info *mi)
{
	mi->id = "fmtowns_hel";
	mi->desc = "FM Towns animation (.hel)";
	mi->run_fn = de_run_fmtowns_hel;
	mi->identify_fn = de_identify_fmtowns_hel;
	mi->help_fn = de_help_fmtowns_hel;
}

// Assembly:
leaq 0xafece(%rip), %rax     # 0x118191
movq %rax, (%rsi)
leaq 0xafed0(%rip), %rax     # 0x11819d
movq %rax, 0x8(%rsi)
leaq 0x1b(%rip), %rax        # 0x682f3
movq %rax, 0x18(%rsi)
leaq 0x1e0(%rip), %rax       # 0x684c3
movq %rax, 0x20(%rsi)
leaq 0x1f7(%rip), %rax       # 0x684e5
movq %rax, 0x28(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_module_pixfolio
void de_module_pixfolio(deark *c, struct deark_module_info *mi)
{
	mi->id = "pixfolio";
	mi->desc = "PixFolio catalog";
	mi->run_fn = de_run_pixfolio;
	mi->identify_fn = de_identify_pixfolio;
	mi->help_fn = de_help_pixfolio;
}

// Assembly:
leaq 0xafcbd(%rip), %rax     # 0x1181b7
movq %rax, (%rsi)
leaq 0xafcbc(%rip), %rax     # 0x1181c0
movq %rax, 0x8(%rsi)
leaq 0x1b(%rip), %rax        # 0x6852a
movq %rax, 0x18(%rsi)
leaq 0x55e(%rip), %rax       # 0x68a78
movq %rax, 0x20(%rsi)
leaq 0x601(%rip), %rax       # 0x68b26
movq %rax, 0x28(%rsi)
retq
// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/misc2.c
// Function: de_identify_pixfolio
static int de_identify_pixfolio(deark *c)
{
	u8 buf[20];
	i64 n1, n2;

	// This probably doesn't identify *every* PixFolio CAT file.
	// It assumes the first item contains an image, which is quite possibly not
	// always true.
	if(de_getbyte(0)<0x20) return 0;
	if(!de_input_file_has_ext(c, "cat")) return 0;
	de_read(buf, 343, 20);
	if(buf[2]!='/' && buf[2]!='-') return 0;
	if(buf[13]!=':') return 0;
	n1 = de_getu16le(369); // Descr len
	n2 = de_getu32le(373+n1+1); // DIB header size
	if(n2 != 40) return 0;
	n2 = de_getu16le(373+n1+1+12); // #planes
	if(n2 != 1) return 0;
	return 80;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %r14
movq 0x18(%rdi), %rdi
xorl %ebx, %ebx
xorl %esi, %esi
callq 0xe3eb4
cmpb $0x20, %al
jb 0x68b1a
leaq 0xafe67(%rip), %rsi     # 0x118907
movq %r14, %rdi
callq 0xdfcd5
testl %eax, %eax
je 0x68b1a
movq 0x18(%r14), %rdi
movq %rsp, %r15
pushq $0x14
popq %rcx
movl $0x157, %edx            # imm = 0x157
movq %r15, %rsi
callq 0xe3cb7
movb 0x2(%r15), %al
andb $-0x3, %al
cmpb $0x2d, %al
jne 0x68b1a
cmpb $0x3a, 0xd(%rsp)
jne 0x68b1a
movq 0x18(%r14), %rdi
movl $0x171, %esi            # imm = 0x171
callq 0xe3fa3
movq %rax, %r15
movq 0x18(%r14), %rdi
leaq 0x176(%rax), %rsi
callq 0xe409f
cmpq $0x28, %rax
jne 0x68b1a
movq 0x18(%r14), %rdi
addq $0x182, %r15            # imm = 0x182
movq %r15, %rsi
callq 0xe3fa3
xorl %ecx, %ecx
cmpq $0x1, %rax
pushq $0x50
popq %rbx
cmovnel %ecx, %ebx
movl %ebx, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq