LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_identify_edi_pack
static int de_identify_edi_pack(deark *c)
{
	if(!dbuf_memcmp(c->infile, 0, g_edilzss_sig, 7)) {
		u8 v;

		v = de_getbyte(7);
		if(v=='1' || v=='2') return 100;
		return 0;
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movq 0x186fd5(%rip), %rdx    # 0x225780
xorl %eax, %eax
movl %eax, %esi
movl $0x7, %ecx
callq 0x166ab0
cmpl $0x0, %eax
jne 0x9e7f7
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x7, %esi
callq 0x165060
movb %al, -0x11(%rbp)
movzbl -0x11(%rbp), %eax
cmpl $0x31, %eax
je 0x9e7e5
movzbl -0x11(%rbp), %eax
cmpl $0x32, %eax
jne 0x9e7ee
movl $0x64, -0x4(%rbp)
jmp 0x9e7fe
movl $0x0, -0x4(%rbp)
jmp 0x9e7fe
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_qip
void de_module_qip(deark *c, struct deark_module_info *mi)
{
	mi->id = "qip";
	mi->desc = "QIP (Quarterdeck)";
	mi->run_fn = de_run_qip;
	mi->identify_fn = de_identify_qip;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x112bdd(%rip), %rcx    # 0x1b1404
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x112bd3(%rip), %rcx    # 0x1b1408
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0x9e860
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x12d(%rip), %rcx       # 0x9e980
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_run_qip
static void de_run_qip(deark *c, de_module_params *mparams)
{
	de_arch_lctx *d = NULL;
	u8 b;
	int unsupp_flag = 0;

	d = de_arch_create_lctx(c);
	d->is_le = 1;
	d->input_encoding = de_get_input_encoding(c, NULL, DE_ENCODING_CP437);

	b = de_getbyte(1);
	if(b=='P') {
		d->fmtver = 2;
	}
	else if(b=='D') {
		d->fmtver = 1;
	}
	else {
		unsupp_flag = 1;
		goto done;
	}

	if(d->fmtver==2) {
		if(de_getbyte(8)!=0x02) {
			unsupp_flag = 1;
			goto done;
		}
	}

	if(d->fmtver==1) {
		qip_do_v1(c, d);
	}
	else {
		qip_do_v2(c, d);
	}

done:
	if(unsupp_flag) {
		de_err(c, "Not a supported QIP format");
	}
	de_arch_destroy_lctx(c, d);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movl $0x0, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x17c220
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl $0x1, 0x10(%rax)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xd, %edx
callq 0x15e4a0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x1, %esi
callq 0x165060
movb %al, -0x19(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x50, %eax
jne 0x9e8dd
movq -0x18(%rbp), %rax
movl $0x2, 0x58(%rax)
jmp 0x9e8fe
movzbl -0x19(%rbp), %eax
cmpl $0x44, %eax
jne 0x9e8f3
movq -0x18(%rbp), %rax
movl $0x1, 0x58(%rax)
jmp 0x9e8fc
movl $0x1, -0x20(%rbp)
jmp 0x9e955
jmp 0x9e8fe
movq -0x18(%rbp), %rax
cmpl $0x2, 0x58(%rax)
jne 0x9e92d
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x8, %esi
callq 0x165060
movzbl %al, %eax
cmpl $0x2, %eax
je 0x9e92b
movl $0x1, -0x20(%rbp)
jmp 0x9e955
jmp 0x9e92d
movq -0x18(%rbp), %rax
cmpl $0x1, 0x58(%rax)
jne 0x9e946
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xa1c30
jmp 0x9e953
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xa1d10
jmp 0x9e955
cmpl $0x0, -0x20(%rbp)
je 0x9e96d
movq -0x8(%rbp), %rdi
leaq 0x113044(%rip), %rsi    # 0x1b19aa
movb $0x0, %al
callq 0x15bfb0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c270
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_identify_qip
static int de_identify_qip(deark *c)
{
	u8 b;
	i64 n;

	if(de_getbyte(0)!='Q') return 0;
	b = de_getbyte(1);
	if(b=='P') {
		if(de_getbyte(8)!=0x02) return 0;
		n = de_getu32le(16);
		if(n>c->infile->len) return 0;
		if(!dbuf_memcmp(c->infile, n, "QD", 2)) return 100;
	}
	else if(b=='D') {
		if(de_getu16le(2)==0 &&
			de_getu16le(8)==1)
		{
			return 70;
		}
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x165060
movzbl %al, %eax
cmpl $0x51, %eax
je 0x9e9b1
movl $0x0, -0x4(%rbp)
jmp 0x9eaa4
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x1, %esi
callq 0x165060
movb %al, -0x11(%rbp)
movzbl -0x11(%rbp), %eax
cmpl $0x50, %eax
jne 0x9ea57
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x8, %esi
callq 0x165060
movzbl %al, %eax
cmpl $0x2, %eax
je 0x9e9f9
movl $0x0, -0x4(%rbp)
jmp 0x9eaa4
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x10, %esi
callq 0x165540
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpq 0x18(%rcx), %rax
jle 0x9ea2a
movl $0x0, -0x4(%rbp)
jmp 0x9eaa4
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x20(%rbp), %rsi
leaq 0x112f88(%rip), %rdx    # 0x1b19c5
movl $0x2, %ecx
callq 0x166ab0
cmpl $0x0, %eax
jne 0x9ea55
movl $0x64, -0x4(%rbp)
jmp 0x9eaa4
jmp 0x9ea9d
movzbl -0x11(%rbp), %eax
cmpl $0x44, %eax
jne 0x9ea9b
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x2, %esi
callq 0x165280
cmpq $0x0, %rax
jne 0x9ea99
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x8, %esi
callq 0x165280
cmpq $0x1, %rax
jne 0x9ea99
movl $0x46, -0x4(%rbp)
jmp 0x9eaa4
jmp 0x9ea9b
jmp 0x9ea9d
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_pcxlib
void de_module_pcxlib(deark *c, struct deark_module_info *mi)
{
	mi->id = "pcxlib";
	mi->desc = "PCX Library";
	mi->run_fn = de_run_pcxlib;
	mi->identify_fn = de_identify_pcxlib;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x112953(%rip), %rcx    # 0x1b141a
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x11294c(%rip), %rcx    # 0x1b1421
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0x9eb00
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x3d(%rip), %rcx        # 0x9eb30
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_gxlib
void de_module_gxlib(deark *c, struct deark_module_info *mi)
{
	mi->id = "gxlib";
	mi->desc = "GX Library";
	mi->run_fn = de_run_gxlib;
	mi->identify_fn = de_identify_gxlib;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x112896(%rip), %rcx    # 0x1b142d
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x11288e(%rip), %rcx    # 0x1b1433
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0x9ebd0
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x3d(%rip), %rcx        # 0x9ec00
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_identify_gxlib
static int de_identify_gxlib(deark *c)
{
	UI n;
	u8 has_copyr, has_ver;

	n = (UI)de_getu16be(0);
	if(n!=0x01ca) return 0;
	has_copyr = !dbuf_memcmp(c->infile, 2, "Copyri", 6);
	n = (UI)de_getu16le(52);
	has_ver = (n==100);
	if(has_copyr && has_ver) return 100;
	if(has_copyr || has_ver) return 25;
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1651d0
movl %eax, -0x14(%rbp)
cmpl $0x1ca, -0x14(%rbp)     # imm = 0x1CA
je 0x9ec35
movl $0x0, -0x4(%rbp)
jmp 0x9ecc4
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x2, %esi
leaq 0x112dc0(%rip), %rdx    # 0x1b1a09
movl $0x6, %ecx
callq 0x166ab0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movb %al, -0x15(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x34, %esi
callq 0x165280
movl %eax, -0x14(%rbp)
cmpl $0x64, -0x14(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
movb %al, -0x16(%rbp)
movzbl -0x15(%rbp), %eax
cmpl $0x0, %eax
je 0x9eca2
movzbl -0x16(%rbp), %eax
cmpl $0x0, %eax
je 0x9eca2
movl $0x64, -0x4(%rbp)
jmp 0x9ecc4
movzbl -0x15(%rbp), %eax
cmpl $0x0, %eax
jne 0x9ecb4
movzbl -0x16(%rbp), %eax
cmpl $0x0, %eax
je 0x9ecbd
movl $0x19, -0x4(%rbp)
jmp 0x9ecc4
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_mdcd
void de_module_mdcd(deark *c, struct deark_module_info *mi)
{
	mi->id = "mdcd";
	mi->desc = "MDCD archive";
	mi->run_fn = de_run_mdcd;
	mi->identify_fn = de_identify_mdcd;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x112757(%rip), %rcx    # 0x1b143e
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x11274e(%rip), %rcx    # 0x1b1443
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0x9ed20
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x15d(%rip), %rcx       # 0x9ee70
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_run_mdcd
static void de_run_mdcd(deark *c, de_module_params *mparams)
{
	de_arch_lctx *d = NULL;
	i64 pos = 0;
	struct de_arch_member_data *md = NULL;

	d = de_arch_create_lctx(c);
	d->is_le = 1;
	d->input_encoding = de_get_input_encoding(c, NULL, DE_ENCODING_CP437);
	d->crco = de_crcobj_create(c, DE_CRCOBJ_CRC16_XMODEM);

	while(1) {
		if(pos+MDCD_MINHEADERLEN >= c->infile->len) goto done;

		if(md) {
			de_arch_destroy_md(c, md);
			md = NULL;
		}
		md = de_arch_create_md(c, d);
		md->member_hdr_pos = pos;
		if(!do_mdcd_member(c, d, md)) goto done;
		if(md->member_total_size<=0) goto done;
		pos += md->member_total_size;
	}

done:
	if(md) {
		de_arch_destroy_md(c, md);
	}
	if(d) {
		if(d->need_errmsg) {
			de_err(c, "Bad or unsupported MDCD file");
		}
		de_arch_destroy_lctx(c, d);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0x17c220
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl $0x1, 0x10(%rax)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xd, %edx
callq 0x15e4a0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x8(%rbp), %rdi
movl $0x20, %esi
callq 0x15eac0
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x20(%rbp), %rax
addq $0x36, %rax
movq -0x8(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpq 0x18(%rcx), %rax
jl 0x9edac
jmp 0x9ee1f
cmpq $0x0, -0x28(%rbp)
je 0x9edc8
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x17c1a0
movq $0x0, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c120
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0xa2790
cmpl $0x0, %eax
jne 0x9edfd
jmp 0x9ee1f
movq -0x28(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jg 0x9ee0a
jmp 0x9ee1f
movq -0x28(%rbp), %rax
movq 0x28(%rax), %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x9ed94
cmpq $0x0, -0x28(%rbp)
je 0x9ee33
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x17c1a0
cmpq $0x0, -0x18(%rbp)
je 0x9ee63
movq -0x18(%rbp), %rax
cmpb $0x0, 0x14(%rax)
je 0x9ee56
movq -0x8(%rbp), %rdi
leaq 0x112bc1(%rip), %rsi    # 0x1b1a10
movb $0x0, %al
callq 0x15bfb0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c270
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_cazip
void de_module_cazip(deark *c, struct deark_module_info *mi)
{
	mi->id = "cazip";
	mi->desc = "CAZIP compressed file";
	mi->run_fn = de_run_cazip;
	mi->identify_fn = de_identify_cazip;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x112589(%rip), %rcx    # 0x1b1450
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x112581(%rip), %rcx    # 0x1b1456
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0x9ef00
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x1bd(%rip), %rcx       # 0x9f0b0
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_cmz
void de_module_cmz(deark *c, struct deark_module_info *mi)
{
	mi->id = "cmz";
	mi->desc = "CMZ installer archive";
	mi->run_fn = de_run_cmz;
	mi->identify_fn = de_identify_cmz;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x112355(%rip), %rcx    # 0x1b146c
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x11234b(%rip), %rcx    # 0x1b1470
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0x9f150
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x14d(%rip), %rcx       # 0x9f290
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_run_cmz
static void de_run_cmz(deark *c, de_module_params *mparams)
{
	de_arch_lctx *d = NULL;
	i64 pos = 0;
	struct de_arch_member_data *md = NULL;

	d = de_arch_create_lctx(c);
	d->is_le = 1;
	d->input_encoding = de_get_input_encoding(c, NULL, DE_ENCODING_CP437);

	while(1) {
		if(pos+CMZ_MINHEADERLEN >= c->infile->len) goto done;

		if(md) {
			de_arch_destroy_md(c, md);
			md = NULL;
		}
		md = de_arch_create_md(c, d);
		md->member_hdr_pos = pos;
		if(!do_cmz_member(c, d, md)) goto done;
		if(md->member_total_size<=0) goto done;
		pos += md->member_total_size;
	}

done:
	if(md) {
		de_arch_destroy_md(c, md);
		md = NULL;
	}
	if(d) {
		if(d->need_errmsg) {
			de_err(c, "Bad or unsupported CMZ file");
		}
		de_arch_destroy_lctx(c, d);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0x17c220
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl $0x1, 0x10(%rax)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xd, %edx
callq 0x15e4a0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x20(%rbp), %rax
addq $0x15, %rax
movq -0x8(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpq 0x18(%rcx), %rax
jl 0x9f1c3
jmp 0x9f236
cmpq $0x0, -0x28(%rbp)
je 0x9f1df
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x17c1a0
movq $0x0, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c120
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0xa2db0
cmpl $0x0, %eax
jne 0x9f214
jmp 0x9f236
movq -0x28(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jg 0x9f221
jmp 0x9f236
movq -0x28(%rbp), %rax
movq 0x28(%rax), %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x9f1ab
cmpq $0x0, -0x28(%rbp)
je 0x9f252
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x17c1a0
movq $0x0, -0x28(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x9f282
movq -0x18(%rbp), %rax
cmpb $0x0, 0x14(%rax)
je 0x9f275
movq -0x8(%rbp), %rdi
leaq 0x112862(%rip), %rsi    # 0x1b1ad0
movb $0x0, %al
callq 0x15bfb0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c270
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_identify_cmz
static int de_identify_cmz(deark *c)
{
	i64 name_len;
	i64 cmpr_len;

	if(!cmz_sig_at(c, 0)) {
		return 0;
	}

	cmpr_len = de_getu32le(4);
	name_len = de_getu16le(16);
	if(cmpr_len==0 && name_len>0) {
		return 60;
	}
	if(dclimplode_header_at(c, 20+name_len)) {
		return 100;
	}

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xa2fd0
cmpl $0x0, %eax
jne 0x9f2b7
movl $0x0, -0x4(%rbp)
jmp 0x9f320
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x4, %esi
callq 0x165540
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x10, %esi
callq 0x165280
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x9f2fa
cmpq $0x0, -0x18(%rbp)
jle 0x9f2fa
movl $0x3c, -0x4(%rbp)
jmp 0x9f320
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x14, %rsi
callq 0xa3010
cmpl $0x0, %eax
je 0x9f319
movl $0x64, -0x4(%rbp)
jmp 0x9f320
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_pcshrink
void de_module_pcshrink(deark *c, struct deark_module_info *mi)
{
	mi->id = "pcshrink";
	mi->desc = "PC-Install compressed archive";
	mi->run_fn = de_run_pcshrink;
	mi->identify_fn = de_identify_pcshrink;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x11213f(%rip), %rcx    # 0x1b1486
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x11213a(%rip), %rcx    # 0x1b148f
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0x9f380
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x25d(%rip), %rcx       # 0x9f5d0
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_identify_pcshrink
static int de_identify_pcshrink(deark *c)
{
	u8 multipart_flag;
	int ver;

	ver = detect_pcshrink_internal(c, &multipart_flag);
	if(ver==1) {
		return 60;
	}
	else if(ver==2) {
		if(multipart_flag) return 40;
		return 80;
	}

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x11(%rbp), %rsi
callq 0xa3090
movl %eax, -0x18(%rbp)
cmpl $0x1, -0x18(%rbp)
jne 0x9f5fb
movl $0x3c, -0x4(%rbp)
jmp 0x9f622
cmpl $0x2, -0x18(%rbp)
jne 0x9f619
cmpb $0x0, -0x11(%rbp)
je 0x9f610
movl $0x28, -0x4(%rbp)
jmp 0x9f622
movl $0x50, -0x4(%rbp)
jmp 0x9f622
jmp 0x9f61b
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_arcv
void de_module_arcv(deark *c, struct deark_module_info *mi)
{
	mi->id = "arcv";
	mi->desc = "ARCV installer archive";
	mi->run_fn = de_run_arcv;
	mi->identify_fn = de_identify_arcv;
	mi->flags |= DE_MODFLAG_WARNPARSEONLY;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x111e66(%rip), %rcx    # 0x1b14ad
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x111e5d(%rip), %rcx    # 0x1b14b2
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x2c(%rip), %rcx        # 0x9f690
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x11d(%rip), %rcx       # 0x9f790
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movl 0x30(%rax), %ecx
orl $0x20, %ecx
movl %ecx, 0x30(%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_run_arcv
static void de_run_arcv(deark *c, de_module_params *mparams)
{
	de_arch_lctx *d = NULL;
	UI ver_maj;

	d = de_arch_create_lctx(c);
	d->is_le = 1;
	d->input_encoding = de_get_input_encoding(c, NULL, DE_ENCODING_WINDOWS1252);

	d->fmtver = (int)de_getu16le(4);
	ver_maj = (UI)d->fmtver >> 8;
	de_dbg(c, "format ver: 0x%04x", (UI)d->fmtver);
	if(ver_maj==1) {
		do_arcv_v1(c, d);
	}
	else if(ver_maj==2) {
		do_arcv_v2(c, d);
	}
	else {
		d->need_errmsg = 1;
		goto done;
	}

done:
	if(d) {
		if(d->need_errmsg) {
			de_err(c, "Bad or unsupported ARCV file");
		}
		de_arch_destroy_lctx(c, d);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x17c220
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl $0x1, 0x10(%rax)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x9, %edx
callq 0x15e4a0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x4, %esi
callq 0x165280
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x58(%rax)
movq -0x18(%rbp), %rax
movl 0x58(%rax), %eax
shrl $0x8, %eax
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x58(%rax), %edx
leaq 0x112459(%rip), %rsi    # 0x1b1b6e
movb $0x0, %al
callq 0x15b0d0
cmpl $0x1, -0x1c(%rbp)
jne 0x9f731
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xa34f0
jmp 0x9f752
cmpl $0x2, -0x1c(%rbp)
jne 0x9f746
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xa3690
jmp 0x9f750
movq -0x18(%rbp), %rax
movb $0x1, 0x14(%rax)
jmp 0x9f754
jmp 0x9f752
jmp 0x9f754
cmpq $0x0, -0x18(%rbp)
je 0x9f784
movq -0x18(%rbp), %rax
cmpb $0x0, 0x14(%rax)
je 0x9f777
movq -0x8(%rbp), %rdi
leaq 0x112411(%rip), %rsi    # 0x1b1b81
movb $0x0, %al
callq 0x15bfb0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c270
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_identify_arcv
static int de_identify_arcv(deark *c)
{
	u8 ver;

	if((UI)de_getu32be(0) != CODE_ARCV) return 0;
	ver = de_getbyte(5);
	if(ver==1 || ver==2) {
		return 100;
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x165470
cmpl $0x41524356, %eax       # imm = 0x41524356
je 0x9f7bd
movl $0x0, -0x4(%rbp)
jmp 0x9f7f4
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x5, %esi
callq 0x165060
movb %al, -0x11(%rbp)
movzbl -0x11(%rbp), %eax
cmpl $0x1, %eax
je 0x9f7e4
movzbl -0x11(%rbp), %eax
cmpl $0x2, %eax
jne 0x9f7ed
movl $0x64, -0x4(%rbp)
jmp 0x9f7f4
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_red
void de_module_red(deark *c, struct deark_module_info *mi)
{
	mi->id = "red";
	mi->desc = "RED installer archive (Knowledge Dynamics Corp)";
	mi->run_fn = de_run_red;
	mi->identify_fn = de_identify_red;
	mi->flags |= DE_MODFLAG_WARNPARSEONLY;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x129f07(%rip), %rcx    # 0x1c971e
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x111ca4(%rip), %rcx    # 0x1b14c9
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x2c(%rip), %rcx        # 0x9f860
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x2ed(%rip), %rcx       # 0x9fb30
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movl 0x30(%rax), %ecx
orl $0x20, %ecx
movl %ecx, 0x30(%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_lif_kdc
void de_module_lif_kdc(deark *c, struct deark_module_info *mi)
{
	mi->id = "lif_kdc";
	mi->desc = "LIF installer archive (Knowledge Dynamics Corp)";
	mi->run_fn = de_run_lif_kdc;
	mi->identify_fn = de_identify_lif_kdc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x111972(%rip), %rcx    # 0x1b14f9
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x11196c(%rip), %rcx    # 0x1b1501
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0x9fbc0
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x3fd(%rip), %rcx       # 0x9ffb0
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_identify_lif_kdc
static int de_identify_lif_kdc(deark *c)
{
	i64 cmprmeth;
	int errflag = 0;
	int has_ext;
	u8 b;
	i64 i;
	i64 n[4];

	cmprmeth = lif_read_field(c->infile, 32, 2, &errflag);
	if(errflag) return 0;
	if(cmprmeth<1 || cmprmeth>3) return 0;

	b = de_getbyte(34); // 1st char of filename
	if(b<32) return 0;
	b = de_getbyte(53); // last char of NUL-padded filename field??
	if(b!=0) return 0;

	for(i=0; i<4; i++) {
		n[i] = lif_read_field(c->infile, 8*i, 8, &errflag);
		if(errflag) return 0;
	}
	if(54+n[1] > c->infile->len) return 0; // File too short

	has_ext = de_input_file_has_ext(c, "lif");
	return has_ext ? 45 : 15;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x20, %esi
movl $0x2, %edx
leaq -0x1c(%rbp), %rcx
callq 0xa3bf0
movq %rax, -0x18(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x9fff4
movl $0x0, -0x4(%rbp)
jmp 0xa0102
cmpq $0x1, -0x18(%rbp)
jl 0xa0002
cmpq $0x3, -0x18(%rbp)
jle 0xa000e
movl $0x0, -0x4(%rbp)
jmp 0xa0102
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x22, %esi
callq 0x165060
movb %al, -0x21(%rbp)
movzbl -0x21(%rbp), %eax
cmpl $0x20, %eax
jge 0xa0038
movl $0x0, -0x4(%rbp)
jmp 0xa0102
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x35, %esi
callq 0x165060
movb %al, -0x21(%rbp)
movzbl -0x21(%rbp), %eax
cmpl $0x0, %eax
je 0xa0062
movl $0x0, -0x4(%rbp)
jmp 0xa0102
movq $0x0, -0x30(%rbp)
cmpq $0x4, -0x30(%rbp)
jge 0xa00ba
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x30(%rbp), %rsi
shlq $0x3, %rsi
movl $0x8, %edx
leaq -0x1c(%rbp), %rcx
callq 0xa3bf0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x50(%rbp,%rax,8)
cmpl $0x0, -0x1c(%rbp)
je 0xa00aa
movl $0x0, -0x4(%rbp)
jmp 0xa0102
jmp 0xa00ac
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xa006a
movq -0x48(%rbp), %rax
addq $0x36, %rax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpq 0x18(%rcx), %rax
jle 0xa00d9
movl $0x0, -0x4(%rbp)
jmp 0xa0102
movq -0x10(%rbp), %rdi
leaq 0x10a741(%rip), %rsi    # 0x1aa825
callq 0x15d180
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %edx
movl $0xf, %eax
movl $0x2d, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_ain
void de_module_ain(deark *c, struct deark_module_info *mi)
{
	mi->id = "ain";
	mi->desc = "AIN archive";
	mi->run_fn = de_run_ain;
	mi->flags |= DE_MODFLAG_HIDDEN;
	mi->identify_fn = de_identify_ain;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x129ffc(%rip), %rcx    # 0x1ca123
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x1113fc(%rip), %rcx    # 0x1b1531
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x2c(%rip), %rcx        # 0xa0170
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movl 0x30(%rax), %ecx
orl $0x1, %ecx
movl %ecx, 0x30(%rax)
movq -0x10(%rbp), %rax
leaq 0x60(%rip), %rcx        # 0xa01c0
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_run_ain
static void de_run_ain(deark *c, de_module_params *mparams)
{
	de_arch_lctx *d = NULL;

	d = de_arch_create_lctx(c);
	d->is_le = 1;
	do_ain_main(c, d);
	de_arch_destroy_lctx(c, d);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x17c220
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl $0x1, 0x10(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xa3cd0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c270
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_identify_ain
static int de_identify_ain(deark *c)
{
	UI hdr_checksum_reported;
	UI hdr_checksum_calc;
	int has_ext;
	i64 member_hdrs_pos;

	if(de_getbyte(0)!=0x21) return 0;
	if(de_getbyte(2)!=0x00) return 0;
	member_hdrs_pos = de_getu32le(14);
	if(member_hdrs_pos<24 || member_hdrs_pos>=c->infile->len) return 0;
	hdr_checksum_reported = (UI)de_getu16le(22);
	ain_calc_hdr_checksum(c, &hdr_checksum_calc);
	if(hdr_checksum_calc != hdr_checksum_reported) return 0;
	has_ext = de_input_file_has_ext(c, "ain");
	return has_ext?100:50;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x165060
movzbl %al, %eax
cmpl $0x21, %eax
je 0xa01f1
movl $0x0, -0x4(%rbp)
jmp 0xa02ab
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x2, %esi
callq 0x165060
movzbl %al, %eax
cmpl $0x0, %eax
je 0xa0217
movl $0x0, -0x4(%rbp)
jmp 0xa02ab
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0xe, %esi
callq 0x165540
movq %rax, -0x28(%rbp)
cmpq $0x18, -0x28(%rbp)
jl 0xa0246
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpq 0x18(%rcx), %rax
jl 0xa024f
movl $0x0, -0x4(%rbp)
jmp 0xa02ab
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x16, %esi
callq 0x165280
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0xa3f70
movl -0x18(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0xa0282
movl $0x0, -0x4(%rbp)
jmp 0xa02ab
movq -0x10(%rbp), %rdi
leaq 0x129e96(%rip), %rsi    # 0x1ca123
callq 0x15d180
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %edx
movl $0x32, %eax
movl $0x64, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_hta
void de_module_hta(deark *c, struct deark_module_info *mi)
{
	mi->id = "hta";
	mi->desc = "Hemera thumbnails";
	mi->run_fn = de_run_hta;
	mi->identify_fn = de_identify_hta;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x111266(%rip), %rcx    # 0x1b153d
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x11125c(%rip), %rcx    # 0x1b1541
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0xa0310
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x33d(%rip), %rcx       # 0xa0640
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_hit
void de_module_hit(deark *c, struct deark_module_info *mi)
{
	mi->id = "hit";
	mi->desc = "HIT archive";
	mi->run_fn = de_run_hit;
	mi->flags |= DE_MODFLAG_WARNPARSEONLY;
	mi->identify_fn = de_identify_hit;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x110eac(%rip), %rcx    # 0x1b1553
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x110ea2(%rip), %rcx    # 0x1b1557
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x2c(%rip), %rcx        # 0xa06f0
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movl 0x30(%rax), %ecx
orl $0x20, %ecx
movl %ecx, 0x30(%rax)
movq -0x10(%rbp), %rax
leaq 0x120(%rip), %rcx       # 0xa0800
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_run_hit
static void de_run_hit(deark *c, de_module_params *mparams)
{
	de_arch_lctx *d = NULL;
	struct de_arch_member_data *md = NULL;
	i64 pos;

	d = de_arch_create_lctx(c);
	d->is_le = 1;
	d->input_encoding = de_get_input_encoding(c, NULL, DE_ENCODING_CP437);

	pos = 2;

	while(1) {
		if(pos+HIT_MINHEADERLEN > c->infile->len) goto done;

		if(md) {
			de_arch_destroy_md(c, md);
			md = NULL;
		}
		md = de_arch_create_md(c, d);
		md->member_hdr_pos = pos;

		if(!do_BUhit_member(c, d, md)) goto done;
		if(md->member_total_size<=0) goto done;
		pos += md->member_total_size;
	}

done:
	if(md) {
		de_arch_destroy_md(c, md);
	}
	de_arch_destroy_lctx(c, d);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x17c220
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl $0x1, 0x10(%rax)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xd, %edx
callq 0x15e4a0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x18(%rax)
movq $0x2, -0x28(%rbp)
movq -0x28(%rbp), %rax
addq $0x14, %rax
movq -0x8(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpq 0x18(%rcx), %rax
jle 0xa0763
jmp 0xa07d6
cmpq $0x0, -0x20(%rbp)
je 0xa077f
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x17c1a0
movq $0x0, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c120
movq %rax, -0x20(%rbp)
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xa3fc0
cmpl $0x0, %eax
jne 0xa07b4
jmp 0xa07d6
movq -0x20(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jg 0xa07c1
jmp 0xa07d6
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
addq -0x28(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0xa074b
cmpq $0x0, -0x20(%rbp)
je 0xa07ea
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x17c1a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c270
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_binary_ii
void de_module_binary_ii(deark *c, struct deark_module_info *mi)
{
	mi->id = "binary_ii";
	mi->desc = "Binary II";
	mi->run_fn = de_run_binary_ii;
	mi->identify_fn = de_identify_binary_ii;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x110cec(%rip), %rcx    # 0x1b1563
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x110ce8(%rip), %rcx    # 0x1b156d
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0xa08b0
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x23d(%rip), %rcx       # 0xa0ae0
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_module_tc_trs80
void de_module_tc_trs80(deark *c, struct deark_module_info *mi)
{
	mi->id = "tc_trs80";
	mi->desc = "The Compressor (TRS-80 archive)";
	mi->run_fn = de_run_tc_trs80;
	mi->identify_fn = de_identify_tc_trs80;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x110a40(%rip), %rcx    # 0x1b1577
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
leaq 0x110a3b(%rip), %rcx    # 0x1b1580
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq 0x1c(%rip), %rcx        # 0xa0b70
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x17d(%rip), %rcx       # 0xa0ce0
movq %rcx, 0x20(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: de_run_tc_trs80
static void de_run_tc_trs80(deark *c, de_module_params *mparams)
{
	de_arch_lctx *d = NULL;
	struct de_arch_member_data *md = NULL;
	i64 pos = 0;
	i64 seq_num = 0;

	d = de_arch_create_lctx(c);
	d->is_le = 0;
	d->input_encoding = de_get_input_encoding(c, NULL, DE_ENCODING_ASCII);

	while(1) {
		if(pos >= c->infile->len) {
			d->fatalerrflag = 1;
			d->need_errmsg = 1;
			goto done;
		}

		if(md) {
			de_arch_destroy_md(c, md);
			md = NULL;
		}

		seq_num++; // 1-based
		md = de_arch_create_md(c, d);
		md->member_hdr_pos = pos;
		md->member_idx = seq_num;
		do_tc_member(c, d, md);
		if(d->stop_flag || d->fatalerrflag || md->member_total_size<1) {
			goto done;
		}
		pos += md->member_total_size;
	}

done:

	if(md) {
		de_arch_destroy_md(c, md);
	}
	if(d) {
		if(d->need_errmsg) {
			de_err(c, "Bad or unsupported TC file");
		}
		de_arch_destroy_lctx(c, d);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0x17c220
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl $0x0, 0x10(%rax)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x15e4a0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpq 0x18(%rcx), %rax
jl 0xa0bfd
movq -0x18(%rbp), %rax
movl $0x1, 0x38(%rax)
movq -0x18(%rbp), %rax
movb $0x1, 0x14(%rax)
jmp 0xa0c95
cmpq $0x0, -0x20(%rbp)
je 0xa0c19
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x17c1a0
movq $0x0, -0x20(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c120
movq %rax, -0x20(%rbp)
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xa4990
movq -0x18(%rbp), %rax
cmpl $0x0, 0x50(%rax)
jne 0xa0c7e
movq -0x18(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0xa0c7e
movq -0x20(%rbp), %rax
cmpq $0x1, 0x28(%rax)
jge 0xa0c80
jmp 0xa0c95
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
addq -0x28(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0xa0bd3
cmpq $0x0, -0x20(%rbp)
je 0xa0ca9
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x17c1a0
cmpq $0x0, -0x18(%rbp)
je 0xa0cd9
movq -0x18(%rbp), %rax
cmpb $0x0, 0x14(%rax)
je 0xa0ccc
movq -0x8(%rbp), %rdi
leaq 0x1112b0(%rip), %rsi    # 0x1b1f75
movb $0x0, %al
callq 0x15bfb0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x17c270
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: cpshrink_decompressor_fn
static void cpshrink_decompressor_fn(struct de_arch_member_data *md)
{
	deark *c = md->c;

	switch(md->cmpr_meth) {
	case 0:
	case 1:
		fmtutil_dclimplode_codectype1(c, md->dcmpri, md->dcmpro, md->dres, NULL);
		break;
	case 2:
		fmtutil_decompress_uncompressed(c, md->dcmpri, md->dcmpro, md->dres, 0);
		break;
	default:
		de_dfilter_set_generic_error(c, md->dres, NULL);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x90(%rax), %eax
movl %eax, -0x14(%rbp)
subl $0x2, %eax
jb 0xa1195
jmp 0xa118b
movl -0x14(%rbp), %eax
subl $0x2, %eax
je 0xa11c6
jmp 0xa11f5
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xb0(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0xb8(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0xc0(%rax), %rcx
xorl %eax, %eax
movl %eax, %r8d
callq 0x17faa0
jmp 0xa120d
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xb0(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0xb8(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0xc0(%rax), %rcx
xorl %r8d, %r8d
callq 0x1778b0
jmp 0xa120d
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xc0(%rax), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x177560
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: dwc_process_filename
static void dwc_process_filename(deark *c, de_arch_lctx *d, struct de_arch_member_data *md)
{
	ucstring_empty(md->filename);
	squash_slashes(md->tmpfn_base);
	if(ucstring_isempty(md->tmpfn_path)) {
		ucstring_append_ucstring(md->filename, md->tmpfn_base);
		return;
	}

	md->set_name_flags |= DE_SNFLAG_FULLPATH;
	ucstring_append_ucstring(md->filename, md->tmpfn_path);
	de_arch_fixup_path(md->filename, 0x1);
	if(ucstring_isempty(md->tmpfn_base)) {
		ucstring_append_char(md->filename, '_');
	}
	else {
		ucstring_append_ucstring(md->filename, md->tmpfn_base);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x58(%rax), %rdi
callq 0x171210
movq -0x18(%rbp), %rax
movq 0x68(%rax), %rdi
callq 0xa18d0
movq -0x18(%rbp), %rax
movq 0x70(%rax), %rdi
callq 0x1717b0
cmpl $0x0, %eax
je 0xa1787
movq -0x18(%rbp), %rax
movq 0x58(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x68(%rax), %rsi
callq 0x171460
jmp 0xa17f6
movq -0x18(%rbp), %rax
movl 0x78(%rax), %ecx
orl $0x1, %ecx
movl %ecx, 0x78(%rax)
movq -0x18(%rbp), %rax
movq 0x58(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x70(%rax), %rsi
callq 0x171460
movq -0x18(%rbp), %rax
movq 0x58(%rax), %rdi
movl $0x1, %esi
callq 0x17c2b0
movq -0x18(%rbp), %rax
movq 0x68(%rax), %rdi
callq 0x1717b0
cmpl $0x0, %eax
je 0xa17e1
movq -0x18(%rbp), %rax
movq 0x58(%rax), %rdi
movl $0x5f, %esi
callq 0x1714c0
jmp 0xa17f6
movq -0x18(%rbp), %rax
movq 0x58(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x68(%rax), %rsi
callq 0x171460
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: dwc_decompressor_fn
static void dwc_decompressor_fn(struct de_arch_member_data *md)
{
	deark *c = md->c;

	if(md->cmpr_meth==1) {
		struct de_lzw_params delzwp;

		de_zeromem(&delzwp, sizeof(struct de_lzw_params));
		delzwp.fmt = DE_LZWFMT_DWC;
		fmtutil_decompress_lzw(c, md->dcmpri, md->dcmpro, md->dres, &delzwp);
	}
	else if(md->cmpr_meth==2) {
		fmtutil_decompress_uncompressed(c, md->dcmpri, md->dcmpro, md->dres, 0);
	}
	else {
		de_dfilter_set_generic_error(c, md->dres, NULL);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x1, 0x90(%rax)
jne 0xa186b
leaq -0x24(%rbp), %rdi
xorl %esi, %esi
movl $0x14, %edx
callq 0x19140
movl $0x8, -0x24(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xb0(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0xb8(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0xc0(%rax), %rcx
leaq -0x24(%rbp), %r8
callq 0x1843b0
jmp 0xa18c1
movq -0x8(%rbp), %rax
cmpl $0x2, 0x90(%rax)
jne 0xa18a7
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xb0(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0xb8(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0xc0(%rax), %rcx
xorl %r8d, %r8d
callq 0x1778b0
jmp 0xa18bf
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xc0(%rax), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x177560
jmp 0xa18c1
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: squash_slashes
static void squash_slashes(de_ucstring *s)
{
	i64 i;

	for(i=0; i<s->len; i++) {
		if(s->str[i]=='/') {
			s->str[i] = '_';
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jge 0xa1923
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
cmpl $0x2f, (%rax,%rcx,4)
jne 0xa1913
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
movl $0x5f, (%rax,%rcx,4)
jmp 0xa1915
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0xa18e0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: edi_detect_fmt
static void edi_detect_fmt(deark *c, de_arch_lctx *d)
{
	u8 ver;
	i64 pos = 0;

	if(dbuf_memcmp(c->infile, pos, g_edilzss_sig, 7)) {
		d->need_errmsg = 1;
		return;
	}
	pos += 7;

	ver = de_getbyte_p(&pos);
	if(ver=='1') {
		// There's no easy way to distinguish some LZSS1 formats. This will not
		// always work.
		if(edi_is_filename_at(c, d, pos)) {
			d->fmtver = 1;
		}
		else {
			d->fmtver = 10;
		}
	}
	else if(ver=='2') {
		d->fmtver = 2;
	}
	else {
		d->need_errmsg = 1;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x20(%rbp), %rsi
movq 0x183e25(%rip), %rdx    # 0x225780
movl $0x7, %ecx
callq 0x166ab0
cmpl $0x0, %eax
je 0xa1974
movq -0x10(%rbp), %rax
movb $0x1, 0x14(%rax)
jmp 0xa19ed
movq -0x20(%rbp), %rax
addq $0x7, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x165170
movb %al, -0x11(%rbp)
movzbl -0x11(%rbp), %eax
cmpl $0x31, %eax
jne 0xa19cd
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xa1a50
cmpl $0x0, %eax
je 0xa19c0
movq -0x10(%rbp), %rax
movl $0x1, 0x58(%rax)
jmp 0xa19cb
movq -0x10(%rbp), %rax
movl $0xa, 0x58(%rax)
jmp 0xa19ed
movzbl -0x11(%rbp), %eax
cmpl $0x32, %eax
jne 0xa19e3
movq -0x10(%rbp), %rax
movl $0x2, 0x58(%rax)
jmp 0xa19eb
movq -0x10(%rbp), %rax
movb $0x1, 0x14(%rax)
jmp 0xa19ed
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/misc3.c
// Function: qip_do_v1
static void qip_do_v1(deark *c, de_arch_lctx *d)
{
	i64 pos = 0;
	struct de_arch_member_data *md = NULL;

	// This version doesn't have an index, but we sort of pretend it does,
	// so that v1 and v2 can be handled pretty much the same.

	while(1) {
		i64 cmpr_len;

		if(pos+32 >= c->infile->len) goto done;

		if(md) {
			de_arch_destroy_md(c, md);
			md = NULL;
		}
		md = de_arch_create_md(c, d);

		md->member_hdr_pos = pos;
		cmpr_len = de_getu32le(pos+4);
		if(!do_qip_member(c, d, md)) {
			goto done;
		}
		pos += 32 + cmpr_len;
	}

done:
	if(md) {
		de_arch_destroy_md(c, md);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x18(%rbp), %rax
addq $0x20, %rax
movq -0x8(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpq 0x18(%rcx), %rax
jl 0xa1c68
jmp 0xa1ce7
cmpq $0x0, -0x20(%rbp)
je 0xa1c84
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x17c1a0
movq $0x0, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x17c120
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x18(%rbp), %rsi
addq $0x4, %rsi
callq 0x165540
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xa1eb0
cmpl $0x0, %eax
jne 0xa1cd2
jmp 0xa1ce7
movq -0x28(%rbp), %rax
addq $0x20, %rax
addq -0x18(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0xa1c50
cmpq $0x0, -0x20(%rbp)
je 0xa1cfb
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x17c1a0
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)