// File: /workspace/github_c_makefile_star2_O1/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 0x85ea2
leaq 0xa5b7a(%rip), %rax     # 0x12ba18
movq %rax, 0x10(%r14)
leaq 0xa5b73(%rip), %rsi     # 0x12ba1c
movq %rbx, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xea727
movl %eax, 0x8(%r14)
movl %eax, 0x4(%r14)
movl 0xc(%r14), %eax
decl %eax
movl $0x1, %edx
cmpl $0x2, %eax
ja 0x85eda
movl %eax, %eax
leaq 0xa5a55(%rip), %rcx     # 0x12b92c
movl (%rcx,%rax,4), %edx
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %esi, %esi
callq 0xeb7d1
movl %eax, (%r14)
movb $-0x1, 0x18(%r14)
cmpl $0x3, 0xc(%r14)
movl $0x12, %eax
movl $0x21, %esi
cmovel %eax, %esi
movq %rbx, %rdi
callq 0xeba56
movq %rax, 0x28(%r14)
movq %rbx, %rdi
movl $0x30, %esi
callq 0xeba56
movq %rax, 0x30(%r14)
cmpl $0x3, 0xc(%r14)
movl $0x25, %r12d
cmovneq %r15, %r12
movq 0x18(%rbx), %rax
movl $0x0, %r15d
cmpq 0x18(%rax), %r12
jge 0x86e65
movl $0xf8, %esi
movq %rbx, %rdi
callq 0xe969b
movq %rax, %r15
movb $0x1, 0x48(%rax)
movl (%r14), %eax
movl %eax, 0x4(%r15)
movq %r12, 0x8(%r15)
movq %r12, 0x8(%rsp)
movq $0x0, 0x28(%rsp)
movq %rbx, %rdi
leaq 0x3c(%rsp), %rsi
callq 0xe958c
movq 0x18(%rbx), %rdi
movq 0x18(%rdi), %r13
subq %r12, %r13
cmpl $0x3, 0xc(%r14)
jne 0x85fc1
testq %r13, %r13
jle 0x8604b
movl $0x7, %ecx
leaq 0x40(%rsp), %rsi
movq %r12, %rdx
callq 0xeeee8
leaq 0x42(%rsp), %rdi
callq 0x87a66
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
leal (%rcx,%rcx,2), %ebp
jmp 0x86050
testq %r13, %r13
jle 0x8604b
movq %r12, %rsi
callq 0xef0d5
movb %al, 0x50(%rsp)
cmpq $0x2, %r13
jg 0x85fe5
movl $0x1, %ebp
testb %al, %al
je 0x86050
movl $0x2, %ebp
cmpq $0x14, %r13
jg 0x85ff4
testb %al, %al
je 0x86050
movq 0x18(%rbx), %rdi
leaq 0x1(%r12), %rdx
movl $0x14, %ecx
leaq 0x51(%rsp), %rsi
callq 0xeeee8
cmpl $0x1, 0xc(%r14)
movzbl 0x64(%rsp), %eax
movl $0x0, %ecx
cmovel %ecx, %eax
cmpb $0x0, 0x51(%rsp)
sete %cl
cmpl $0x2, %eax
setne %dl
cmpb $0x0, 0x50(%rsp)
jne 0x86037
orb %dl, %cl
jne 0x86050
movl $0x3, %ebp
cmpl $0x3, %eax
ja 0x86050
leaq 0x52(%rsp), %rdi
jmp 0x85fad
movl $0x4, %ebp
testl %ebp, %ebp
je 0x8608c
cmpl $0x0, 0x1c(%r14)
je 0x86206
cmpl $0x2, %ebp
ja 0x86239
movb $0x1, 0x1b(%r14)
movq %r12, 0x20(%r14)
xorl %ebp, %ebp
movq %rbx, %rdi
leaq 0xc5141(%rip), %rsi     # 0x14b1be
movq %r12, %rdx
xorl %eax, %eax
callq 0xe9226
jmp 0x86e29
xorl %ebp, %ebp
movq %rbx, %rdi
leaq 0xb574b(%rip), %rsi     # 0x13b7e3
movq %r12, %rdx
xorl %eax, %eax
callq 0xe9226
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe9585
movl 0xc(%r14), %ecx
decl %ecx
movl $0x0, %eax
cmpl $0x3, %ecx
jb 0x860cd
movq 0x18(%rbx), %rdi
leaq 0x14(%r12), %rsi
callq 0xef0d5
movb %al, (%r15)
movzbl %al, %edx
movq %rbx, %rdi
leaq 0xa5994(%rip), %rsi     # 0x12ba71
xorl %eax, %eax
callq 0xe9226
movzbl (%r15), %eax
cmpl $0x3, %eax
ja 0x86e29
cmpl $0x0, 0x1c(%r14)
jne 0x860fc
movb %al, 0x18(%r14)
movl 0xc(%r14), %ebp
cmpl $0x3, %ebp
jne 0x86264
addq $0x2, 0x8(%rsp)
movb $0x1, %r13b
xorl %ebp, %ebp
movq $0x0, 0x20(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
testb %r13b, %r13b
jne 0x8617b
movzbl %bpl, %ebp
movq %rbx, %rdi
leaq 0xa0272(%rip), %rsi     # 0x1263b4
movl %ebp, %edx
xorl %eax, %eax
callq 0xe9226
movl 0x30(%r15), %edx
movq %rbx, %rdi
leaq 0xa027e(%rip), %rsi     # 0x1263d7
xorl %eax, %eax
callq 0xe9226
movl 0x30(%r15), %ecx
cmpl %ebp, %ecx
je 0x8617b
movq %rbx, %rdi
leaq 0xa5969(%rip), %rsi     # 0x12badb
movl %ebp, %edx
xorl %eax, %eax
callq 0xe9df7
movq 0x18(%rbx), %rdi
movq 0x8(%rsp), %rdx
movl $0x5, %ecx
leaq 0xb3(%rsp), %r13
movq %r13, %rsi
callq 0xeeee8
movl $0x70, %esi
movq %rbx, %rdi
callq 0xe969b
movq %rax, 0x18(%r15)
movl 0xc(%r14), %esi
movq %r13, %rdi
movq %rax, %rdx
callq 0x87049
movq 0x18(%r15), %rcx
leaq 0x15(%rcx), %rdx
addq $0x1b, %rcx
movq %rbx, %rdi
leaq 0xa5946(%rip), %rsi     # 0x12bb15
xorl %eax, %eax
callq 0xe9226
movq 0x8(%rsp), %rsi
addq $0x5, %rsi
movq %rsi, 0x8(%rsp)
movq 0x18(%r15), %rax
cmpl $0x2d6c6864, 0x4(%rax)  # imm = 0x2D6C6864
jne 0x862ba
movb $0x1, 0x20(%r15)
leaq 0x8d41e(%rip), %r13     # 0x11361f
jmp 0x862d7
cmpl $0x2, 0xc(%r14)
leaq 0xbe9be(%rip), %rdx     # 0x144bd0
leaq 0x991ab(%rip), %rax     # 0x11f3c4
cmovbq %rax, %rdx
movq 0x10(%r14), %rcx
xorl %ebp, %ebp
movq %rbx, %rdi
leaq 0xa57f9(%rip), %rsi     # 0x12ba26
xorl %eax, %eax
callq 0xe9df7
jmp 0x86e29
cmpl $0x3, %ebp
jne 0x86c4b
movq 0x10(%r14), %rcx
xorl %ebp, %ebp
movq %rbx, %rdi
leaq 0xa57e4(%rip), %rsi     # 0x12ba36
movq %r13, %rdx
movq %r12, %r8
xorl %eax, %eax
callq 0xe9b27
jmp 0x86e29
movb $0x1, %r13b
cmpl $0x3, %eax
ja 0x86112
movl %eax, %eax
leaq 0xa55d7(%rip), %rcx     # 0x12b850
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef14d
movzbl %al, %r13d
movq %rbx, %rdi
cmpl $0x2, %ebp
jne 0x86bed
leaq 0xa148f(%rip), %rsi     # 0x127736
movl %r13d, %edx
xorl %eax, %eax
callq 0xe9226
addq $-0x2, %r13
jmp 0x86bfe
leaq 0xe5b(%rip), %rcx       # 0x8711c
cmpq %rcx, 0x8(%rax)
leaq 0xbe904(%rip), %r13     # 0x144bd0
leaq 0x8d34c(%rip), %rax     # 0x11361f
cmoveq %rax, %r13
cmpb $0x1, (%r15)
movq 0x18(%rbx), %rdi
movq %r13, 0xa8(%rsp)
jne 0x8631a
leaq 0x8(%rsp), %rsi
callq 0xef3a0
movq %rax, %rbp
movq %rbx, %rdi
leaq 0xa582c(%rip), %rsi     # 0x12bb2c
movl %ebp, %edx
xorl %eax, %eax
callq 0xe9226
movq 0x18(%rsp), %rax
addq %rbp, %rax
addq $0x2, %rax
jmp 0x86465
callq 0xef37e
movq %rax, 0x60(%r15)
movq %rbx, %rdi
leaq 0x97f5e(%rip), %rsi     # 0x11e28b
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
addq $0x4, 0x8(%rsp)
movzbl (%r15), %eax
cmpl $0x2, %eax
je 0x86359
testl %eax, %eax
jne 0x86367
cmpl $0x3, 0xc(%r14)
jne 0x86453
cmpb $0x2, %al
jne 0x86367
movq 0x60(%r15), %rax
addq 0x20(%rsp), %rax
jmp 0x86463
movq $0x0, 0x30(%rsp)
jmp 0x8646e
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef1ed
xorl %ebp, %ebp
movq %rbx, %rdi
leaq 0xa571c(%rip), %rsi     # 0x12baab
movq %rax, 0x20(%rsp)
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
jmp 0x8611d
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef1ed
movq %rax, 0x10(%rsp)
xorl %ebp, %ebp
movq %rbx, %rdi
leaq 0xa570c(%rip), %rsi     # 0x12bacd
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
movq 0x10(%rsp), %rdx
cmpq $0x4, %rdx
je 0x86114
movq %rbx, %rdi
leaq 0xa56de(%rip), %rsi     # 0x12bac1
xorl %eax, %eax
callq 0xe9df7
jmp 0x86e29
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rbp
movq %rbp, %rsi
callq 0xef14d
movzbl %al, %edx
movq %rdx, 0x18(%rsp)
xorl %r13d, %r13d
movq %rbx, %rdi
leaq 0xa5681(%rip), %rsi     # 0x12ba96
xorl %eax, %eax
callq 0xe9226
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
callq 0xef14d
movl %eax, %ebp
movq 0x18(%rbx), %rdi
movq 0x8(%rsp), %rsi
movq 0x30(%r14), %rcx
movq 0x18(%rsp), %rdx
callq 0x87005
movl %eax, 0x30(%r15)
movq $0x0, 0x20(%rsp)
jmp 0x86126
movq 0x60(%r15), %rax
movq 0x10(%rsp), %rcx
addq %rcx, %rax
addq $0x2, %rax
xorl %ebp, %ebp
movq %rbp, 0x30(%rsp)
movq %rax, 0x10(%r15)
movq 0x18(%rbx), %rdi
movq 0x8(%rsp), %rsi
callq 0xef37e
movq %rax, 0x28(%r15)
movq %rbx, %rdi
leaq 0xa56b0(%rip), %rsi     # 0x12bb3a
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
movq 0x8(%rsp), %r13
leaq 0x4(%r13), %rdx
movq %rdx, 0x8(%rsp)
movzbl (%r15), %eax
leal -0x2(%rax), %ecx
cmpl $0x2, %ecx
jb 0x864f7
cmpl $0x1, %eax
ja 0x86511
movq 0x18(%rbx), %rdi
movq %rdx, %rsi
callq 0xef1ca
movq %rax, %rbp
movq 0x18(%rbx), %rdi
addq $0x6, %r13
movq %r13, %rsi
callq 0xef1ca
movq %rbp, %rcx
orq %rax, %rcx
jne 0x86839
movq %rbx, %rdi
leaq 0xa58f0(%rip), %rsi     # 0x12bdd7
leaq 0x9f8d7(%rip), %rdx     # 0x125dc5
xorl %eax, %eax
callq 0xe9226
jmp 0x8650b
movq %rbx, %rdi
movq %r15, %rsi
xorl %ecx, %ecx
leaq 0x9f8bf(%rip), %r8      # 0x125dc5
callq 0x8712d
addq $0x4, 0x8(%rsp)
cmpb $0x0, (%r15)
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
je 0x86540
callq 0xef14d
movzbl %al, %edx
movq %rbx, %rdi
leaq 0xa561a(%rip), %rsi     # 0x12bb4c
xorl %eax, %eax
callq 0xe9226
incq 0x8(%rsp)
jmp 0x8658a
callq 0xef1ed
movq %rax, %r13
movq %rbx, %rdi
callq 0xf6870
movq %rax, %rbp
movq %rbx, %rdi
movl %r13d, %esi
movq %rax, %rdx
xorl %ecx, %ecx
callq 0xeb03c
movq %rbp, %rdi
callq 0xf7557
movq %rbx, %rdi
leaq 0x92e84(%rip), %rsi     # 0x1193f9
movl %r13d, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0xe9226
movq %rbp, %rdi
callq 0xf6bb0
cmpl $0x1, 0xc(%r14)
jne 0x86677
movq 0x8(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x18(%rbx), %rdi
leaq 0x50(%rsp), %rsi
callq 0xef3a0
movq %rbx, %rdi
leaq 0xa583a(%rip), %rsi     # 0x12bdf1
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
movq %rbx, %rdi
callq 0xf6870
movq %rax, %r13
movq 0x50(%rsp), %rcx
movl $0xd, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
leaq 0xa5828(%rip), %r9      # 0x12be0e
callq 0x87e71
movq 0x50(%rsp), %rcx
addq $0xd, %rcx
movq %rcx, 0x50(%rsp)
movl $0x29, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
leaq 0xa580f(%rip), %r9      # 0x12be1e
callq 0x87e71
movq 0x50(%rsp), %rcx
addq $0x29, %rcx
movq %rcx, 0x50(%rsp)
movl $0x24, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
leaq 0xa57ee(%rip), %r9      # 0x12be26
callq 0x87e71
movq 0x50(%rsp), %rcx
addq $0x24, %rcx
movq %rcx, 0x50(%rsp)
movl $0x47, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
leaq 0xa57d1(%rip), %r9      # 0x12be32
callq 0x87e71
movq %r13, %rdi
callq 0xf6bb0
addq $0xa5, 0x8(%rsp)
cmpl $0x3, 0xc(%r14)
jne 0x866a3
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef3a0
movl %eax, 0x4c(%r15)
movq %rbx, %rdi
leaq 0xa575b(%rip), %rsi     # 0x12bdf5
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
cmpl $0x2, 0xc(%r14)
jne 0x867de
movq 0x8(%rsp), %rbp
movq 0x8(%r15), %r13
cmpq $0x0, 0x70(%r15)
jne 0x866ca
movq %rbx, %rdi
callq 0xf6870
movq %rax, 0x70(%r15)
movq %r14, 0x98(%rsp)
cmpq $0x0, 0x68(%r15)
jne 0x866e5
movq %rbx, %rdi
callq 0xf6870
movq %rax, 0x68(%r15)
movq 0x10(%rsp), %rax
subq %rbp, %rax
addq %rax, %r13
addq $0x2, %r13
movq 0x18(%rbx), %rdi
movl 0x4(%r15), %r9d
movl $0x100, %ecx            # imm = 0x100
movq %rbp, %rsi
movq %r13, %rdx
movl $0x1, %r8d
callq 0xefe67
movq %rax, %r14
movq 0x18(%rax), %rdi
callq 0xf7557
movq %rbx, %rdi
leaq 0xb52ac(%rip), %rsi     # 0x13b9d4
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x70(%r15), %rdi
movq 0x18(%r14), %rsi
callq 0xf6969
movq %r14, 0xa0(%rsp)
movq (%r14), %rax
addq %rax, %rbp
subq %rax, %r13
movq 0x18(%rbx), %rdi
movq 0x68(%r15), %rcx
movl 0x4(%r15), %r9d
movq %rbp, %rsi
movq %r13, %rdx
movl $0x1, %r8d
callq 0xf01b0
movq 0x68(%r15), %rdi
callq 0xf7557
movq %rbx, %rdi
leaq 0x98288(%rip), %rsi     # 0x11ea08
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x68(%r15), %rdi
movq 0x10(%rdi), %rsi
testq %rsi, %rsi
movq 0x98(%rsp), %r14
jle 0x867c9
movq 0x8(%rdi), %rax
xorl %ecx, %ecx
cmpl $0x5c, (%rax,%rcx,4)
jne 0x867b2
movl $0x2f, (%rax,%rcx,4)
incq %rcx
cmpq %rcx, %rsi
jne 0x867a5
cmpl $0x2f, -0x4(%rax,%rsi,4)
jne 0x867c9
decq %rsi
callq 0xf688a
movq %rbx, %rdi
movq 0xa0(%rsp), %rsi
callq 0xf00aa
jmp 0x868c3
cmpb $0x1, (%r15)
ja 0x868c3
movq 0x18(%rbx), %rdi
movq 0x8(%rsp), %rsi
leaq 0x1(%rsi), %rax
movq %rax, 0x8(%rsp)
callq 0xef0d5
movzbl %al, %r13d
movq %rbx, %rdi
leaq 0xa5ab9(%rip), %rsi     # 0x12c2c6
movl %r13d, %edx
xorl %eax, %eax
callq 0xe9226
cmpb $0x0, (%r15)
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r15, %rsi
movq %r13, %rcx
je 0x868b9
callq 0x87291
jmp 0x868be
leaq 0x40(%rsp), %r13
movq %r13, %rdi
movq %rax, %rsi
movq %rbp, %rdx
callq 0xeae33
movb $0x2, 0x41(%rsp)
movl $0x40, %edx
movq %r13, %rdi
leaq 0x50(%rsp), %r13
movq %r13, %rsi
xorl %ecx, %ecx
callq 0xeb4f8
movq %rbx, %rdi
leaq 0xc2578(%rip), %rsi     # 0x148dea
leaq 0x9f54c(%rip), %rdx     # 0x125dc5
movq %r13, %rcx
xorl %eax, %eax
callq 0xe9226
cmpb $0x0, 0x40(%rsp)
je 0x8650b
cmpl $0xa, 0x90(%r15)
jg 0x8650b
movups 0x40(%rsp), %xmm0
movups %xmm0, 0x80(%r15)
movl $0xa, 0x90(%r15)
jmp 0x8650b
callq 0x871ea
addq %r13, 0x8(%rsp)
movl 0xc(%r14), %eax
cmpl $0x2, %eax
jne 0x868d1
movb $0x0, 0x48(%r15)
andl $-0x2, %eax
cmpl $0x2, %eax
je 0x868fe
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef1ed
movl %eax, 0x4c(%r15)
movq %rbx, %rdi
leaq 0x99d99(%rip), %rsi     # 0x12068e
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
movb (%r15), %al
decb %al
cmpb $0x2, %al
ja 0x8694a
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef14d
movb %al, 0x50(%r15)
movzbl %al, %ebp
movl %ebp, %edi
callq 0xecff6
movsbl %al, %r13d
movzbl 0x50(%r15), %edi
callq 0x8732f
movq %rbx, %rdi
leaq 0xa5233(%rip), %rsi     # 0x12bb6e
movl %ebp, %edx
movl %r13d, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0xe9226
cmpb $0x3, (%r15)
jne 0x8696b
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef3a0
movq %rax, %r13
addq 0x60(%r15), %rax
movq %rax, 0x10(%r15)
jmp 0x8696e
xorl %r13d, %r13d
movl 0xc(%r14), %eax
cmpl $0x2, %eax
je 0x86996
cmpl $0x3, %eax
jne 0x869af
movq 0x8(%rsp), %rax
movq %rax, 0x58(%r15)
addq 0x60(%r15), %rax
subq 0x8(%r15), %rax
movq %rax, 0x10(%r15)
jmp 0x86d3a
movq 0x8(%r15), %rax
movq 0x10(%rsp), %rcx
addq %rcx, %rax
addq $0x2, %rax
movq %rax, 0x58(%r15)
jmp 0x86d3a
movzbl (%r15), %eax
cmpq $0x3, %rax
ja 0x86d3a
leaq 0xa4e9c(%rip), %rcx     # 0x12b860
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x8(%rsp), %rdx
movq %r12, %rax
subq %rdx, %rax
movq 0x10(%rsp), %rcx
leaq (%rcx,%rax), %rbp
addq $0x2, %rbp
leaq (%r12,%rcx), %rax
addq $0x2, %rax
movq %rax, 0x58(%r15)
testq %rbp, %rbp
jle 0x86d3a
movq %rbx, %rdi
leaq 0xa5180(%rip), %rsi     # 0x12bb84
movq %rbp, %rcx
xorl %eax, %eax
callq 0xe9226
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe9585
movq 0x8(%rsp), %rsi
movq 0x18(%rbx), %rdi
movq %rsi, 0x18(%rsp)
callq 0xef0d5
movb %al, 0x50(%r15)
movzbl %al, %r13d
movl %r13d, %edi
callq 0xecff6
movsbl %al, %eax
movl %eax, 0x10(%rsp)
movzbl 0x50(%r15), %edi
callq 0x8732f
movq %rbx, %rdi
leaq 0xa5456(%rip), %rsi     # 0x12beaf
movl %r13d, %edx
movl 0x10(%rsp), %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0xe9226
cmpq $0xc, %rbp
jl 0x86d2d
cmpb $0x55, 0x50(%r15)
jne 0x86d2d
movq 0x18(%rsp), %r13
leaq 0x2(%r13), %rdx
movq %rbx, %rdi
movq %r15, %rsi
xorl %ecx, %ecx
leaq 0x9f32e(%rip), %r8      # 0x125dc5
callq 0x8712d
movq 0x18(%rbx), %rdi
leaq 0x6(%r13), %rsi
callq 0xef1ca
movq %rax, %rbp
movq %rbx, %rdi
leaq 0x8b55e(%rip), %rsi     # 0x112014
movl %ebp, %edx
xorl %eax, %eax
callq 0xe9226
testw %bp, %bp
jns 0x86cd7
testb $0x49, %bpl
je 0x86cd2
movb $0x1, 0x23(%r15)
jmp 0x86cd7
cmpb $0x4b, 0x50(%r15)
jne 0x86c52
movq 0x20(%rsp), %rbp
addq $0x2, %rbp
movq 0x60(%r15), %rax
addq %rbp, %rax
movq %rax, 0x10(%r15)
movq %rbx, %rdi
leaq 0xa50fd(%rip), %rsi     # 0x12bc02
movq %rbp, %rdx
xorl %eax, %eax
callq 0xe9226
jmp 0x86c57
addq %r12, %r13
movq %r13, 0x58(%r15)
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef3a0
movq %rax, %rbp
movq %rbx, %rdi
leaq 0xa5073(%rip), %rsi     # 0x12bba9
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x8(%rsp), %rcx
subq %rcx, %r13
leaq 0x28(%rsp), %rax
movq %rax, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r13, %r8
movq %rbp, %r9
jmp 0x86ca3
movq 0x18(%rsp), %rax
addq %r12, %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef1ed
movq %rax, %r13
movq %rbx, %rdi
leaq 0xa501c(%rip), %rsi     # 0x12bba9
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x8(%rsp), %rcx
leaq 0x28(%rsp), %rax
movq %rax, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq 0x30(%rsp), %rbp
movq %rbp, %r8
movq %r13, %r9
callq 0x87428
movl %eax, %r13d
testl %eax, %eax
je 0x86cad
movq 0x28(%rsp), %rax
movq 0x8(%rsp), %rcx
addq %rax, %rcx
movq %rcx, 0x8(%rsp)
movq %rcx, 0x58(%r15)
subq %rax, %rbp
movq %rbp, 0x60(%r15)
xorl %ebp, %ebp
jmp 0x86cc8
leaq 0xa4e8e(%rip), %rsi     # 0x12ba82
movl %r13d, %edx
xorl %eax, %eax
callq 0xe9226
testq %r13, %r13
js 0x86c4b
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef14d
movl %eax, %ebp
movq 0x18(%rbx), %rdi
movq 0x8(%rsp), %rsi
movq 0x30(%r14), %rcx
movq %r13, 0x10(%rsp)
movq %r13, %rdx
callq 0x87005
movl %eax, 0x30(%r15)
xorl %r13d, %r13d
movq $0x0, 0x20(%rsp)
movq $0x0, 0x18(%rsp)
jmp 0x8612f
xorl %ebp, %ebp
jmp 0x86e29
movq 0x20(%rsp), %rbp
addq %r12, %rbp
movq %rbp, 0x58(%r15)
movq 0x18(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0xef1ed
movq %rax, %r13
movq %rbx, %rdi
leaq 0xa4f30(%rip), %rsi     # 0x12bba9
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x8(%rsp), %rcx
subq %rcx, %rbp
leaq 0x28(%rsp), %rax
movq %rax, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbp, %r8
movq %r13, %r9
callq 0x87428
jmp 0x86d3a
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
leaq 0xa4f05(%rip), %rsi     # 0x12bbc1
xorl %eax, %eax
callq 0xe9df7
movl $0x1, %ebp
testl %r13d, %r13d
jne 0x86d3a
jmp 0x86e29
movb $0x1, 0x22(%r15)
andl $0xf000, %ebp           # imm = 0xF000
cmpl $0xa000, %ebp           # imm = 0xA000
jne 0x86cea
movb $0x1, 0x21(%r15)
movq 0x18(%rbx), %rdi
leaq 0x8(%r13), %rsi
callq 0xef1ca
movq %rbx, %rdi
leaq 0xa51c4(%rip), %rsi     # 0x12bec5
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
movq 0x18(%rbx), %rdi
addq $0xa, %r13
movq %r13, %rsi
callq 0xef1ca
movq %rbx, %rdi
leaq 0xa51a9(%rip), %rsi     # 0x12becd
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe9585
cmpb $0x0, 0x34(%r15)
je 0x86dcd
movq 0x28(%r14), %rdi
callq 0xebdc3
movq 0x28(%r14), %rdi
movq 0x18(%rbx), %rsi
movq 0x8(%r15), %rdx
movq 0x40(%r15), %rcx
subq %rdx, %rcx
callq 0xebf09
movq 0x28(%r14), %rdi
movl $0x2, %esi
callq 0xebec6
movq 0x28(%r14), %rdi
movq 0x18(%rbx), %rsi
movq 0x40(%r15), %rdx
movq 0x58(%r15), %rcx
addq $0x2, %rdx
subq %rdx, %rcx
callq 0xebf09
movq 0x28(%r14), %rdi
callq 0xebe2a
movl %eax, 0x3c(%r15)
movq %rbx, %rdi
leaq 0xa84eb(%rip), %rsi     # 0x12f292
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
movl 0x38(%r15), %edx
movl 0x3c(%r15), %ecx
cmpl %edx, %ecx
je 0x86dcd
movq %rbx, %rdi
leaq 0xa539b(%rip), %rsi     # 0x12c161
xorl %eax, %eax
callq 0xe9df7
movq 0x58(%r15), %rcx
movq 0x60(%r15), %r8
movq %rbx, %rdi
leaq 0xa4e60(%rip), %rsi     # 0x12bc3f
movq 0xa8(%rsp), %rdx
xorl %eax, %eax
callq 0xe9226
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x8769e
movl $0x1, %ebp
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe9585
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x87753
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe9585
movl 0x3c(%rsp), %esi
movq %rbx, %rdi
callq 0xe9595
testl %ebp, %ebp
je 0x86e65
movq 0x10(%r15), %rax
testq %rax, %rax
jle 0x86e65
incl 0x1c(%r14)
addq %rax, %r12
movq %rbx, %rdi
movq %r15, %rsi
callq 0x86fbc
movq 0x18(%rbx), %rax
cmpq 0x18(%rax), %r12
jl 0x85f41
xorl %r15d, %r15d
cmpb $0x0, 0x1b(%r14)
je 0x86f6b
movq 0x20(%r14), %rcx
incq %rcx
movq 0x18(%rbx), %rax
movq 0x18(%rax), %rdx
subq %rcx, %rdx
cmpq $0x2, %rdx
jl 0x86f6b
cmpq $0x81, %rdx
jne 0x86f5a
cmpl $0x1, 0xc(%r14)
jne 0x86f5a
leaq 0x50(%rsp), %r12
movq %rcx, (%r12)
leaq 0xa535a(%rip), %rsi     # 0x12c20e
movq %rbx, %rdi
movq %rcx, %rdx
xorl %eax, %eax
callq 0xe9226
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe9585
movq %rbx, %rdi
callq 0xf6870
movq %rax, %r13
movq (%r12), %rcx
leaq 0xa0b3d(%rip), %r9      # 0x127a21
movl $0x3d, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x87e71
movq (%r12), %rcx
addq $0x3d, %rcx
movq %rcx, (%r12)
leaq 0x8e484(%rip), %r9      # 0x11538f
movl $0x42, %r8d
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x87e71
addq $0x42, (%r12)
movq 0x18(%rbx), %rdi
movq %r12, %rsi
callq 0xef1ed
leaq 0xa52e9(%rip), %rsi     # 0x12c220
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe9585
movq %r13, %rdi
callq 0xf6bb0
jmp 0x86f6b
leaq 0xa527b(%rip), %rsi     # 0x12c1dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9ef5
movq %rbx, %rdi
movq %r15, %rsi
callq 0x86fbc
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq