// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/zip.c
// Function: de_run_zip
static void de_run_zip(deark *c, de_module_params *mparams)
{
	lctx *d = NULL;
	const char *s;
	u8 combine_mode = 0;
	de_encoding enc;

	combine_mode = (u8)de_get_ext_option_bool(c, "zip:combine", 0);
	if(combine_mode) {
		do_run_zip_combiner(c, mparams);
		return;
	}
	else {
		if(c->mp_data && c->mp_data->count>0) {
			de_err(c, "Multi-segment archives are only supported with \"-opt zip:combine\"");
			goto done;
		}
	}

	if(de_havemodcode(c, mparams, 'R')) {
		do_run_zip_relocator(c, mparams, 1, NULL);
		return;
	}

	s = de_get_ext_option(c, "zip:reloc");
	if(s) {
		do_run_zip_relocator(c, mparams, 0, s);
		return;
	}

	d = de_malloc(c, sizeof(lctx));

	enc = de_get_input_encoding(c, NULL, DE_ENCODING_CP437);
	d->default_enc_for_filenames = enc;
	d->default_enc_for_comments = enc;

	d->crco = de_crcobj_create(c, DE_CRCOBJ_CRC32_IEEE);

	if(de_get_ext_option(c, "zip:scanmode")) {
		de_run_zip_scanmode(c, d);
	}
	else {
		de_run_zip_normally(c, d);
	}

done:
	if(d) {
		de_crcobj_destroy(d->crco);
		de_free(c, d);
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x63de2(%rip), %rsi     # 0x135e48
xorl %edx, %edx
callq 0xdfae5
testb %al, %al
je 0xd209b
movl $0xe0, %esi
movq %rbx, %rdi
callq 0xdecaf
movq %rax, %r14
movl $0x1, 0x4(%rax)
movq 0x30(%rbx), %rax
testq %rax, %rax
je 0xd20d0
movl (%rax), %edx
incl %edx
movl %edx, 0x4(%r14)
jmp 0xd20d3
movq 0x30(%rbx), %rax
testq %rax, %rax
je 0xd21c0
cmpl $0x0, (%rax)
jle 0xd21c0
leaq 0x63d9c(%rip), %rsi     # 0x135e54
movq %rbx, %rdi
xorl %eax, %eax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xdf2a5
pushq $0x1
popq %rdx
leaq 0x63dd3(%rip), %rsi     # 0x135ead
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
movslq 0x4(%r14), %rsi
pushq $0x10
popq %rdx
movq %rbx, %rdi
callq 0xdf66f
movq %rax, 0x88(%r14)
movslq 0x4(%r14), %r12
decq %r12
movq %rbx, %rdi
movl %r12d, %esi
callq 0xe10d7
movq %rax, 0x10(%rsp)
testq %rax, %rax
je 0xd21b7
movq %rax, %r13
leaq 0x50(%r14), %rcx
pushq $0x1
popq %rdx
movq %rbx, %rdi
movq %rax, %rsi
callq 0xed59e
testl %eax, %eax
je 0xd2395
movl %r12d, 0x48(%r14)
movq 0x50(%r14), %rdx
leaq 0x63d78(%rip), %rsi     # 0x135ebe
movq %rbx, %rdi
movl %r12d, %ecx
xorl %eax, %eax
callq 0xde896
movq 0x50(%r14), %rsi
leaq 0x8(%r14), %r15
movq %r13, %rdi
movq %r15, %rdx
callq 0xd368d
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
movq %rbx, %rdi
movq %r15, %rsi
callq 0xd3734
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
leaq 0x10(%rsp), %rdx
movq %rbx, %rdi
movl %r12d, %esi
callq 0xe1130
cmpb $0x0, 0x40(%r14)
je 0xd21e6
leaq 0x63d4c(%rip), %rsi     # 0x135ef1
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
jmp 0xd239d
movb $0x1, (%r14)
jmp 0xd239a
pushq $0x52
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdfcf4
testl %eax, %eax
je 0xd23ef
pushq $0x1
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
jmp 0xd240e
cmpq %r12, (%r15)
jne 0xd2395
movq %r15, 0x8(%rsp)
leaq 0x48(%r14), %rax
movq %rax, 0x18(%rsp)
leaq 0x63e00(%rip), %rsi     # 0x136004
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
pushq $0x78
popq %rsi
movq %rbx, %rdi
callq 0xdecaf
movq %rax, %r13
movq %r14, 0x8(%rax)
movb $0x1, 0x15(%rax)
leaq 0x15e3(%rip), %rax      # 0xd3819
movq %rax, (%r13)
movq 0x20(%r14), %rax
movq %rax, 0x30(%r13)
movl $0x100000, %esi         # imm = 0x100000
movq %rbx, %rdi
xorl %edx, %edx
callq 0xe59cd
movq %rax, 0x78(%r14)
xorl %r15d, %r15d
xorl %r12d, %r12d
movslq 0x4(%r14), %rax
cmpq %rax, %r12
jge 0xd276f
movq %rbx, %rdi
movl %r12d, %esi
callq 0xe10d7
movq %rax, 0x20(%rsp)
testq %rax, %rax
je 0xd25a1
movq 0x18(%rax), %rbp
movq 0x10(%r14), %rcx
cmpq %r12, %rcx
jg 0xd22db
movq 0x8(%rsp), %rdx
cmpq %r12, (%rdx)
jle 0xd22db
movq %rax, 0x18(%r13)
movl %r12d, 0x10(%r13)
cmpq %rcx, %r12
jne 0xd22ab
movq 0x30(%r14), %rax
jmp 0xd22ad
xorl %eax, %eax
movq %rax, 0x20(%r13)
movq %rbp, 0x28(%r13)
movq %rbx, %rdi
movq %r13, %rsi
callq 0xd383b
movb 0x39(%r13), %al
movb %al, (%r14)
movb 0x3a(%r13), %cl
movb %cl, 0x1(%r14)
testb %al, %al
jne 0xd2764
movq 0x48(%r13), %rbp
cmpb $0x0, (%r14)
movq 0x88(%r14), %rdx
movq %rbp, (%rdx,%r15)
jne 0xd276f
testq %r15, %r15
jne 0xd2323
movq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0xe404f
movq 0x88(%r14), %rdx
cmpl $0x504b0708, %eax       # imm = 0x504B0708
jne 0xd2323
addq $-0x4, (%rdx)
movq $0x4, 0x80(%r14)
pushq $0x4
popq %rbp
jmp 0xd2325
xorl %ebp, %ebp
movq 0x78(%r14), %rax
movq 0x18(%rax), %rcx
movq %rcx, 0x8(%rdx,%r15)
movq (%rdx,%r15), %r8
movq %rbx, %rdi
leaq 0x63ce1(%rip), %rsi     # 0x136021
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x20(%rsp), %rdi
movq 0x88(%r14), %rax
movq (%rax,%r15), %rdx
movq 0x18(%rdi), %rax
addq %rdx, %rax
cmpq $0xbebc201, %rax        # imm = 0xBEBC201
jge 0xd25aa
movq 0x78(%r14), %rcx
movq %rbp, %rsi
callq 0xe45f4
movq %rbx, %rdi
movl %r12d, %esi
leaq 0x20(%rsp), %rdx
callq 0xe1130
incq %r12
addq $0x10, %r15
jmp 0xd225b
movb $0x1, 0x1(%r14)
xorl %r15d, %r15d
movq %r15, %rdi
callq 0xe5591
cmpb $0x0, 0x1(%r14)
je 0xd23bd
leaq 0x63b8a(%rip), %rsi     # 0x135f3d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
movq 0x78(%r14), %rdi
callq 0xe5591
movq 0x88(%r14), %rsi
movq %rbx, %rdi
callq 0xded32
movq %rbx, %rdi
movq %r14, %rsi
callq 0xded32
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x63aa0(%rip), %rsi     # 0x135e96
movq %rbx, %rdi
callq 0xdfa87
testq %rax, %rax
je 0xd2421
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd31ce
movl $0xc0, %esi
movq %rbx, %rdi
callq 0xdecaf
movq %rax, %r12
pushq $0xd
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0xe08d2
movl %eax, (%r12)
movl %eax, 0x4(%r12)
pushq $0x10
popq %rsi
movq %rbx, %rdi
callq 0xe0ae9
movq %rax, 0xb8(%r12)
leaq 0x63a3f(%rip), %rsi     # 0x135ea0
movq %rbx, %rdi
callq 0xdfa87
testq %rax, %rax
movq %r12, 0x8(%rsp)
je 0xd2580
movl $0x1, 0xb0(%r12)
leaq 0x10(%rsp), %r13
xorl %ebp, %ebp
andq $0x0, 0x10(%rsp)
movq 0x18(%rbx), %rdi
movq 0x18(%rdi), %r8
leaq -0x4(%r8), %rax
cmpq %rax, %rbp
jg 0xd256d
subq %rbp, %r8
leaq 0x651b9(%rip), %rsi     # 0x137668
pushq $0x4
popq %rdx
movq %rbp, %rcx
movq %r13, %r9
callq 0xe62f1
testl %eax, %eax
je 0xd256d
movq 0x10(%rsp), %r15
movq %rbx, %rdi
leaq 0x63df3(%rip), %rsi     # 0x1362c7
movq %r15, %rdx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq %rbx, %rdi
callq 0xd3d69
movq %rax, %r12
movq %r15, 0x18(%rax)
movq %rbx, %rdi
movq 0x8(%rsp), %rbp
movq %rbp, %rsi
movq %rax, %rdx
xorl %ecx, %ecx
movq %r15, %r8
leaq 0x20(%rsp), %r9
callq 0xd3da6
movb $0x1, %r14b
testl %eax, %eax
je 0xd2543
movq %rbx, %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0xd4888
testl %eax, %eax
je 0xd2543
movq 0x28(%r12), %rbp
subq %r15, %rbp
addq 0x1e8(%r12), %rbp
xorl %r14d, %r14d
jmp 0xd2545
xorl %ebp, %ebp
movq %rbx, %rdi
movq %r12, %rsi
callq 0xd4e8d
movq %rbx, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
testb %r14b, %r14b
jne 0xd256d
testq %rbp, %rbp
jle 0xd256d
addq %r15, %rbp
jmp 0xd248a
movq 0x8(%rsp), %r12
testq %r12, %r12
jne 0xd2ed6
jmp 0xd23e0
movq 0x28(%rbx), %rcx
testq %rcx, %rcx
je 0xd25b5
cmpb $0x0, 0x6(%rcx)
je 0xd25b5
movzbl 0x7(%rcx), %eax
movq 0x8(%rcx), %rcx
movq %rcx, 0x88(%r12)
jmp 0xd25cb
movb $0x1, (%r14)
jmp 0xd276f
movw $0x101, (%r14)          # imm = 0x101
jmp 0xd276f
movq 0x18(%rbx), %rsi
leaq 0x88(%r12), %rcx
movq %rbx, %rdi
xorl %edx, %edx
callq 0xed59e
testl %eax, %eax
je 0xd2706
movq 0x88(%r12), %rdx
leaq 0x63b92(%rip), %rsi     # 0x136174
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
movq 0x88(%r12), %r15
leaq -0x14(%r15), %r14
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe404f
cmpl $0x504b0607, %eax       # imm = 0x504B0607
jne 0xd26c5
leaq 0x64b52(%rip), %rsi     # 0x137168
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xde896
addq $-0x10, %r15
leaq 0x20(%rsp), %r14
movq %r15, (%r14)
movb $0x1, 0xac(%r12)
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe40bf
movq %rax, 0x98(%r12)
movq 0x18(%rbx), %rdi
movq (%r14), %rsi
callq 0xe418b
leaq 0x90(%r12), %r15
movq %rax, 0x90(%r12)
addq $0x8, (%r14)
movl 0x98(%r12), %ecx
leaq 0x64b02(%rip), %rsi     # 0x137188
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %r15, %rdi
callq 0xe10b1
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe40bf
leaq 0x64b01(%rip), %rsi     # 0x1371af
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
cmpb $0x0, 0xac(%r12)
je 0xd2a20
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0xdebae
cmpq $0x0, 0x98(%r12)
je 0xd2953
leaq 0x64ad5(%rip), %rsi     # 0x1371cc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf05a
jmp 0xd2a00
movl 0x24(%rbx), %eax
decl %eax
cmpl $0x1, %eax
ja 0xd274e
movq 0x18(%rbx), %rdi
xorl %esi, %esi
callq 0xe404f
cmpl $0x504b0304, %eax       # imm = 0x504B0304
je 0xd2eee
cmpl $0x504b0708, %eax       # imm = 0x504B0708
jne 0xd274e
leaq 0x6493b(%rip), %rsi     # 0x13706f
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
movq %rbx, %rdi
movq %r12, %rsi
callq 0xd6723
jmp 0xd2ed6
leaq 0x649a0(%rip), %rsi     # 0x1370f5
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
jmp 0xd2ed6
movq 0x88(%r14), %rax
movq %rbp, (%rax,%r15)
movq %rbx, %rdi
movq %r13, %rsi
callq 0xded32
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
cmpb $0x0, (%r14)
jne 0xd239a
movq %r14, %rdi
movq 0x18(%rsp), %r15
movq %r15, %rsi
callq 0xd37ae
movq %r14, %rdi
movq %r15, %rsi
callq 0xd37f7
leaq 0x90(%r14), %r12
leaq 0x6375a(%rip), %rsi     # 0x135f12
xorl %r15d, %r15d
movq %rbx, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xde896
movl 0x10(%r14), %eax
movq %r14, %r13
addq $0x60, %r13
movl %eax, 0x60(%r14)
movq 0x30(%r14), %rax
movq %rax, 0x68(%r14)
movq %r14, %rdi
movq %r13, %rsi
callq 0xd37ae
cmpb $0x0, (%r14)
jne 0xd239d
movq %r14, %rdi
movq %r13, %rsi
callq 0xd37f7
leaq 0x63725(%rip), %rsi     # 0x135f2b
xorl %r15d, %r15d
movq %rbx, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xde896
cmpb $0x0, (%r14)
jne 0xd239d
leaq 0x638bb(%rip), %rsi     # 0x1360e2
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
movq 0x58(%r14), %rsi
addq $0x4, %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0xd39a1
movq 0x58(%r14), %rsi
addq $0x6, %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0xd39a1
movq 0x20(%r14), %rdx
movq 0x58(%r14), %rsi
addq $0x8, %rsi
movq %r14, %rdi
callq 0xd39a1
movq 0x58(%r14), %rsi
movq 0x70(%r14), %rdx
addq $0x10, %rsi
movq %r14, %rdi
callq 0xd39dc
cmpb $0x0, (%r14)
jne 0xd239d
leaq 0x63862(%rip), %rsi     # 0x1360f3
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
pushq $0x78
popq %rsi
movq %rbx, %rdi
callq 0xdecaf
movq %rax, %r12
movq %r14, 0x8(%rax)
leaq 0x1155(%rip), %rax      # 0xd3a17
movq %rax, (%r12)
movq 0x78(%r14), %rax
movq %rax, 0x18(%r12)
movq 0x20(%r14), %rcx
movq %rcx, 0x30(%r12)
movq 0x70(%r14), %rcx
movq %rcx, 0x20(%r12)
movq 0x18(%rax), %rax
movq %rax, 0x28(%r12)
movq %rbx, %rdi
movq %r12, %rsi
callq 0xd383b
movb 0x39(%r12), %al
movb %al, (%r14)
movb 0x3a(%r12), %al
movb %al, 0x1(%r14)
movq %rbx, %rdi
movq %r12, %rsi
callq 0xded32
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
cmpb $0x0, (%r14)
jne 0xd239d
leaq 0x6916a(%rip), %rsi     # 0x13ba97
movq %rbx, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xe4e62
movq %rax, %r15
movq 0x78(%r14), %rdi
movq 0x18(%rdi), %rdx
xorl %esi, %esi
movq %rax, %rcx
callq 0xe45f4
jmp 0xd239d
movq 0x90(%r12), %r14
movq %r14, 0x20(%rsp)
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe404f
cmpl $0x504b0606, %eax       # imm = 0x504B0606
jne 0xd29ec
leaq 0x648d6(%rip), %rsi     # 0x137250
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xde896
leaq 0x4(%r14), %r15
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe418b
addq $0xc, %r14
leaq 0x20(%rsp), %r15
movq %r14, (%r15)
leaq 0x648c2(%rip), %rsi     # 0x137277
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r15, %rsi
callq 0xe3fc4
movzbl %ah, %edx
leaq 0xbe518(%rip), %r14     # 0x190ef0
cmpl $0x13, %edx
ja 0xd2efa
movl %edx, %ecx
movq (%r14,%rcx,8), %rcx
jmp 0xd2f0f
leaq 0x6481d(%rip), %rsi     # 0x137210
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xdf05a
movb $0x0, 0xac(%r12)
movl 0x10(%rsp), %esi
movq %rbx, %rdi
callq 0xdebb7
cmpb $0x0, 0xac(%r12)
jne 0xd2a73
cmpl $0x3, 0x24(%rbx)
je 0xd2a68
movq 0x88(%r12), %rsi
movq 0x18(%rbx), %rdi
movq 0x18(%rdi), %rax
addq $-0x16, %rax
cmpq %rax, %rsi
jne 0xd2a68
addq $0xf, %rsi
callq 0xe3eb4
testb %al, %al
jns 0xd2a68
movq 0x18(%rbx), %rdi
xorl %esi, %esi
callq 0xe404f
cmpq $0x504b0306, %rax       # imm = 0x504B0306
jne 0xd2a68
movb $0x1, 0xad(%r12)
cmpb $0x0, 0xac(%r12)
je 0xd2a7c
leaq 0x64690(%rip), %rsi     # 0x13710a
jmp 0xd2a97
cmpb $0x0, 0xad(%r12)
leaq 0x46603(%rip), %rax     # 0x11908f
leaq 0x64681(%rip), %rsi     # 0x137114
cmoveq %rax, %rsi
movq %rbx, %rdi
callq 0xe07f7
movq 0x88(%r12), %r15
leaq 0x647a8(%rip), %rsi     # 0x137256
movq %rbx, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
movq 0x18(%rbx), %rdi
leaq 0x4(%r15), %rsi
callq 0xe3fa3
movq %rax, 0x8(%r12)
leaq 0x6348a(%rip), %rsi     # 0x135f69
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
leaq 0x6(%r15), %rsi
callq 0xe3fa3
movq %rax, 0x10(%r12)
leaq 0x647ec(%rip), %rsi     # 0x1372f1
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
leaq 0x8(%r15), %rsi
callq 0xe3fa3
movq %rax, 0x18(%r12)
leaq 0x20(%rsp), %r14
movq %r12, %rdi
movq %rax, %rsi
movq %r14, %rdx
callq 0xd673b
leaq 0x647db(%rip), %rsi     # 0x137319
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xde896
cmpb $0x0, 0xac(%r12)
je 0xd2b6b
cmpq $0xffff, 0x18(%r12)     # imm = 0xFFFF
jne 0xd2b6b
movq 0x58(%r12), %rax
movq %rax, 0x18(%r12)
movq 0x18(%rbx), %rdi
leaq 0xa(%r15), %rsi
callq 0xe3fa3
movq %rax, 0x20(%r12)
leaq 0xc(%r15), %rsi
cmpb $0x0, 0xad(%r12)
movq 0x18(%rbx), %rdi
je 0xd2b9a
callq 0xe40f2
negq %rax
jmp 0xd2b9f
callq 0xe409f
movq %rax, 0x28(%r12)
movq 0x18(%rbx), %rdi
leaq 0x10(%r15), %rsi
callq 0xe409f
movq %rax, 0x30(%r12)
movq 0x20(%r12), %rsi
leaq 0x20(%rsp), %r14
movq %r12, %rdi
movq %r14, %rdx
callq 0xd673b
leaq 0x64773(%rip), %rsi     # 0x137345
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xde896
cmpb $0x0, 0xac(%r12)
je 0xd2bff
cmpq $0xffff, 0x20(%r12)     # imm = 0xFFFF
jne 0xd2bff
movq 0x60(%r12), %rax
movq %rax, 0x20(%r12)
movq 0x28(%r12), %rdx
leaq 0x633be(%rip), %rsi     # 0x135fc9
movq %rbx, %rdi
xorl %eax, %eax
callq 0xde896
cmpb $0x0, 0xac(%r12)
je 0xd2c36
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x28(%r12)
jne 0xd2c36
movq 0x68(%r12), %rax
movq %rax, 0x28(%r12)
movq 0x30(%r12), %rsi
leaq 0x20(%rsp), %r14
movq %r12, %rdi
movq %r14, %rdx
callq 0xd4ef0
movq 0x10(%r12), %rcx
leaq 0x6470a(%rip), %rsi     # 0x137361
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xde896
cmpb $0x0, 0xac(%r12)
je 0xd2c85
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x30(%r12)
jne 0xd2c85
movq 0x70(%r12), %rax
movq %rax, 0x30(%r12)
movq 0x18(%rbx), %rdi
leaq 0x14(%r15), %rsi
callq 0xe3fa3
movq %rax, 0x38(%r12)
leaq 0x573b1(%rip), %rsi     # 0x12a04f
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq 0x8(%r12), %rax
movq 0x10(%r12), %rdx
cmpq %rax, %rdx
jne 0xd2ce3
movq 0x28(%r12), %rcx
addq 0x30(%r12), %rcx
cmpq 0x88(%r12), %rcx
jle 0xd2ce3
leaq 0x646b2(%rip), %rsi     # 0x137386
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
jmp 0xd2ecb
movq 0x38(%r12), %rcx
testq %rcx, %rcx
jle 0xd2d1e
addq $0x16, %r15
leaq 0x3874b(%rip), %rax     # 0x10b443
movq %rax, (%rsp)
leaq 0x646b6(%rip), %r9      # 0x1373b9
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
xorl %r8d, %r8d
callq 0xd4efd
movq 0x8(%r12), %rax
movq 0x10(%r12), %rdx
cmpq %rax, %rdx
jne 0xd2eaf
cmpb $0x0, 0xac(%r12)
je 0xd2d40
cmpq %rax, 0x98(%r12)
jne 0xd2eaf
testq %rax, %rax
je 0xd2d61
leaq 0x646b3(%rip), %rsi     # 0x1373ff
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf05a
movq %rbx, %rdi
movq %r12, %rsi
callq 0xd6723
movq 0x18(%r12), %rdx
movq 0x20(%r12), %rcx
cmpq %rcx, %rdx
je 0xd2d81
leaq 0x646c0(%rip), %rsi     # 0x137437
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf05a
xorl %eax, %eax
cmpb $0x0, 0xac(%r12)
setne %al
movq 0x88(%r12,%rax,8), %r14
subq 0x28(%r12), %r14
js 0xd2df8
movq 0x30(%r12), %rdx
cmpq %rdx, %r14
je 0xd2df8
leaq 0x646f3(%rip), %rsi     # 0x1374a2
movq %rbx, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0xdf05a
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe404f
cmpl $0x504b0102, %eax       # imm = 0x504B0102
jne 0xd2df8
movq %r14, %rax
subq 0x30(%r12), %rax
movq %rax, 0xa0(%r12)
leaq 0x64729(%rip), %rsi     # 0x13750f
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xde896
movq %r14, 0x30(%r12)
pushq $-0x1
popq %rbp
movq %rbx, %rdi
movl %ebp, %esi
callq 0xdeba7
movq 0x8(%rsp), %rax
movq 0x30(%rax), %r14
leaq 0x6471a(%rip), %rsi     # 0x13752f
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xde896
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
pushq $0x78
popq %rsi
movq %rbx, %rdi
callq 0xdecaf
movq %rax, %r15
movq 0x8(%rsp), %rax
movq %rax, 0x8(%r15)
leaq 0x38fd(%rip), %rax      # 0xd6748
movq %rax, (%r15)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x30(%r15)
movq 0x18(%rbx), %rax
movq %rax, 0x18(%r15)
movq %r14, 0x20(%r15)
movq 0x8(%rsp), %rax
addq 0x28(%rax), %r14
movq %r14, 0x28(%r15)
movb $0x1, 0x14(%r15)
movq 0x8(%rsp), %rax
movb 0xad(%rax), %al
movb %al, 0x16(%r15)
movq %rbx, %rdi
movq %r15, %rsi
callq 0xd383b
movq %rbx, %rdi
movl %ebp, %esi
movq 0x8(%rsp), %r12
callq 0xdeba7
movq %rbx, %rdi
movq %r15, %rsi
callq 0xded32
jmp 0xd2ed6
leaq 0x64514(%rip), %rsi     # 0x1373ca
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdf2a5
movq %rbx, %rdi
movq %r12, %rsi
callq 0xd6723
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0xdeba7
movq 0xb8(%r12), %rdi
callq 0xe0e8d
movq %rbx, %rdi
movq %r12, %rsi
jmp 0xd23db
leaq 0x641bc(%rip), %rsi     # 0x1370b1
jmp 0xd2755
cmpl $0x1e, %edx
leaq 0x636ea(%rip), %rsi     # 0x1365ee
leaq 0x4bfd6(%rip), %rcx     # 0x11eee1
cmoveq %rsi, %rcx
movzbl %al, %eax
movb $0xa, %sil
divb %sil
movzbl %ah, %ebp
movzbl %al, %r8d
leaq 0x63473(%rip), %rsi     # 0x136399
movq %rbx, %rdi
movl %ebp, %r9d
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
leaq 0x20(%rsp), %rsi
callq 0xe3fc4
movzbl %ah, %edx
cmpl $0x13, %edx
ja 0xd2f51
movl %edx, %ecx
movq (%r14,%rcx,8), %rcx
jmp 0xd2f66
cmpl $0x1e, %edx
leaq 0x63693(%rip), %rsi     # 0x1365ee
leaq 0x4bf7f(%rip), %rcx     # 0x11eee1
cmoveq %rsi, %rcx
movzbl %al, %eax
movb $0xa, %sil
divb %sil
movzbl %ah, %ebp
movzbl %al, %r8d
leaq 0x6431e(%rip), %rsi     # 0x13729b
movq %rbx, %rdi
movl %ebp, %r9d
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
leaq 0x20(%rsp), %r14
movq %r14, %rsi
callq 0xe40bf
leaq 0x62fc7(%rip), %rsi     # 0x135f69
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xe40bf
movq 0x8(%rsp), %r12
movq %rax, 0x50(%r12)
movq 0x18(%rbx), %rdi
movq (%r14), %rsi
callq 0xe418b
leaq 0x58(%r12), %r15
movq %rax, 0x58(%r12)
addq $0x8, (%r14)
leaq 0x62f99(%rip), %rsi     # 0x135f7f
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %r15, %rdi
callq 0xe10b1
movq 0x18(%rbx), %rdi
movq (%r14), %rsi
callq 0xe418b
movq %rax, 0x60(%r12)
addq $0x8, (%r14)
leaq 0x62f95(%rip), %rsi     # 0x135fac
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %r15, %rdi
callq 0xe10b1
movq 0x18(%rbx), %rdi
movq (%r14), %rsi
callq 0xe418b
leaq 0x68(%r12), %r15
movq %rax, 0x68(%r12)
addq $0x8, (%r14)
leaq 0x62f7c(%rip), %rsi     # 0x135fc9
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %r15, %rdi
callq 0xe10b1
movq 0x18(%rbx), %rdi
movq (%r14), %rsi
callq 0xe418b
movq %r12, %r15
addq $0x70, %r15
movq %rax, 0x70(%r12)
addq $0x8, (%r14)
movl 0x50(%r12), %ecx
leaq 0x64242(%rip), %rsi     # 0x1372cc
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %r15, %rdi
callq 0xe10b1
jmp 0xd2a09