// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/lha.c
// Function: do_run_lha_internal
static void do_run_lha_internal(deark *c, lctx *d, de_module_params *mparams)
{
	i64 pos;
	struct member_data *md = NULL;
	de_encoding guessed_encoding;

	if(!d->basefmt_name) {
		d->basefmt_name = "LHA";
	}
	d->lhark_req = de_get_ext_option_bool(c, "lha:lhark", -1);
	d->lhark_policy = d->lhark_req;

	// It's not really safe to guess CP437, because Japanese-encoded (CP932?)
	// filenames are common.
	if(d->basefmt==BASEFMT_SWG || d->basefmt==BASEFMT_PAKLEO) {
		guessed_encoding = DE_ENCODING_CP437;
	}
	else if(d->basefmt==BASEFMT_TPK) {
		guessed_encoding = DE_ENCODING_WINDOWS1252;
	}
	else {
		guessed_encoding = DE_ENCODING_ASCII;
	}
	d->input_encoding = de_get_input_encoding(c, NULL, guessed_encoding);

	d->hlev_of_first_member = 0xff;
	if(d->basefmt==BASEFMT_PAKLEO) {
		d->crco = de_crcobj_create(c, DE_CRCOBJ_CRC32_PL);
	}
	else {
		d->crco = de_crcobj_create(c, DE_CRCOBJ_CRC16_ARC);
	}
	d->crco_cksum = de_crcobj_create(c, DE_CRCOBJ_SUM_BYTES);

	pos = 0;
	if(d->basefmt==BASEFMT_PAKLEO) pos += 37;

	while(1) {
		if(pos >= c->infile->len) break;

		md = create_member_data(c);
		md->encoding = d->input_encoding;
		md->member_pos = pos;
		if(!do_read_member(c, d, md)) goto done;
		if(md->total_size<1) goto done;

		d->member_count++;
		pos += md->total_size;

		destroy_member_data(c, md);
		md = NULL;
	}

done:
	do_lha_footer(c, d);
	destroy_member_data(c, md);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, 0x10(%rsi)
jne 0x80979
leaq 0x9e11b(%rip), %rax     # 0x11ea90
movq %rax, 0x10(%r14)
leaq 0x9e114(%rip), %rsi     # 0x11ea94
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0xdfae5
movl %eax, 0x8(%r14)
movl %eax, 0x4(%r14)
movl 0xc(%r14), %eax
decl %eax
pushq $0x1
popq %rdx
cmpl $0x2, %eax
ja 0x809ad
movl %eax, %eax
leaq 0x9dfe2(%rip), %rcx     # 0x11e98c
movl (%rcx,%rax,4), %edx
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %esi, %esi
callq 0xe08d2
movl %eax, (%r14)
movb $-0x1, 0x18(%r14)
cmpl $0x3, 0xc(%r14)
pushq $0x12
popq %rax
pushq $0x21
popq %rsi
cmovel %eax, %esi
movq %rbx, %rdi
callq 0xe0ae9
movq %rax, 0x28(%r14)
pushq $0x30
popq %rsi
movq %rbx, %rdi
callq 0xe0ae9
movq %rax, 0x30(%r14)
cmpl $0x3, 0xc(%r14)
pushq $0x25
popq %rbp
cmovneq %r15, %rbp
movq 0x18(%rbx), %rax
cmpq 0x18(%rax), %rbp
jge 0x817e4
movq %rbx, %rdi
callq 0x819da
movq %rax, %r15
movl (%r14), %eax
movl %eax, 0x4(%r15)
movq %rbp, 0x8(%r15)
movq %rbp, 0x10(%rsp)
andq $0x0, 0x40(%rsp)
movq %rbx, %rdi
leaq 0x3c(%rsp), %rsi
callq 0xdebae
movq 0x18(%rbx), %rdi
movq 0x18(%rdi), %r13
subq %rbp, %r13
cmpl $0x3, 0xc(%r14)
jne 0x80a68
testq %r13, %r13
jle 0x817ec
leaq 0x50(%rsp), %rsi
movq %rbp, %rdx
pushq $0x7
popq %rcx
callq 0xe3cb7
leaq 0x52(%rsp), %rdi
jmp 0x80aeb
testq %r13, %r13
jle 0x817ec
movq %rbp, %rsi
callq 0xe3eb4
movb %al, 0x60(%rsp)
cmpq $0x2, %r13
ja 0x80a8b
testb %al, %al
je 0x817f4
cmpq $0x14, %r13
ja 0x80a99
testb %al, %al
je 0x817f0
movq 0x18(%rbx), %rdi
leaq 0x1(%rbp), %rdx
leaq 0x61(%rsp), %rsi
pushq $0x14
popq %rcx
callq 0xe3cb7
cmpl $0x1, 0xc(%r14)
movzbl 0x74(%rsp), %eax
movl $0x0, %ecx
cmovel %ecx, %eax
cmpb $0x0, 0x61(%rsp)
sete %cl
cmpl $0x2, %eax
setne %dl
cmpb $0x0, 0x60(%rsp)
jne 0x80add
orb %dl, %cl
jne 0x817f0
cmpl $0x3, %eax
ja 0x817e0
leaq 0x62(%rsp), %rdi
callq 0x82431
testl %eax, %eax
je 0x817e0
movq %rbx, %rdi
leaq 0xadd6b(%rip), %rsi     # 0x12e86d
movq %rbp, %rdx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movl 0xc(%r14), %eax
cmpl $0x3, %eax
je 0x80b2a
cmpl $0x2, %eax
je 0x80b2a
cmpl $0x1, %eax
jne 0x80b32
movb $0x0, (%r15)
xorl %edx, %edx
jmp 0x80b45
movq 0x18(%rbx), %rdi
leaq 0x14(%rbp), %rsi
callq 0xe3eb4
movb %al, (%r15)
movzbl %al, %edx
movq %rbx, %rdi
leaq 0x9df9a(%rip), %rsi     # 0x11eae9
xorl %eax, %eax
callq 0xde896
movzbl (%r15), %eax
cmpl $0x3, %eax
ja 0x81870
movq %rbp, 0x30(%rsp)
cmpl $0x0, 0x1c(%r14)
jne 0x80b73
movb %al, 0x18(%r14)
movl 0xc(%r14), %ebp
cmpl $0x3, %ebp
jne 0x80c2b
addq $0x2, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x28(%rsp)
movq $0x0, 0x20(%rsp)
leaq 0x10(%rsp), %rbp
movq 0x18(%rbx), %rdi
movq 0x10(%rsp), %rdx
leaq 0xb3(%rsp), %r12
movq %r12, %rsi
pushq $0x5
popq %rcx
callq 0xe3cb7
movq %rbx, %rdi
pushq $0x70
popq %rsi
callq 0xdecaf
movq %rax, 0x18(%r15)
movl 0xc(%r14), %esi
movq %r12, %rdi
movq %rax, %rdx
callq 0x81a78
movq 0x18(%r15), %rcx
leaq 0x15(%rcx), %rdx
addq $0x1b, %rcx
movq %rbx, %rdi
leaq 0x9df97(%rip), %rsi     # 0x11eb8d
xorl %eax, %eax
callq 0xde896
movq 0x10(%rsp), %rsi
addq $0x5, %rsi
movq %rsi, 0x10(%rsp)
movq 0x18(%r15), %rax
cmpl $0x2d6c6864, 0x4(%rax)  # imm = 0x2D6C6864
jne 0x80c7f
movb $0x1, 0x20(%r15)
leaq 0x85a4b(%rip), %rax     # 0x10666f
movq %rax, 0x48(%rsp)
jmp 0x80ca1
movl %eax, %eax
leaq 0x9dc7c(%rip), %rcx     # 0x11e8b0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0xe3f2a
movzbl %al, %r12d
movq %rbx, %rdi
cmpl $0x2, %ebp
jne 0x815c4
leaq 0x99ac4(%rip), %rsi     # 0x11a726
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
cmpb $0x2, %r12b
jb 0x81870
addq $-0x2, %r12
jmp 0x815d5
leaq 0xeb1(%rip), %rcx       # 0x81b37
cmpq %rcx, 0x8(%rax)
leaq 0xb6fcf(%rip), %rcx     # 0x137c60
leaq 0x859d7(%rip), %rax     # 0x10666f
cmoveq %rax, %rcx
movq %rcx, 0x48(%rsp)
cmpb $0x1, (%r15)
movq 0x18(%rbx), %rdi
jne 0x80ce1
movq %rbp, %rsi
callq 0xe40bf
movq %rax, %r12
movq %rbx, %rdi
leaq 0x9dee4(%rip), %rsi     # 0x11eba4
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x28(%rsp), %rax
addq %r12, %rax
addq $0x2, %rax
movq %rax, 0x10(%r15)
movq 0x10(%rsp), %rsi
jmp 0x80d42
callq 0xe409f
movq %rax, 0x60(%r15)
movq %rbx, %rdi
leaq 0x905d3(%rip), %rsi     # 0x1112c7
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x10(%rsp), %rsi
addq $0x4, %rsi
movq %rsi, 0x10(%rsp)
movzbl (%r15), %eax
cmpl $0x2, %eax
je 0x80d32
testl %eax, %eax
jne 0x80d3f
cmpl $0x3, 0xc(%r14)
je 0x80d3f
movq 0x60(%r15), %rax
movq 0x18(%rsp), %rcx
addq %rcx, %rax
addq $0x2, %rax
jmp 0x80d3b
movq 0x60(%r15), %rax
addq 0x20(%rsp), %rax
movq %rax, 0x10(%r15)
xorl %r12d, %r12d
movq %r12, 0xa8(%rsp)
movq 0x18(%rbx), %rdi
callq 0xe409f
movq %rax, 0x28(%r15)
movq %rbx, %rdi
leaq 0x9de51(%rip), %rsi     # 0x11ebb2
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq 0x10(%rsp), %r12
leaq 0x4(%r12), %rdx
movq %rdx, 0x10(%rsp)
movzbl (%r15), %eax
leal -0x2(%rax), %ecx
cmpl $0x2, %ecx
jb 0x80dcf
cmpl $0x1, %eax
ja 0x80def
movq 0x18(%rbx), %rdi
movq %rdx, %rsi
callq 0xe3fa3
movq %rax, %r13
movq 0x18(%rbx), %rdi
addq $0x6, %r12
movq %r12, %rsi
callq 0xe3fa3
movq %r13, %rcx
orq %rax, %rcx
jne 0x81109
movq %rbx, %rdi
leaq 0x9e090(%rip), %rsi     # 0x11ee4f
leaq 0x9802f(%rip), %rdx     # 0x118df5
xorl %eax, %eax
callq 0xde896
jmp 0x80de3
movq %rbx, %rdi
movq %r15, %rsi
xorl %ecx, %ecx
leaq 0x98017(%rip), %r8      # 0x118df5
callq 0x81b48
addq $0x4, 0x10(%rsp)
cmpb $0x0, (%r15)
je 0x80e16
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xe3f2a
movzbl %al, %edx
movq %rbx, %rdi
leaq 0x9ddbc(%rip), %rsi     # 0x11ebc4
xorl %eax, %eax
callq 0xde896
incq 0x10(%rsp)
jmp 0x80e67
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xe3fc4
movq %rax, %r12
movq %rbx, %rdi
callq 0xeac74
movq %rax, %r13
movq %rbx, %rdi
movl %r12d, %esi
movq %rax, %rdx
xorl %ecx, %ecx
callq 0xe0298
movq %r13, %rdi
callq 0xeb877
movq %rbx, %rdi
leaq 0x8b5d7(%rip), %rsi     # 0x10c429
movl %r12d, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0xde896
movq %r13, %rdi
callq 0xeaf3c
movl 0xc(%r14), %eax
cmpl $0x1, %eax
jne 0x80f52
movq 0x10(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x18(%rbx), %rdi
leaq 0x60(%rsp), %rsi
callq 0xe40bf
movq %rbx, %rdi
leaq 0x9dfd3(%rip), %rsi     # 0x11ee69
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
callq 0xeac74
movq %rax, %r13
movq 0x60(%rsp), %rcx
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
pushq $0xd
popq %r8
leaq 0x9dfc3(%rip), %r9      # 0x11ee86
callq 0x827d8
movq 0x60(%rsp), %rcx
addq $0xd, %rcx
movq %rcx, 0x60(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
pushq $0x29
popq %r8
leaq 0x9dfac(%rip), %r9      # 0x11ee96
callq 0x827d8
movq 0x60(%rsp), %rcx
addq $0x29, %rcx
movq %rcx, 0x60(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
pushq $0x24
popq %r8
leaq 0x9df8d(%rip), %r9      # 0x11ee9e
callq 0x827d8
movq 0x60(%rsp), %rcx
addq $0x24, %rcx
movq %rcx, 0x60(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
pushq $0x47
popq %r8
leaq 0x9df72(%rip), %r9      # 0x11eeaa
callq 0x827d8
movq %r13, %rdi
callq 0xeaf3c
addq $0xa5, 0x10(%rsp)
movl 0xc(%r14), %eax
cmpl $0x3, %eax
jne 0x80f7e
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xe40bf
movl %eax, 0x4c(%r15)
movq %rbx, %rdi
leaq 0x9defc(%rip), %rsi     # 0x11ee6d
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movl 0xc(%r14), %eax
cmpl $0x2, %eax
jne 0x81086
movq 0x10(%rsp), %rbp
movq 0x8(%r15), %r12
cmpq $0x0, 0x70(%r15)
jne 0x80fa3
movq %rbx, %rdi
callq 0xeac74
movq %rax, 0x70(%r15)
cmpq $0x0, 0x68(%r15)
jne 0x80fb6
movq %rbx, %rdi
callq 0xeac74
movq %rax, 0x68(%r15)
movq 0x18(%rsp), %rax
subq %rbp, %rax
addq %rax, %r12
addq $0x2, %r12
movq 0x18(%rbx), %rdi
movl 0x4(%r15), %r9d
movl $0x100, %ecx            # imm = 0x100
movq %rbp, %rsi
movq %r12, %rdx
pushq $0x1
popq %r8
callq 0xe495c
movq %rax, %r13
movq 0x18(%rax), %rdi
callq 0xeb877
movq %rbx, %rdi
leaq 0xada67(%rip), %rsi     # 0x12ea5e
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x70(%r15), %rdi
movq 0x18(%r13), %rsi
callq 0xead71
movq (%r13), %rax
addq %rax, %rbp
subq %rax, %r12
movq 0x18(%rbx), %rdi
movq 0x68(%r15), %rcx
movl 0x4(%r15), %r9d
movq %rbp, %rsi
movq %r12, %rdx
pushq $0x1
popq %r8
callq 0xe4c9a
movq 0x68(%r15), %rdi
callq 0xeb877
movq %rbx, %rdi
leaq 0x909fa(%rip), %rsi     # 0x111a40
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x68(%r15), %rdi
movq 0x10(%rdi), %rsi
testq %rsi, %rsi
movl $0x0, %eax
cmovgq %rsi, %rax
xorl %ecx, %ecx
leaq 0x10(%rsp), %rbp
cmpq %rcx, %rax
je 0x810e1
movq 0x8(%rdi), %rdx
cmpl $0x5c, (%rdx,%rcx,4)
jne 0x81081
movl $0x2f, (%rdx,%rcx,4)
incq %rcx
jmp 0x8106b
cmpb $0x1, (%r15)
ja 0x81292
movq 0x18(%rbx), %rdi
movq 0x10(%rsp), %rsi
leaq 0x1(%rsi), %rax
movq %rax, 0x10(%rsp)
callq 0xe3eb4
movzbl %al, %r12d
movq %rbx, %rdi
leaq 0x9e289(%rip), %rsi     # 0x11f33e
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
cmpb $0x0, (%r15)
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rcx
je 0x81278
callq 0x81ca0
jmp 0x8127d
testq %rsi, %rsi
jle 0x810f9
movq 0x8(%rdi), %rax
cmpl $0x2f, -0x4(%rax,%rsi,4)
jne 0x810f9
decq %rsi
callq 0xeac8c
movq %rbx, %rdi
movq %r13, %rsi
callq 0xe4b94
jmp 0x81282
leaq 0x50(%rsp), %r12
movq %r12, %rdi
movq %rax, %rsi
movq %r13, %rdx
callq 0xe0110
movb $0x2, 0x51(%rsp)
movq %r12, %rdi
leaq 0x60(%rsp), %r12
movq %r12, %rsi
pushq $0x40
popq %rdx
xorl %ecx, %ecx
callq 0xe0644
movq %rbx, %rdi
leaq 0xbad72(%rip), %rsi     # 0x13beb2
leaq 0x97cae(%rip), %rdx     # 0x118df5
movq %r12, %rcx
xorl %eax, %eax
callq 0xde896
cmpb $0x0, 0x50(%rsp)
je 0x80de3
cmpl $0xa, 0x90(%r15)
jg 0x80de3
movups 0x50(%rsp), %xmm0
movups %xmm0, 0x80(%r15)
movl $0xa, 0x90(%r15)
jmp 0x80de3
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rbp
movq %rbp, %rsi
callq 0xe3fc4
movq %rbx, %rdi
leaq 0x9d981(%rip), %rsi     # 0x11eb23
movq %rax, 0x20(%rsp)
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq $0x0, 0x18(%rsp)
movq $0x0, 0x28(%rsp)
jmp 0x80ba6
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rbp
movq %rbp, %rsi
callq 0xe3fc4
movq %rax, %r12
movq %rbx, %rdi
leaq 0x9d960(%rip), %rsi     # 0x11eb45
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
cmpq $0x4, %r12
jne 0x8198d
movq $0x0, 0x18(%rsp)
movq $0x0, 0x28(%rsp)
movq $0x0, 0x20(%rsp)
jmp 0x80ba6
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %r12
movq %r12, %rsi
callq 0xe3f2a
movzbl %al, %r13d
movq %rbx, %rdi
leaq 0x9d8d6(%rip), %rsi     # 0x11eb0e
movl %r13d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r12, %rsi
callq 0xe3f2a
movl %eax, %ebp
movq 0x18(%rbx), %rdi
movq 0x10(%rsp), %rsi
movq 0x30(%r14), %rcx
movq %r13, 0x28(%rsp)
movq %r13, %rdx
callq 0x81a34
movq $0x0, 0x18(%rsp)
jmp 0x81608
callq 0x81c00
addq %r12, 0x10(%rsp)
movl 0xc(%r14), %eax
cmpl $0x2, %eax
jne 0x81292
movb $0x0, 0x48(%r15)
jmp 0x812bd
andl $-0x2, %eax
cmpl $0x2, %eax
je 0x812bd
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xe3fc4
movl %eax, 0x4c(%r15)
movq %rbx, %rdi
leaq 0x92410(%rip), %rsi     # 0x1136c4
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movb (%r15), %al
decb %al
cmpb $0x2, %al
ja 0x81329
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xe3f2a
movb %al, 0x50(%r15)
movq %rbp, %r13
movzbl %al, %ebp
movl %ebp, %edi
callq 0xe1f0f
movsbl %al, %r12d
movzbl 0x50(%r15), %edi
callq 0x81d3f
movq %rbx, %rdi
leaq 0x9d8eb(%rip), %rsi     # 0x11ebe6
movl %ebp, %edx
movl %r12d, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0xde896
cmpb $0x3, (%r15)
jne 0x81329
movq 0x18(%rbx), %rdi
movq %r13, %rsi
callq 0xe40bf
movq %rax, %r13
addq 0x60(%r15), %rax
movq %rax, 0x10(%r15)
jmp 0x8132c
xorl %r13d, %r13d
movl 0xc(%r14), %eax
cmpl $0x2, %eax
je 0x81354
cmpl $0x3, %eax
jne 0x8136d
movq 0x10(%rsp), %rax
movq %rax, 0x58(%r15)
addq 0x60(%r15), %rax
subq 0x8(%r15), %rax
movq %rax, 0x10(%r15)
jmp 0x816b2
movq 0x8(%r15), %rax
movq 0x18(%rsp), %rcx
addq %rcx, %rax
addq $0x2, %rax
movq %rax, 0x58(%r15)
jmp 0x816b2
movzbl (%r15), %eax
cmpq $0x3, %rax
ja 0x816b2
leaq 0x9d53e(%rip), %rcx     # 0x11e8c0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x10(%rsp), %rdx
movq 0x30(%rsp), %rcx
movq %rcx, %rax
subq %rdx, %rax
movq 0x18(%rsp), %rsi
leaq (%rsi,%rax), %rbp
addq $0x2, %rbp
leaq (%rcx,%rsi), %rax
addq $0x2, %rax
movq %rax, 0x58(%r15)
testq %rbp, %rbp
jle 0x816b2
movq %rbx, %rdi
leaq 0x9d835(%rip), %rsi     # 0x11ebfc
movq %rbp, %rcx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq 0x10(%rsp), %rsi
movq 0x18(%rbx), %rdi
movq %rsi, 0x18(%rsp)
callq 0xe3eb4
movb %al, 0x50(%r15)
movzbl %al, %r12d
movl %r12d, %edi
callq 0xe1f0f
movsbl %al, %r13d
movzbl 0x50(%r15), %edi
callq 0x81d3f
movq %rbx, %rdi
leaq 0x9db10(%rip), %rsi     # 0x11ef27
movl %r12d, %edx
movl %r13d, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0xde896
cmpq $0xc, %rbp
jb 0x814cb
cmpb $0x55, 0x50(%r15)
jne 0x814cb
movq 0x18(%rsp), %r13
leaq 0x2(%r13), %rdx
movq %rbx, %rdi
movq %r15, %rsi
xorl %ecx, %ecx
leaq 0x979a1(%rip), %r8      # 0x118df5
callq 0x81b48
movq 0x18(%rbx), %rdi
leaq 0x6(%r13), %rsi
callq 0xe3fa3
movq %rax, %r12
movq %rbx, %rdi
leaq 0x83b91(%rip), %rsi     # 0x105004
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
movq %r15, %rdi
movl %r12d, %esi
callq 0x829c0
movq 0x18(%rbx), %rdi
leaq 0x8(%r13), %rsi
callq 0xe3fa3
movq %rbx, %rdi
leaq 0x9da9e(%rip), %rsi     # 0x11ef3d
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
addq $0xa, %r13
movq %r13, %rsi
callq 0xe3fa3
movq %rbx, %rdi
leaq 0x9da83(%rip), %rsi     # 0x11ef45
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
jmp 0x816b2
cmpb $0x4b, 0x50(%r15)
movq 0x30(%rsp), %r12
jne 0x8165c
movq 0x20(%rsp), %r13
addq $0x2, %r13
movq 0x60(%r15), %rax
addq %r13, %rax
movq %rax, 0x10(%r15)
movq %rbx, %rdi
leaq 0x9d771(%rip), %rsi     # 0x11ec7a
movq %r13, %rdx
xorl %eax, %eax
callq 0xde896
leaq 0x10(%rsp), %rsi
jmp 0x81666
addq 0x30(%rsp), %r13
movq %r13, 0x58(%r15)
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0xe40bf
jmp 0x81676
movq 0x30(%rsp), %rbp
movq 0x28(%rsp), %rax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0xe3fc4
movq %rax, %r12
movq %rbx, %rdi
leaq 0x9d6bb(%rip), %rsi     # 0x11ec21
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x10(%rsp), %rcx
leaq 0x40(%rsp), %rax
movq %rax, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq 0xa8(%rsp), %r13
movq %r13, %r8
movq %r12, %r9
callq 0x81e1d
testl %eax, %eax
je 0x817c8
movq 0x40(%rsp), %rax
movq 0x10(%rsp), %rcx
addq %rax, %rcx
movq %rcx, 0x10(%rsp)
movq %rcx, 0x58(%r15)
subq %rax, %r13
movq %r13, 0x60(%r15)
jmp 0x816b2
leaq 0x9d52f(%rip), %rsi     # 0x11eafa
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0xe3f2a
movl %eax, %ebp
movq 0x18(%rbx), %rdi
movq 0x10(%rsp), %rsi
movq 0x30(%r14), %rcx
movq %r12, 0x18(%rsp)
movq %r12, %rdx
callq 0x81a34
movq $0x0, 0x28(%rsp)
movl %eax, 0x30(%r15)
movzbl %bpl, %ebp
movq %rbx, %rdi
leaq 0x97dca(%rip), %rsi     # 0x1193e4
movl %ebp, %edx
xorl %eax, %eax
callq 0xde896
movl 0x30(%r15), %edx
movq %rbx, %rdi
leaq 0x97dd6(%rip), %rsi     # 0x119407
xorl %eax, %eax
callq 0xde896
movl 0x30(%r15), %ecx
cmpl %ebp, %ecx
je 0x80b98
movq %rbx, %rdi
leaq 0x9d505(%rip), %rsi     # 0x11eb53
movl %ebp, %edx
xorl %eax, %eax
callq 0xdf2a5
jmp 0x80b98
leaq 0x10(%rsp), %rsi
movq 0x20(%rsp), %r13
addq %r12, %r13
movq %r13, 0x58(%r15)
movq 0x18(%rbx), %rdi
callq 0xe3fc4
movq %rax, %r12
movq %rbx, %rdi
leaq 0x9d59e(%rip), %rsi     # 0x11ec21
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x10(%rsp), %rcx
subq %rcx, %r13
leaq 0x40(%rsp), %rax
movq %rax, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r13, %r8
movq %r12, %r9
callq 0x81e1d
cmpb $0x0, 0x34(%r15)
je 0x81743
movq 0x28(%r14), %rdi
callq 0xe0e44
movq 0x28(%r14), %rdi
movq 0x18(%rbx), %rsi
movq 0x8(%r15), %rdx
movq 0x40(%r15), %rcx
subq %rdx, %rcx
callq 0xe0f33
movq 0x28(%r14), %rdi
pushq $0x2
popq %rsi
callq 0xe0f29
movq 0x28(%r14), %rdi
movq 0x18(%rbx), %rsi
movq 0x40(%r15), %rdx
movq 0x58(%r15), %rcx
addq $0x2, %rdx
subq %rdx, %rcx
callq 0xe0f33
movq 0x28(%r14), %rdi
callq 0xe0e95
movl %eax, 0x3c(%r15)
movq %rbx, %rdi
leaq 0xa0bd0(%rip), %rsi     # 0x1222ed
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movl 0x38(%r15), %edx
movl 0x3c(%r15), %ecx
cmpl %edx, %ecx
je 0x81743
movq %rbx, %rdi
leaq 0x9da9d(%rip), %rsi     # 0x11f1d9
xorl %eax, %eax
callq 0xdf2a5
movq 0x58(%r15), %rcx
movq 0x60(%r15), %r8
movq %rbx, %rdi
leaq 0x9d562(%rip), %rsi     # 0x11ecb7
movq 0x48(%rsp), %rdx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x8207f
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x82130
movq %rbx, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
movq 0x30(%rsp), %rbp
movl 0x3c(%rsp), %esi
movq %rbx, %rdi
callq 0xdebb7
movq 0x10(%r15), %rax
testq %rax, %rax
jle 0x8187c
incl 0x1c(%r14)
addq %rax, %rbp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x819eb
jmp 0x809f7
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
leaq 0x9d462(%rip), %rsi     # 0x11ec39
xorl %eax, %eax
callq 0xdf2a5
jmp 0x81798
pushq $0x3
jmp 0x817f6
xorl %r15d, %r15d
jmp 0x8187c
pushq $0x4
jmp 0x817f6
pushq $0x2
jmp 0x817f6
pushq $0x1
popq %rax
cmpl $0x0, 0x1c(%r14)
je 0x81822
cmpl $0x2, %eax
ja 0x81850
movb $0x1, 0x1b(%r14)
movq %rbp, 0x20(%r14)
leaq 0xbcad2(%rip), %rsi     # 0x13e2e5
movq %rbx, %rdi
movq %rbp, %rdx
xorl %eax, %eax
callq 0xde896
jmp 0x81870
cmpl $0x2, 0xc(%r14)
leaq 0x90bce(%rip), %rax     # 0x1123fc
leaq 0xb642b(%rip), %rdx     # 0x137c60
cmovbq %rax, %rdx
movq 0x10(%r14), %rcx
leaq 0x9d25a(%rip), %rsi     # 0x11ea9e
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
jmp 0x81870
cmpl $0x3, %eax
jne 0x81870
movq 0x10(%r14), %rcx
leaq 0x9d24e(%rip), %rsi     # 0x11eaae
movq %rbx, %rdi
movq %r13, %rdx
movq %rbp, %r8
xorl %eax, %eax
callq 0xdf05a
movl 0x3c(%rsp), %esi
movq %rbx, %rdi
callq 0xdebb7
cmpb $0x0, 0x1b(%r14)
je 0x81970
movq 0x20(%r14), %rbp
leaq 0x1(%rbp), %r12
movq 0x18(%rbx), %rax
movq 0x18(%rax), %rdx
subq %r12, %rdx
cmpq $0x2, %rdx
jl 0x81970
cmpq $0x81, %rdx
jne 0x8195c
cmpl $0x1, 0xc(%r14)
jne 0x8195c
leaq 0x9d9c3(%rip), %rsi     # 0x11f286
movq %rbx, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
movq %rbx, %rdi
callq 0xeac74
movq %rax, %r13
leaq 0x99124(%rip), %r9      # 0x11aa11
pushq $0x3d
popq %r8
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
movq %r12, %rcx
callq 0x827d8
leaq 0x3e(%rbp), %rcx
leaq 0x86aa2(%rip), %r9      # 0x1083af
pushq $0x42
popq %r8
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x827d8
subq $-0x80, %rbp
leaq 0x60(%rsp), %rsi
movq %rbp, (%rsi)
movq 0x18(%rbx), %rdi
callq 0xe3fc4
leaq 0x9d95d(%rip), %rsi     # 0x11f298
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
movq %r13, %rdi
callq 0xeaf3c
jmp 0x81970
leaq 0x9d8f1(%rip), %rsi     # 0x11f254
movq %rbx, %rdi
movq %r12, %rcx
xorl %eax, %eax
callq 0xdf37f
movq %rbx, %rdi
movq %r15, %rsi
callq 0x819eb
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x9d1a5(%rip), %rsi     # 0x11eb39
movq %rbx, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0xdf2a5
jmp 0x81870