// File: /workspace/github_c_makefile_star2_O3/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 0x85804
leaq 0xa6500(%rip), %rax     # 0x12bd00
movq %rax, 0x10(%r14)
leaq 0xa64f9(%rip), %rsi     # 0x12bd04
movq %rbx, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xe9bd0
movl %eax, 0x8(%r14)
movl %eax, 0x4(%r14)
movl 0xc(%r14), %eax
decl %eax
movl $0x1, %edx
cmpl $0x2, %eax
ja 0x8583c
movl %eax, %eax
leaq 0xa63c3(%rip), %rcx     # 0x12bbfc
movl (%rcx,%rax,4), %edx
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %esi, %esi
callq 0xeb220
movl %eax, (%r14)
movb $-0x1, 0x18(%r14)
cmpl $0x3, 0xc(%r14)
movl $0x12, %eax
movl $0x21, %esi
cmovel %eax, %esi
movq %rbx, %rdi
callq 0xeb499
movq %rax, 0x28(%r14)
movq %rbx, %rdi
movl $0x30, %esi
callq 0xeb499
movq %rax, 0x30(%r14)
cmpl $0x3, 0xc(%r14)
movl $0x25, %ebp
cmovneq %r15, %rbp
movq 0x18(%rbx), %rax
movl $0x0, %r15d
cmpq 0x18(%rax), %rbp
jge 0x8679c
movl $0xf8, %esi
movq %rbx, %rdi
callq 0xe8b2b
movq %rax, %r15
movb $0x1, 0x48(%rax)
movl (%r14), %eax
movl %eax, 0x4(%r15)
movq %rbp, 0x8(%r15)
movq %rbp, 0x10(%rsp)
movq $0x0, 0x40(%rsp)
movq %rbx, %rdi
leaq 0x3c(%rsp), %rsi
callq 0xe8a1c
movq 0x18(%rbx), %rdi
movq 0x18(%rdi), %r13
subq %rbp, %r13
cmpl $0x3, 0xc(%r14)
movq %rbp, 0x20(%rsp)
jne 0x85925
testq %r13, %r13
jle 0x86700
movl $0x7, %ecx
leaq 0x50(%rsp), %rsi
movq %rbp, %rdx
callq 0xee8d4
leaq 0x52(%rsp), %rdi
callq 0x8738b
testl %eax, %eax
jne 0x859cb
jmp 0x8670e
testq %r13, %r13
jle 0x86700
movq %rbp, %rsi
callq 0xeead3
movb %al, 0x60(%rsp)
cmpq $0x2, %r13
ja 0x85948
testb %al, %al
je 0x86707
movl $0x2, %ebp
cmpq $0x14, %r13
ja 0x8595b
testb %al, %al
je 0x86713
movq 0x18(%rbx), %rdi
movq 0x20(%rsp), %rax
leaq 0x1(%rax), %rdx
movl $0x14, %ecx
leaq 0x61(%rsp), %rsi
callq 0xee8d4
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 0x859a6
orb %dl, %cl
jne 0x86713
movl $0x3, %ebp
cmpl $0x3, %eax
ja 0x86713
leaq 0x62(%rsp), %rdi
callq 0x8738b
testl %eax, %eax
je 0x86713
movq 0x20(%rsp), %rbp
movq %rbx, %rdi
leaq 0xb6188(%rip), %rsi     # 0x13bb5d
movq %rbp, %rdx
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe8a15
movl 0xc(%r14), %eax
cmpl $0x3, %eax
je 0x859ff
cmpl $0x2, %eax
je 0x859ff
cmpl $0x1, %eax
jne 0x85a07
movb $0x0, (%r15)
xorl %edx, %edx
jmp 0x85a1a
movq 0x18(%rbx), %rdi
leaq 0x14(%rbp), %rsi
callq 0xeead3
movb %al, (%r15)
movzbl %al, %edx
movq %rbx, %rdi
leaq 0xa6335(%rip), %rsi     # 0x12bd59
xorl %eax, %eax
callq 0xe8617
movzbl (%r15), %eax
cmpl $0x3, %eax
ja 0x86790
cmpl $0x0, 0x1c(%r14)
jne 0x85a43
movb %al, 0x18(%r14)
movl 0xc(%r14), %ebp
cmpl $0x3, %ebp
jne 0x85aff
addq $0x2, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x30(%rsp)
movq $0x0, 0x28(%rsp)
leaq 0x10(%rsp), %rbp
movq 0x18(%rbx), %rdi
movq 0x10(%rsp), %rdx
movl $0x5, %ecx
leaq 0xb3(%rsp), %r12
movq %r12, %rsi
callq 0xee8d4
movl $0x70, %esi
movq %rbx, %rdi
callq 0xe8b2b
movq %rax, 0x18(%r15)
movl 0xc(%r14), %esi
movq %r12, %rdi
movq %rax, %rdx
callq 0x8698f
movq 0x18(%r15), %rcx
leaq 0x15(%rcx), %rdx
addq $0x1b, %rcx
movq %rbx, %rdi
leaq 0xa6333(%rip), %rsi     # 0x12bdfd
xorl %eax, %eax
callq 0xe8617
movq 0x10(%rsp), %rsi
addq $0x5, %rsi
movq %rsi, 0x10(%rsp)
movq 0x18(%r15), %rax
cmpl $0x2d6c6864, 0x4(%rax)  # imm = 0x2D6C6864
jne 0x85b58
movb $0x1, 0x20(%r15)
leaq 0x8dbd7(%rip), %rax     # 0x1136cf
movq %rax, 0x48(%rsp)
jmp 0x85b7a
movl %eax, %eax
leaq 0xa6018(%rip), %rcx     # 0x12bb20
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0xeeb4b
movzbl %al, %r12d
movq %rbx, %rdi
cmpl $0x2, %ebp
jne 0x8645b
leaq 0xa1e30(%rip), %rsi     # 0x127966
movl %r12d, %edx
xorl %eax, %eax
callq 0xe8617
cmpb $0x2, %r12b
leaq 0x10(%rsp), %rsi
jb 0x86790
addq $-0x2, %r12
jmp 0x86471
leaq 0xef0(%rip), %rcx       # 0x86a4f
cmpq %rcx, 0x8(%rax)
leaq 0xbf546(%rip), %rcx     # 0x1450b0
leaq 0x8db5e(%rip), %rax     # 0x1136cf
cmoveq %rax, %rcx
movq %rcx, 0x48(%rsp)
cmpb $0x1, (%r15)
movq 0x18(%rbx), %rdi
jne 0x85bba
movq %rbp, %rsi
callq 0xeed83
movq %rax, %r12
movq %rbx, %rdi
leaq 0xa627b(%rip), %rsi     # 0x12be14
movl %r12d, %edx
xorl %eax, %eax
callq 0xe8617
movq 0x30(%rsp), %rax
addq %r12, %rax
addq $0x2, %rax
movq %rax, 0x10(%r15)
movq 0x10(%rsp), %rsi
jmp 0x85c1b
callq 0xeed61
movq %rax, 0x60(%r15)
movq %rbx, %rdi
leaq 0x987ce(%rip), %rsi     # 0x11e39b
movq %rax, %rdx
xorl %eax, %eax
callq 0xe8617
movq 0x10(%rsp), %rsi
addq $0x4, %rsi
movq %rsi, 0x10(%rsp)
movzbl (%r15), %eax
cmpl $0x2, %eax
je 0x85c0b
testl %eax, %eax
jne 0x85c18
cmpl $0x3, 0xc(%r14)
je 0x85c18
movq 0x60(%r15), %rax
movq 0x18(%rsp), %rcx
addq %rcx, %rax
addq $0x2, %rax
jmp 0x85c14
movq 0x60(%r15), %rax
addq 0x28(%rsp), %rax
movq %rax, 0x10(%r15)
xorl %r12d, %r12d
movq %r12, 0xa8(%rsp)
movq 0x18(%rbx), %rdi
callq 0xeed61
movq %rax, 0x28(%r15)
movq %rbx, %rdi
leaq 0xa61e8(%rip), %rsi     # 0x12be22
movl %eax, %edx
xorl %eax, %eax
callq 0xe8617
movq 0x10(%rsp), %r12
leaq 0x4(%r12), %rdx
movq %rdx, 0x10(%rsp)
movzbl (%r15), %eax
leal -0x2(%rax), %ecx
cmpl $0x2, %ecx
jb 0x85ca8
cmpl $0x1, %eax
ja 0x85cc8
movq 0x18(%rbx), %rdi
movq %rdx, %rsi
callq 0xeebc8
movq %rax, %r13
movq 0x18(%rbx), %rdi
addq $0x6, %r12
movq %r12, %rsi
callq 0xeebc8
movq %r13, %rcx
orq %rax, %rcx
jne 0x85fdc
movq %rbx, %rdi
leaq 0xa6427(%rip), %rsi     # 0x12c0bf
leaq 0xa0356(%rip), %rdx     # 0x125ff5
xorl %eax, %eax
callq 0xe8617
jmp 0x85cbc
movq %rbx, %rdi
movq %r15, %rsi
xorl %ecx, %ecx
leaq 0xa033e(%rip), %r8      # 0x125ff5
callq 0x86a60
addq $0x4, 0x10(%rsp)
cmpb $0x0, (%r15)
je 0x85cef
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xeeb4b
movzbl %al, %edx
movq %rbx, %rdi
leaq 0xa6153(%rip), %rsi     # 0x12be34
xorl %eax, %eax
callq 0xe8617
incq 0x10(%rsp)
jmp 0x85d40
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xeebeb
movq %rax, %r12
movq %rbx, %rdi
callq 0xf6410
movq %rax, %r13
movq %rbx, %rdi
movl %r12d, %esi
movq %rax, %rdx
xorl %ecx, %ecx
callq 0xeaae1
movq %r13, %rdi
callq 0xf70f6
movq %rbx, %rdi
leaq 0x937ee(%rip), %rsi     # 0x119519
movl %r12d, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0xe8617
movq %r13, %rdi
callq 0xf6753
movl 0xc(%r14), %eax
cmpl $0x1, %eax
jne 0x85e33
movq 0x10(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x18(%rbx), %rdi
leaq 0x60(%rsp), %rsi
callq 0xeed83
movq %rbx, %rdi
leaq 0xa636a(%rip), %rsi     # 0x12c0d9
movl %eax, %edx
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
callq 0xf6410
movq %rax, %r13
movq 0x60(%rsp), %rcx
movl $0xd, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
leaq 0xa6358(%rip), %r9      # 0x12c0f6
callq 0x8778c
movq 0x60(%rsp), %rcx
addq $0xd, %rcx
movq %rcx, 0x60(%rsp)
movl $0x29, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
leaq 0xa633f(%rip), %r9      # 0x12c106
callq 0x8778c
movq 0x60(%rsp), %rcx
addq $0x29, %rcx
movq %rcx, 0x60(%rsp)
movl $0x24, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
leaq 0xa631e(%rip), %r9      # 0x12c10e
callq 0x8778c
movq 0x60(%rsp), %rcx
addq $0x24, %rcx
movq %rcx, 0x60(%rsp)
movl $0x47, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
leaq 0xa6301(%rip), %r9      # 0x12c11a
callq 0x8778c
movq %r13, %rdi
callq 0xf6753
addq $0xa5, 0x10(%rsp)
movl 0xc(%r14), %eax
cmpl $0x3, %eax
jne 0x85e5f
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xeed83
movl %eax, 0x4c(%r15)
movq %rbx, %rdi
leaq 0xa628b(%rip), %rsi     # 0x12c0dd
movl %eax, %edx
xorl %eax, %eax
callq 0xe8617
movl 0xc(%r14), %eax
cmpl $0x2, %eax
jne 0x85f81
movq 0x10(%rsp), %rbp
movq 0x8(%r15), %r12
cmpq $0x0, 0x70(%r15)
jne 0x85e84
movq %rbx, %rdi
callq 0xf6410
movq %rax, 0x70(%r15)
cmpq $0x0, 0x68(%r15)
jne 0x85e97
movq %rbx, %rdi
callq 0xf6410
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
movl $0x1, %r8d
callq 0xef87c
movq %rax, %r13
movq 0x18(%rax), %rdi
callq 0xf70f6
movq %rbx, %rdi
leaq 0xb5e74(%rip), %rsi     # 0x13bd4e
movq %rax, %rdx
xorl %eax, %eax
callq 0xe8617
movq 0x70(%r15), %rdi
movq 0x18(%r13), %rsi
callq 0xf6509
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
movl $0x1, %r8d
callq 0xefbd7
movq 0x68(%r15), %rdi
callq 0xf70f6
movq %rbx, %rdi
leaq 0x98be5(%rip), %rsi     # 0x11eb10
movq %rax, %rdx
xorl %eax, %eax
callq 0xe8617
movq 0x68(%r15), %rdi
movq 0x10(%rdi), %rsi
testq %rsi, %rsi
leaq 0x10(%rsp), %rbp
jle 0x85f71
movq 0x8(%rdi), %rax
xorl %ecx, %ecx
cmpl $0x5c, (%rax,%rcx,4)
jne 0x85f5a
movl $0x2f, (%rax,%rcx,4)
incq %rcx
cmpq %rcx, %rsi
jne 0x85f4d
cmpl $0x2f, -0x4(%rax,%rsi,4)
jne 0x85f71
decq %rsi
callq 0xf642a
movq %rbx, %rdi
movq %r13, %rsi
callq 0xefaca
jmp 0x86157
cmpb $0x1, (%r15)
ja 0x86167
movq 0x18(%rbx), %rdi
movq 0x10(%rsp), %rsi
leaq 0x1(%rsi), %rax
movq %rax, 0x10(%rsp)
callq 0xeead3
movzbl %al, %r12d
movq %rbx, %rdi
leaq 0xa65fe(%rip), %rsi     # 0x12c5ae
movl %r12d, %edx
xorl %eax, %eax
callq 0xe8617
cmpb $0x0, (%r15)
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rcx
je 0x8614d
callq 0x86bc4
jmp 0x86152
leaq 0x50(%rsp), %r12
movq %r12, %rdi
movq %rax, %rsi
movq %r13, %rdx
callq 0xea92a
movb $0x2, 0x51(%rsp)
movl $0x40, %edx
movq %r12, %rdi
leaq 0x60(%rsp), %r12
movq %r12, %rsi
xorl %ecx, %ecx
callq 0xeaf46
movq %rbx, %rdi
leaq 0xc336d(%rip), %rsi     # 0x149382
leaq 0x9ffd9(%rip), %rdx     # 0x125ff5
movq %r12, %rcx
xorl %eax, %eax
callq 0xe8617
cmpb $0x0, 0x50(%rsp)
je 0x85cbc
cmpl $0xa, 0x90(%r15)
jg 0x85cbc
movups 0x50(%rsp), %xmm0
movups %xmm0, 0x80(%r15)
movl $0xa, 0x90(%r15)
jmp 0x85cbc
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rbp
movq %rbp, %rsi
callq 0xeebeb
movq %rbx, %rdi
leaq 0xa5d1c(%rip), %rsi     # 0x12bd93
movq %rax, 0x28(%rsp)
movl %eax, %edx
xorl %eax, %eax
callq 0xe8617
movq $0x0, 0x18(%rsp)
movq $0x0, 0x30(%rsp)
jmp 0x85a76
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rbp
movq %rbp, %rsi
callq 0xeebeb
movq %rax, %r12
movq %rbx, %rdi
leaq 0xa5cfb(%rip), %rsi     # 0x12bdb5
movl %r12d, %edx
xorl %eax, %eax
callq 0xe8617
cmpq $0x4, %r12
jne 0x868b5
movq $0x0, 0x18(%rsp)
movq $0x0, 0x30(%rsp)
movq $0x0, 0x28(%rsp)
jmp 0x85a76
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %r12
movq %r12, %rsi
callq 0xeeb4b
movzbl %al, %r13d
movq %rbx, %rdi
leaq 0xa5c71(%rip), %rsi     # 0x12bd7e
movl %r13d, %edx
xorl %eax, %eax
callq 0xe8617
movq 0x18(%rbx), %rdi
movq %r12, %rsi
callq 0xeeb4b
movl %eax, %ebp
movq 0x18(%rbx), %rdi
movq 0x10(%rsp), %rsi
movq 0x30(%r14), %rcx
movq %r13, 0x30(%rsp)
movq %r13, %rdx
callq 0x8694b
movq $0x0, 0x18(%rsp)
jmp 0x8649f
callq 0x86b1d
addq %r12, 0x10(%rsp)
movl 0xc(%r14), %eax
cmpl $0x2, %eax
jne 0x86167
movb $0x0, 0x48(%r15)
jmp 0x86192
andl $-0x2, %eax
cmpl $0x2, %eax
je 0x86192
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xeebeb
movl %eax, 0x4c(%r15)
movq %rbx, %rdi
leaq 0x9a62d(%rip), %rsi     # 0x1207b6
movl %eax, %edx
xorl %eax, %eax
callq 0xe8617
movb (%r15), %al
decb %al
cmpb $0x2, %al
ja 0x861fe
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xeeb4b
movb %al, 0x50(%r15)
movq %rbp, %r13
movzbl %al, %ebp
movl %ebp, %edi
callq 0xec9b9
movsbl %al, %r12d
movzbl 0x50(%r15), %edi
callq 0x86c65
movq %rbx, %rdi
leaq 0xa5c86(%rip), %rsi     # 0x12be56
movl %ebp, %edx
movl %r12d, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0xe8617
cmpb $0x3, (%r15)
jne 0x861fe
movq 0x18(%rbx), %rdi
movq %r13, %rsi
callq 0xeed83
movq %rax, %r13
addq 0x60(%r15), %rax
movq %rax, 0x10(%r15)
jmp 0x86201
xorl %r13d, %r13d
movl 0xc(%r14), %eax
cmpl $0x2, %eax
je 0x86229
cmpl $0x3, %eax
jne 0x86242
movq 0x10(%rsp), %rax
movq %rax, 0x58(%r15)
addq 0x60(%r15), %rax
subq 0x8(%r15), %rax
movq %rax, 0x10(%r15)
jmp 0x865d3
movq 0x8(%r15), %rax
movq 0x18(%rsp), %rcx
addq %rcx, %rax
addq $0x2, %rax
movq %rax, 0x58(%r15)
jmp 0x865d3
movzbl (%r15), %eax
cmpq $0x3, %rax
ja 0x865d3
leaq 0xa58d9(%rip), %rcx     # 0x12bb30
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x10(%rsp), %rdx
movq 0x20(%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 0x865d3
movq %rbx, %rdi
leaq 0xa5bd0(%rip), %rsi     # 0x12be6c
movq %rbp, %rcx
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe8a15
movq 0x10(%rsp), %rsi
movq 0x18(%rbx), %rdi
movq %rsi, 0x18(%rsp)
callq 0xeead3
movb %al, 0x50(%r15)
movzbl %al, %r12d
movl %r12d, %edi
callq 0xec9b9
movsbl %al, %r13d
movzbl 0x50(%r15), %edi
callq 0x86c65
movq %rbx, %rdi
leaq 0xa5ea9(%rip), %rsi     # 0x12c197
movl %r12d, %edx
movl %r13d, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0xe8617
cmpq $0xc, %rbp
jb 0x865c6
cmpb $0x55, 0x50(%r15)
jne 0x865c6
movq 0x18(%rsp), %r13
leaq 0x2(%r13), %rdx
movq %rbx, %rdi
movq %r15, %rsi
xorl %ecx, %ecx
leaq 0x9fcca(%rip), %r8      # 0x125ff5
callq 0x86a60
movq 0x18(%rbx), %rdi
leaq 0x6(%r13), %rsi
callq 0xeebc8
movq %rax, %r12
movq %rbx, %rdi
leaq 0x8bcda(%rip), %rsi     # 0x112024
movl %r12d, %edx
xorl %eax, %eax
callq 0xe8617
testw %r12w, %r12w
jns 0x8656e
testb $0x49, %r12b
je 0x86569
movb $0x1, 0x23(%r15)
jmp 0x8656e
cmpb $0x4b, 0x50(%r15)
movq 0x20(%rsp), %r12
jne 0x864f3
movq 0x28(%rsp), %r13
addq $0x2, %r13
movq 0x60(%r15), %rax
addq %r13, %rax
movq %rax, 0x10(%r15)
movq %rbx, %rdi
leaq 0xa5b4a(%rip), %rsi     # 0x12beea
movq %r13, %rdx
xorl %eax, %eax
callq 0xe8617
leaq 0x10(%rsp), %rsi
jmp 0x864fd
addq 0x20(%rsp), %r13
movq %r13, 0x58(%r15)
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0xeed83
jmp 0x8650d
movq 0x20(%rsp), %rbp
movq 0x30(%rsp), %rax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0xeebeb
movq %rax, %r12
movq %rbx, %rdi
leaq 0xa5a94(%rip), %rsi     # 0x12be91
movq %rax, %rdx
xorl %eax, %eax
callq 0xe8617
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 0x86d5e
testl %eax, %eax
je 0x8654e
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 0x865d3
leaq 0xa5908(%rip), %rsi     # 0x12bd6a
movl %r12d, %edx
xorl %eax, %eax
callq 0xe8617
leaq 0x10(%rsp), %rsi
movq 0x18(%rbx), %rdi
callq 0xeeb4b
movl %eax, %ebp
movq 0x18(%rbx), %rdi
movq 0x10(%rsp), %rsi
movq 0x30(%r14), %rcx
movq %r12, 0x18(%rsp)
movq %r12, %rdx
callq 0x8694b
movq $0x0, 0x30(%rsp)
movl %eax, 0x30(%r15)
movzbl %bpl, %ebp
movq %rbx, %rdi
leaq 0xa0133(%rip), %rsi     # 0x1265e4
movl %ebp, %edx
xorl %eax, %eax
callq 0xe8617
movl 0x30(%r15), %edx
movq %rbx, %rdi
leaq 0xa013f(%rip), %rsi     # 0x126607
xorl %eax, %eax
callq 0xe8617
movl 0x30(%r15), %ecx
cmpl %ebp, %ecx
je 0x85a68
movq %rbx, %rdi
leaq 0xa58de(%rip), %rsi     # 0x12bdc3
movl %ebp, %edx
xorl %eax, %eax
callq 0xe9295
jmp 0x85a68
leaq 0x10(%rsp), %rsi
movq 0x28(%rsp), %r13
addq %r12, %r13
movq %r13, 0x58(%r15)
movq 0x18(%rbx), %rdi
callq 0xeebeb
movq %rax, %r12
movq %rbx, %rdi
leaq 0xa5977(%rip), %rsi     # 0x12be91
movq %rax, %rdx
xorl %eax, %eax
callq 0xe8617
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 0x86d5e
jmp 0x865d3
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
leaq 0xa594c(%rip), %rsi     # 0x12bea9
xorl %eax, %eax
callq 0xe9295
jmp 0x866bf
movb $0x1, 0x22(%r15)
andl $0xf000, %r12d          # imm = 0xF000
cmpl $0xa000, %r12d          # imm = 0xA000
jne 0x86583
movb $0x1, 0x21(%r15)
movq 0x18(%rbx), %rdi
leaq 0x8(%r13), %rsi
callq 0xeebc8
movq %rbx, %rdi
leaq 0xa5c13(%rip), %rsi     # 0x12c1ad
movl %eax, %edx
xorl %eax, %eax
callq 0xe8617
movq 0x18(%rbx), %rdi
addq $0xa, %r13
movq %r13, %rsi
callq 0xeebc8
movq %rbx, %rdi
leaq 0xa5bf8(%rip), %rsi     # 0x12c1b5
movl %eax, %edx
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe8a15
cmpb $0x0, 0x34(%r15)
je 0x86666
movq 0x28(%r14), %rdi
callq 0xeb7fe
movq 0x28(%r14), %rdi
movq 0x18(%rbx), %rsi
movq 0x8(%r15), %rdx
movq 0x40(%r15), %rcx
subq %rdx, %rcx
callq 0xeb944
movq 0x28(%r14), %rdi
movl $0x2, %esi
callq 0xeb901
movq 0x28(%r14), %rdi
movq 0x18(%rbx), %rsi
movq 0x40(%r15), %rdx
movq 0x58(%r15), %rcx
addq $0x2, %rdx
subq %rdx, %rcx
callq 0xeb944
movq 0x28(%r14), %rdi
callq 0xeb865
movl %eax, 0x3c(%r15)
movq %rbx, %rdi
leaq 0xa8f35(%rip), %rsi     # 0x12f575
movl %eax, %edx
xorl %eax, %eax
callq 0xe8617
movl 0x38(%r15), %edx
movl 0x3c(%r15), %ecx
cmpl %edx, %ecx
je 0x86666
movq %rbx, %rdi
leaq 0xa5dea(%rip), %rsi     # 0x12c449
xorl %eax, %eax
callq 0xe9295
movq 0x58(%r15), %rcx
movq 0x60(%r15), %r8
movq %rbx, %rdi
leaq 0xa58af(%rip), %rsi     # 0x12bf27
movq 0x48(%rsp), %rdx
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x86fd3
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe8a15
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x87088
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe8a15
movq 0x20(%rsp), %rbp
movl 0x3c(%rsp), %esi
movq %rbx, %rdi
callq 0xe8a25
movq 0x10(%r15), %rax
testq %rax, %rax
jle 0x8679c
incl 0x1c(%r14)
addq %rax, %rbp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x86902
movq 0x18(%rbx), %rax
cmpq 0x18(%rax), %rbp
jl 0x858a2
xorl %r15d, %r15d
jmp 0x8679c
movl $0x4, %ebp
jmp 0x86713
movl $0x1, %ebp
jmp 0x86713
movl $0x3, %ebp
cmpl $0x0, 0x1c(%r14)
je 0x86740
cmpl $0x2, %ebp
ja 0x8676e
movb $0x1, 0x1b(%r14)
movq 0x20(%rsp), %rdx
movq %rdx, 0x20(%r14)
leaq 0xc5081(%rip), %rsi     # 0x14b7b5
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
jmp 0x86790
cmpl $0x2, 0xc(%r14)
leaq 0x98d80(%rip), %rax     # 0x11f4cc
leaq 0xbe95d(%rip), %rdx     # 0x1450b0
cmovbq %rax, %rdx
movq 0x10(%r14), %rcx
leaq 0xa55ac(%rip), %rsi     # 0x12bd0e
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9295
jmp 0x86790
cmpl $0x3, %ebp
movq 0x20(%rsp), %r8
jne 0x86790
movq 0x10(%r14), %rcx
leaq 0xa559b(%rip), %rsi     # 0x12bd1e
movq %rbx, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0xe8faa
movl 0x3c(%rsp), %esi
movq %rbx, %rdi
callq 0xe8a25
cmpb $0x0, 0x1b(%r14)
je 0x86898
movq 0x20(%r14), %rbp
leaq 0x1(%rbp), %r13
movq 0x18(%rbx), %rax
movq 0x18(%rax), %rdx
subq %r13, %rdx
cmpq $0x2, %rdx
jl 0x86898
cmpq $0x81, %rdx
jne 0x86884
cmpl $0x1, 0xc(%r14)
jne 0x86884
leaq 0xa5d13(%rip), %rsi     # 0x12c4f6
movq %rbx, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe8a15
movq %rbx, %rdi
callq 0xf6410
movq %rax, %r12
leaq 0xa1442(%rip), %r9      # 0x127c51
movl $0x3d, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
movq %r13, %rcx
callq 0x8778c
leaq 0x3e(%rbp), %rcx
leaq 0x8ec0e(%rip), %r9      # 0x11543f
movl $0x42, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x8778c
subq $-0x80, %rbp
leaq 0x60(%rsp), %rsi
movq %rbp, (%rsi)
movq 0x18(%rbx), %rdi
callq 0xeebeb
leaq 0xa5ca7(%rip), %rsi     # 0x12c508
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe8a15
movq %r12, %rdi
callq 0xf6753
jmp 0x86898
leaq 0xa5c39(%rip), %rsi     # 0x12c4c4
movq %rbx, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0xe9393
movq %rbx, %rdi
movq %r15, %rsi
callq 0x86902
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xa54ed(%rip), %rsi     # 0x12bda9
movq %rbx, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0xe9295
jmp 0x86790