// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/mac-arch.c
// Function: tome_do_member
static void tome_do_member(deark *c, struct tome_ctx *d, struct tome_md *md)
{
	i64 pos = md->hdr_pos;
	i64 fnlen;
	UI fn;
	i64 n;
	i64 seqno;
	int saved_indent_level;

	de_dbg_indent_save(c, &saved_indent_level);
	de_dbg(c, "member header at %"I64_FMT, md->hdr_pos);
	de_dbg_indent(c, 1);

	n = de_getu16be_p(&pos);
	de_dbg(c, "unk. f1: %u", (UI)n);
	seqno = de_getu32be_p(&pos);
	de_dbg(c, "file idx: %"I64_FMT, seqno);
	if(seqno!=(md->member_idx+1)) {
		d->fatalerrflag = 1;
		d->need_errmsg = 1;
		goto done;
	}

	fnlen = de_getbyte_p(&pos);
	if(fnlen>31) goto done;
	md->fname = dbuf_read_string(c->infile, pos, fnlen, fnlen, 0, d->input_encoding);
	pos += 31;
	de_dbg(c, "filename: \"%s\"", ucstring_getpsz_d(md->fname->str));

	dbuf_read_fourcc(c->infile, pos, &md->filetype, 4, 0x0);
	de_dbg(c, "filetype: '%s'", md->filetype.id_dbgstr);
	de_memcpy(md->advf->typecode, md->filetype.bytes, 4);
	md->advf->has_typecode = 1;
	pos += 4;
	dbuf_read_fourcc(c->infile, pos, &md->creator, 4, 0x0);
	de_dbg(c, "creator: '%s'", md->creator.id_dbgstr);
	de_memcpy(md->advf->creatorcode, md->creator.bytes, 4);
	md->advf->has_creatorcode = 1;
	pos += 4;

	tome_read_timestamp(c, d, md, pos, DE_TIMESTAMPIDX_CREATE, "create");
	pos += 4;
	tome_read_timestamp(c, d, md, pos, DE_TIMESTAMPIDX_MODIFY, "modify");
	pos += 4;

	pos += 2; // version?
	pos += 2; // ?

	md->finder_flags = (UI)dbuf_getu16be_p(c->infile, &pos);
	de_dbg(c, "finder flags: 0x%04x", md->finder_flags);
	md->advf->finderflags = (u16)md->finder_flags;
	md->advf->has_finderflags = 1;

	for(fn=0; fn<2; fn++) {
		md->frk[fn].orig_len = de_getu32be_p(&pos);
		md->frk[fn].cmpr_pos = de_getu32be_p(&pos);
		md->frk[fn].cmpr_len = de_getu32be_p(&pos);
		de_dbg(c, "orig len [%s]: %"I64_FMT, md->frk[fn].forkname, md->frk[fn].orig_len);
		de_dbg(c, "cmpr pos [%s]: %"I64_FMT, md->frk[fn].forkname, md->frk[fn].cmpr_pos);
		de_dbg(c, "cmpr len [%s]: %"I64_FMT, md->frk[fn].forkname, md->frk[fn].cmpr_len);
		md->frk[fn].checksum_reported = (u32)de_getu32be_p(&pos);
		de_dbg(c, "checksum (reported) [%s]: 0x%08x", md->frk[fn].forkname,
			(UI)md->frk[fn].checksum_reported);
	}

	md->advf->mainfork.fork_len = md->frk[0].orig_len;
	md->advf->rsrcfork.fork_len = md->frk[1].orig_len;
	md->advf->mainfork.fork_exists = (md->frk[0].orig_len!=0 ||
		md->frk[1].orig_len==0);
	md->advf->rsrcfork.fork_exists = (md->frk[1].orig_len!=0);

	md->advf->mainfork.writelistener_cb = tome_writelistener;
	md->advf->mainfork.userdata_for_writelistener = (void*)&md->frk[0];
	md->advf->rsrcfork.writelistener_cb = tome_writelistener;
	md->advf->rsrcfork.userdata_for_writelistener = (void*)&md->frk[1];
	md->frk[0].checksum_calc = 0;
	md->frk[1].checksum_calc = 0;

	for(fn=0; fn<2; fn++) {
		i64 expected_cmpr_len;
		i64 tmpn;

		if(md->frk[fn].orig_len!=0) {
			tmpn = de_pad_to_n(md->frk[fn].orig_len, 65536);
			expected_cmpr_len = md->frk[fn].orig_len + tmpn/16384;
			if(md->frk[fn].cmpr_len != expected_cmpr_len) {
				md->frk[fn].is_compressed = 1;
			}
		}
	}

	md->advf->userdata = (void*)md;
	md->advf->writefork_cbfn = tome_advfile_cbfn;
	ucstring_append_ucstring(md->advf->filename, md->fname->str);
	md->advf->original_filename_flag = 1;
	de_advfile_set_orig_filename(md->advf, md->fname->sz, md->fname->sz_strlen);

	de_advfile_run(md->advf);

	for(fn=0; fn<2; fn++) {
		int ckres;

		if(md->frk[fn].orig_len && md->frk[fn].decompress_succeeded) {
			de_dbg(c, "checksum (calculated) [%s]: 0x%08x", md->frk[fn].forkname,
				(UI)md->frk[fn].checksum_calc);
			ckres = tome_test_checksum(md->frk[fn].checksum_reported,
				md->frk[fn].checksum_calc);
			de_dbg(c, "checksum result [%s]: 0x%08x (%s)", md->frk[fn].forkname,
				(UI)(md->frk[fn].checksum_calc ^ md->frk[fn].checksum_reported),
				(ckres?"ok":"error"));
			if(!ckres) {
				de_err(c, "Checksum failed [%s]", md->frk[fn].forkname);
			}
		}
	}

done:
	de_dbg_indent_restore(c, saved_indent_level);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x44(%rbp), %rsi
callq 0x15b580
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0xec80f(%rip), %rsi     # 0x1d0692
movb $0x0, %al
callq 0x15b0d0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x15b560
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x165210
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
movq -0x38(%rbp), %rax
movl %eax, %edx
leaq 0xd901a(%rip), %rsi     # 0x1bced8
movb $0x0, %al
callq 0x15b0d0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1654b0
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rdi
movq -0x40(%rbp), %rdx
leaq 0xd8ffb(%rip), %rsi     # 0x1bcee4
movb $0x0, %al
callq 0x15b0d0
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rcx
movq 0x10(%rcx), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
je 0xe3f1a
movq -0x10(%rbp), %rax
movb $0x1, 0x4(%rax)
movq -0x10(%rbp), %rax
movb $0x1, 0x5(%rax)
jmp 0xe46ec
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x165170
movzbl %al, %eax
movq %rax, -0x28(%rbp)
cmpq $0x1f, -0x28(%rbp)
jle 0xe3f3e
jmp 0xe46ec
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %r9d
xorl %r8d, %r8d
callq 0x1664c0
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x20(%rbp), %rax
addq $0x1f, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x18(%rax), %rdi
callq 0x172650
movq -0x68(%rbp), %rdi
movq %rax, %rdx
leaq 0xe35e4(%rip), %rsi     # 0x1c7583
movb $0x0, %al
callq 0x15b0d0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
addq $0x40, %rdx
movl $0x4, %ecx
xorl %r8d, %r8d
callq 0x169860
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x40, %rdx
addq $0x10, %rdx
leaq 0xbc729(%rip), %rsi     # 0x1a0707
movb $0x0, %al
callq 0x15b0d0
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x18(%rbp), %rcx
movl 0x40(%rcx), %ecx
movl %ecx, 0x90(%rax)
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movb $0x1, 0x7b(%rax)
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
addq $0x70, %rdx
movl $0x4, %ecx
xorl %r8d, %r8d
callq 0x169860
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x70, %rdx
addq $0x10, %rdx
leaq 0xdbce8(%rip), %rsi     # 0x1bfd32
movb $0x0, %al
callq 0x15b0d0
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x18(%rbp), %rcx
movl 0x70(%rcx), %ecx
movl %ecx, 0x94(%rax)
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movb $0x1, 0x7c(%rax)
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movl $0x1, %r8d
leaq 0xbffa0(%rip), %r9      # 0x1a403b
callq 0xe4710
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
xorl %r8d, %r8d
leaq 0xd8e2c(%rip), %r9      # 0x1bcef2
callq 0xe4710
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x165210
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x28(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x28(%rax), %edx
leaq 0xbc5fb(%rip), %rsi     # 0x1a0716
movb $0x0, %al
callq 0x15b0d0
movq -0x18(%rbp), %rax
movl 0x28(%rax), %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movw %cx, 0x7e(%rax)
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movb $0x1, 0x7d(%rax)
movl $0x0, -0x2c(%rbp)
cmpl $0x2, -0x2c(%rbp)
jae 0xe431c
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1654b0
movq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %edx
imulq $0x38, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1654b0
movq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %edx
imulq $0x38, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1654b0
movq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %edx
imulq $0x38, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0xc0, %rdx
movl -0x2c(%rbp), %eax
imulq $0x38, %rax, %rax
addq %rax, %rdx
addq $0x30, %rdx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rcx
leaq 0xd8ce4(%rip), %rsi     # 0x1bcef9
movb $0x0, %al
callq 0x15b0d0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0xc0, %rdx
movl -0x2c(%rbp), %eax
imulq $0x38, %rax, %rax
addq %rax, %rdx
addq $0x30, %rdx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rcx
leaq 0xd8cb4(%rip), %rsi     # 0x1bcf0c
movb $0x0, %al
callq 0x15b0d0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0xc0, %rdx
movl -0x2c(%rbp), %eax
imulq $0x38, %rax, %rax
addq %rax, %rdx
addq $0x30, %rdx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x28(%rax), %rcx
leaq 0xd8c84(%rip), %rsi     # 0x1bcf1f
movb $0x0, %al
callq 0x15b0d0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1654b0
movl %eax, %ecx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %edx
imulq $0x38, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x10(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0xc0, %rdx
movl -0x2c(%rbp), %eax
imulq $0x38, %rax, %rax
addq %rax, %rdx
addq $0x30, %rdx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %ecx
leaq 0xd8c2b(%rip), %rsi     # 0x1bcf32
movb $0x0, %al
callq 0x15b0d0
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0xe414b
movq -0x18(%rbp), %rax
movq 0xd8(%rax), %rcx
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x18(%rbp), %rax
movq 0x110(%rax), %rcx
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movq %rcx, 0x40(%rax)
movq -0x18(%rbp), %rcx
movb $0x1, %al
cmpq $0x0, 0xd8(%rcx)
movb %al, -0x69(%rbp)
jne 0xe436f
movq -0x18(%rbp), %rax
cmpq $0x0, 0x110(%rax)
sete %al
movb %al, -0x69(%rbp)
movb -0x69(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, 0x10(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x110(%rax)
setne %al
andb $0x1, %al
movzbl %al, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, 0x38(%rax)
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
leaq 0x40c(%rip), %rcx       # 0xe47c0
movq %rcx, 0x30(%rax)
movq -0x18(%rbp), %rcx
addq $0xc0, %rcx
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
leaq 0x3e2(%rip), %rcx       # 0xe47c0
movq %rcx, 0x58(%rax)
movq -0x18(%rbp), %rcx
addq $0xc0, %rcx
addq $0x38, %rcx
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movq %rcx, 0x50(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0xd4(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x10c(%rax)
movl $0x0, -0x2c(%rbp)
cmpl $0x2, -0x2c(%rbp)
jae 0xe44ef
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x18(%rax)
je 0xe44df
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdi
movl $0x10000, %esi          # imm = 0x10000
callq 0x15ce90
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x58(%rbp), %rax
movl $0x4000, %ecx           # imm = 0x4000
cqto
idivq %rcx
movq %rax, %rcx
movq -0x78(%rbp), %rax
addq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x28(%rax), %rax
cmpq -0x50(%rbp), %rax
je 0xe44dd
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movb $0x1, 0xc(%rax)
jmp 0xe44df
jmp 0xe44e1
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0xe4420
movq -0x18(%rbp), %rcx
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
leaq 0x372(%rip), %rcx       # 0xe4880
movq %rcx, 0x60(%rax)
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x68(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x18(%rax), %rsi
callq 0x171460
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movb $0x1, 0x79(%rax)
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rdx
callq 0x17ab20
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x17ac20
movl $0x0, -0x2c(%rbp)
cmpl $0x2, -0x2c(%rbp)
jae 0xe46ea
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x18(%rax)
je 0xe46da
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movzbl 0xd(%rax), %eax
cmpl $0x0, %eax
je 0xe46da
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0xc0, %rdx
movl -0x2c(%rbp), %eax
imulq $0x38, %rax, %rax
addq %rax, %rdx
addq $0x30, %rdx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl 0x14(%rax), %ecx
leaq 0xd895a(%rip), %rsi     # 0x1bcf53
movb $0x0, %al
callq 0x15b0d0
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %edi
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl 0x14(%rax), %esi
callq 0xe4930
movl %eax, -0x5c(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0xc0, %rdx
movl -0x2c(%rbp), %eax
imulq $0x38, %rax, %rax
addq %rax, %rdx
addq $0x30, %rdx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl 0x14(%rax), %ecx
movq -0x18(%rbp), %rax
addq $0xc0, %rax
movl -0x2c(%rbp), %esi
imulq $0x38, %rsi, %rsi
addq %rsi, %rax
xorl 0x10(%rax), %ecx
movl -0x5c(%rbp), %esi
leaq 0xf4994(%rip), %r8      # 0x1d901f
leaq 0xc0bc3(%rip), %rax     # 0x1a5255
cmpl $0x0, %esi
cmovneq %rax, %r8
leaq 0xd88d6(%rip), %rsi     # 0x1bcf76
movb $0x0, %al
callq 0x15b0d0
cmpl $0x0, -0x5c(%rbp)
jne 0xe46d8
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0xc0, %rdx
movl -0x2c(%rbp), %eax
imulq $0x38, %rax, %rax
addq %rax, %rdx
addq $0x30, %rdx
leaq 0xd88c7(%rip), %rsi     # 0x1bcf98
movb $0x0, %al
callq 0x15bfb0
jmp 0xe46da
jmp 0xe46dc
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0xe4574
jmp 0xe46ec
movq -0x8(%rbp), %rdi
movl -0x44(%rbp), %esi
callq 0x15b5a0
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)