// File: /workspace/github_c_makefile_star2_O1/jsummers[P]deark/modules/tiff.c
// Function: de_run_tiff
static void de_run_tiff(deark *c, de_module_params *mparams)
{
	lctx *d = NULL;

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

	if(mparams) {
		d->in_params = &mparams->in_params;
	}

	d->opt_decode = (u8)de_get_ext_option_bool(c, "tiff:decode", 1);
	d->opt_dexxa = (u8)de_get_ext_option_bool(c, "tiff:dexxa", 0xff);

	if(de_havemodcode(c, mparams, 'A')) {
		d->fmt = DE_TIFFFMT_APPLEMN;
		d->is_le = 0;
		de_strlcpy(d->errmsgtoken_module, "Apple MakerNote", sizeof(d->errmsgtoken_module));
	}
	else if(de_havemodcode(c, mparams, 'F')) {
		d->fmt = DE_TIFFFMT_FUJIFILMMN;
		d->is_le = 1;
		de_strlcpy(d->errmsgtoken_module, "FujiFilm MakerNote", sizeof(d->errmsgtoken_module));
	}
	else {
		d->fmt = de_identify_tiff_internal(c, &d->is_le);
	}

	if(de_havemodcode(c, mparams, 'N')) {
		de_strlcpy(d->errmsgtoken_module, "Nikon MakerNote", sizeof(d->errmsgtoken_module));
		d->fmt = DE_TIFFFMT_NIKONMN;
	}

	if(de_havemodcode(c, mparams, 'M') && (d->fmt==DE_TIFFFMT_TIFF)) {
		de_strlcpy(d->errmsgtoken_module, "MPF", sizeof(d->errmsgtoken_module));
		d->fmt = DE_TIFFFMT_MPEXT;
	}

	if(de_havemodcode(c, mparams, 'E')) {
		d->is_exif_submodule = 1;
		de_strlcpy(d->errmsgtoken_module, "Exif", sizeof(d->errmsgtoken_module));
	}

	if(d->fmt==DE_TIFFFMT_TIFF) {
		identify_more_formats(c, d);
	}

	switch(d->fmt) {
	case DE_TIFFFMT_TIFF:
		if(d->is_xiff)
			de_declare_fmt(c, "XIFF");
		else
			de_declare_fmt(c, "TIFF");
		break;
	case DE_TIFFFMT_BIGTIFF:
		de_declare_fmt(c, "BigTIFF");
		d->is_bigtiff = 1;
		break;
	case DE_TIFFFMT_PANASONIC:
		de_declare_fmt(c, "Panasonic RAW/RW2");
		break;
	case DE_TIFFFMT_ORF:
		de_declare_fmt(c, "Olympus RAW");
		break;
	case DE_TIFFFMT_DCP:
		de_declare_fmt(c, "DNG Camera Profile");
		break;
	case DE_TIFFFMT_MDI:
		de_declare_fmt(c, "MDI");
		break;
	case DE_TIFFFMT_JPEGXR:
		de_declare_fmt(c, "JPEG XR");
		break;
	}

	if(d->fmt==0) {
		detiff_warn(c, d, NULL, "This is not a known/supported TIFF or TIFF-like format.");
	}

	if(d->fmt==DE_TIFFFMT_TIFF) {
		d->fillorder_strategy = (u8)de_get_ext_option_bool(c, "tiff:fillorderstrategy", 0);
	}

	if(d->is_bigtiff) {
		d->ifdhdrsize = 8;
		d->ifditemsize = 20;
		d->offsetoffset = 12;
		d->offsetsize = 8;
	}
	else {
		d->ifdhdrsize = 2;
		d->ifditemsize = 12;
		d->offsetoffset = 8;
		d->offsetsize = 4;
	}

	d->current_textfield_encoding = DE_ENCODING_ASCII;

	do_tiff(c, d);

	if(mparams) {
		// .out_params.flags:
		//  0x08: has_exif_gps
		//  0x10: first IFD has subsampling=cosited
		//  0x20: uint1 = first IFD's orientation
		//  0x40: uint2 = Exif version
		//  0x80: uint3 = main image count
		if(d->has_exif_gps) {
			mparams->out_params.flags |= 0x08;
		}
		if(d->first_ifd_cosited) {
			mparams->out_params.flags |= 0x10;
		}
		if(d->first_ifd_orientation>0) {
			mparams->out_params.flags |= 0x20;
			mparams->out_params.uint1 = d->first_ifd_orientation;
		}
		if(d->exif_version_as_uint32>0) {
			mparams->out_params.flags |= 0x40;
			mparams->out_params.uint2 = d->exif_version_as_uint32;
		}
		if(d->fmt==DE_TIFFFMT_MPEXT) {
			mparams->out_params.flags |= 0x80;
			mparams->out_params.uint3 = d->mpf_main_image_count;
		}
	}

	if(d) {
		de_free(c, d->ifdstack);
		de_inthashtable_destroy(c, d->ifds_seen);
		de_free(c, d);
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rsi, %rbx
movq %rdi, %r12
movl $0xa8, %esi
callq 0xe969b
movq %rax, %r13
testq %rbx, %rbx
je 0xcbdc0
movq %rbx, 0x70(%r13)
leaq 0x707f4(%rip), %rsi     # 0x13c5bb
movq %r12, %rdi
movl $0x1, %edx
callq 0xea727
movb %al, 0x14(%r13)
leaq 0x707e8(%rip), %rsi     # 0x13c5c7
movq %r12, %rdi
movl $0xff, %edx
callq 0xea727
movb %al, 0x15(%r13)
movq %r12, %rdi
movq %rbx, %rsi
movl $0x41, %edx
callq 0xea97e
testl %eax, %eax
movq %rbx, 0x70(%rsp)
je 0xcbe24
movabsq $0xa00000000, %rax      # imm = 0xA00000000
movq %rax, (%r13)
leaq 0x7c(%r13), %rdi
leaq 0x707b0(%rip), %rsi     # 0x13c5d2
jmp 0xcbe55
movq %r12, %rdi
movq %rbx, %rsi
movl $0x46, %edx
callq 0xea97e
testl %eax, %eax
je 0xcbfb1
movabsq $0xb00000001, %rax      # imm = 0xB00000001
movq %rax, (%r13)
leaq 0x7c(%r13), %rdi
leaq 0x7078d(%rip), %rsi     # 0x13c5e2
movl $0x28, %edx
callq 0xe8ded
movq %r12, %rdi
movq 0x70(%rsp), %rsi
movl $0x4e, %edx
callq 0xea97e
testl %eax, %eax
je 0xcbe92
leaq 0x7c(%r13), %rdi
leaq 0x70775(%rip), %rsi     # 0x13c5f5
movl $0x28, %edx
callq 0xe8ded
movl $0x9, 0x4(%r13)
movq %r12, %rdi
movq 0x70(%rsp), %rsi
movl $0x4d, %edx
callq 0xea97e
testl %eax, %eax
je 0xcbecc
cmpl $0x1, 0x4(%r13)
jne 0xcbecc
leaq 0x7c(%r13), %rdi
leaq 0x7074b(%rip), %rsi     # 0x13c605
movl $0x28, %edx
callq 0xe8ded
movl $0x8, 0x4(%r13)
movq %r12, %rdi
movq 0x70(%rsp), %rsi
movl $0x45, %edx
callq 0xea97e
testl %eax, %eax
je 0xcbeff
movl $0x1, 0xc(%r13)
leaq 0x7c(%r13), %rdi
leaq 0x5f816(%rip), %rsi     # 0x12b70b
movl $0x28, %edx
callq 0xe8ded
cmpl $0x1, 0x4(%r13)
jne 0xcbfe2
movq 0x18(%r12), %rdi
leaq 0xa0(%rsp), %rbx
movl $0x8, %edx
movl $0x14, %ecx
movq %rbx, %rsi
callq 0xeeee8
movdqa (%rbx), %xmm0
pcmpeqb 0x703bb(%rip), %xmm0    # 0x13c2f0
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0xcbf95
movabsq $0x494420584f524558, %rax # imm = 0x494420584F524558
xorq 0xa0(%rsp), %rax
movzwl 0xa8(%rsp), %ecx
xorq $0x4646, %rcx           # imm = 0x4646
orq %rax, %rcx
je 0xcbfc5
movabsq $0x65646e6574586520, %rax # imm = 0x65646E6574586520
xorq 0xa0(%rsp), %rax
movzwl 0xa8(%rsp), %ecx
xorq $0x2064, %rcx           # imm = 0x2064
orq %rax, %rcx
jne 0xcbfe2
leaq 0x70756(%rip), %rsi     # 0x13c6e9
jmp 0xcbfcc
movl 0xb0(%rsp), %eax
cmpl $0x4d494238, %eax       # imm = 0x4D494238
je 0xcbfdd
cmpl $0x43545049, %eax       # imm = 0x43545049
jne 0xcbf40
movb $0x1, 0x17(%r13)
jmp 0xcbfe2
movq %r12, %rdi
movq %r13, %rsi
callq 0xcdb71
movl %eax, 0x4(%r13)
jmp 0xcbe5f
leaq 0x706f2(%rip), %rsi     # 0x13c6be
movq %r12, %rdi
xorl %eax, %eax
callq 0xe9226
movb $0x1, 0x9(%r13)
jmp 0xcbfe2
movb $0x1, 0x18(%r13)
movl 0x4(%r13), %eax
decl %eax
cmpl $0x6, %eax
ja 0xcc05f
leaq 0x7032c(%rip), %rcx     # 0x13c320
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpb $0x0, 0x9(%r13)
je 0xcc050
leaq 0x705fe(%rip), %rsi     # 0x13c609
jmp 0xcc057
leaq 0x70620(%rip), %rsi     # 0x13c634
jmp 0xcc057
leaq 0x705f9(%rip), %rsi     # 0x13c616
jmp 0xcc057
leaq 0x70602(%rip), %rsi     # 0x13c628
jmp 0xcc057
leaq 0x705df(%rip), %rsi     # 0x13c60e
movq %r12, %rdi
callq 0xeb6d6
movb $0x1, 0x8(%r13)
jmp 0xcc05f
leaq 0x70602(%rip), %rsi     # 0x13c647
jmp 0xcc057
leaq 0x705fd(%rip), %rsi     # 0x13c64b
jmp 0xcc057
leaq 0x7e137(%rip), %rsi     # 0x14a18e
movq %r12, %rdi
callq 0xeb6d6
cmpl $0x0, 0x4(%r13)
jne 0xcc07c
leaq 0x705e6(%rip), %rcx     # 0x13c653
movq %r12, %rdi
movq %r13, %rsi
xorl %edx, %edx
xorl %eax, %eax
callq 0xcdc5c
cmpl $0x1, 0x4(%r13)
jne 0xcc098
leaq 0x70601(%rip), %rsi     # 0x13c68b
movq %r12, %rdi
xorl %edx, %edx
callq 0xea727
movb %al, 0x16(%r13)
xorl %eax, %eax
cmpb $0x0, 0x8(%r13)
movl $0x2, %ecx
movl $0x8, %edx
cmoveq %rcx, %rdx
setne %al
leaq 0xc(,%rax,8), %rcx
shll $0x2, %eax
leaq 0x8(%rax), %rsi
addq $0x4, %rax
movq %rdx, 0x50(%r13)
movq %rcx, 0x58(%r13)
movq %rsi, 0x60(%r13)
movq %rax, 0x68(%r13)
movl $0x1, 0x38(%r13)
movl 0x4(%r13), %eax
cmpl $0xb, %eax
je 0xcc0fb
cmpl $0xa, %eax
jne 0xcc129
movl $0xe, %edx
movq %r12, %rdi
movq %r13, %rsi
movl $0x8, %ecx
jmp 0xcc119
movl $0x8, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0xcdef0
movq %r12, %rdi
movq %r13, %rsi
movq %rax, %rdx
movl $0xa, %ecx
movl $0x1, %r8d
callq 0xcddcb
jmp 0xcc1ed
cmpl $0x0, 0xc(%r13)
leaq 0x78a9b(%rip), %rax     # 0x144bd0
leaq 0x5f430(%rip), %rdx     # 0x12b56c
cmoveq %rax, %rdx
leaq 0x705d3(%rip), %rsi     # 0x13c71a
xorl %r14d, %r14d
movq %r12, %rdi
xorl %ecx, %ecx
xorl %eax, %eax
callq 0xe9226
movq %r12, %rdi
movl $0x1, %esi
callq 0xe9585
cmpl $0x0, (%r13)
leaq 0x6798d(%rip), %rax     # 0x133afc
leaq 0x6797f(%rip), %rdx     # 0x133af5
cmoveq %rax, %rdx
leaq 0x6795e(%rip), %rsi     # 0x133adf
movq %r12, %rdi
xorl %eax, %eax
callq 0xe9226
xorl %eax, %eax
cmpb $0x0, 0x8(%r13)
setne %al
leaq 0x4(,%rax,4), %rdx
movq %r12, %rdi
movq %r13, %rsi
callq 0xcdef0
movq %rax, %rbx
leaq 0x70582(%rip), %rsi     # 0x13c734
movq %r12, %rdi
movl %ebx, %edx
xorl %eax, %eax
callq 0xe9226
cmpl $0x9, 0x4(%r13)
movl $0x6, %ecx
cmovnel %r14d, %ecx
movq %r12, %rdi
movq %r13, %rsi
movq %rbx, %rdx
movl $0x1, %r8d
callq 0xcddcb
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe9585
xorl %r15d, %r15d
movq %r13, 0x18(%rsp)
movq %r12, 0x88(%rsp)
movq 0x28(%r13), %rax
movb $0x1, %bl
testq %rax, %rax
je 0xcc232
movslq 0x34(%r13), %rcx
testq %rcx, %rcx
jle 0xcc232
movq %rcx, %rdx
shlq $0x4, %rdx
movq -0x10(%rax,%rdx), %rbp
movb -0x8(%rax,%rdx), %r14b
decl %ecx
cmpb $0x0, -0x7(%rax,%rdx)
movl %ecx, 0x34(%r13)
sete %bl
jmp 0xcc237
xorl %r14d, %r14d
xorl %ebp, %ebp
testq %rbp, %rbp
je 0xccee0
movl $0x510, %esi            # imm = 0x510
movq %r12, %rdi
callq 0xe969b
pxor %xmm0, %xmm0
movdqu %xmm0, 0x50(%rax)
movl %r15d, 0x8(%rax)
movq %rbp, 0xf8(%rsp)
movq %rbp, (%rax)
movq %rax, %rbp
movb %r14b, 0x10(%rax)
testb %bl, %bl
movl %r15d, 0x2c(%rsp)
je 0xcc296
movl $0xffffffff, 0xc(%rbp)  # imm = 0xFFFFFFFF
leaq 0x4d0(%rbp), %rdi
movl $0x14, %edx
leaq 0x5c6a3(%rip), %rsi     # 0x128932
callq 0xe8ded
jmp 0xcc2be
movl 0x4c(%r13), %ecx
leal 0x1(%rcx), %eax
movl %eax, 0x4c(%r13)
movl %ecx, 0xc(%rbp)
leaq 0x4d0(%rbp), %rdi
movl $0x14, %esi
leaq 0x69c22(%rip), %rdx     # 0x135ed9
xorl %eax, %eax
callq 0xe8d67
leaq 0x4e4(%rbp), %rdi
leaq 0x4d0(%rbp), %r15
movq (%rbp), %r8
movl $0x28, %esi
leaq 0x704d2(%rip), %rdx     # 0x13c7ae
movq %r15, %rcx
xorl %eax, %eax
callq 0xe8d67
xorl %eax, %eax
cmpl $0x7, 0x4(%r13)
sete %al
incl %eax
movl %eax, 0x38(%r13)
movzbl 0x10(%rbp), %eax
decl %eax
cmpl $0x8, %eax
ja 0xcc329
leaq 0x70034(%rip), %rcx     # 0x13c33c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
leaq 0x704a3(%rip), %r8      # 0x13c7b9
jmpq *%rax
movl $0x1, 0x38(%r13)
leaq 0x704b5(%rip), %r8      # 0x13c7dc
jmp 0xcc36d
leaq 0x788a0(%rip), %r8      # 0x144bd0
jmp 0xcc36d
leaq 0x704d7(%rip), %r8      # 0x13c810
jmp 0xcc36d
leaq 0x704df(%rip), %r8      # 0x13c821
jmp 0xcc36d
movl $0x1, 0x38(%r13)
leaq 0x70495(%rip), %r8      # 0x13c7e8
jmp 0xcc36d
movl $0x1, 0x38(%r13)
leaq 0x704a1(%rip), %r8      # 0x13c805
jmp 0xcc36d
leaq 0x70456(%rip), %r8      # 0x13c7c3
movq (%rbp), %rcx
movq %r12, %rdi
leaq 0x704b5(%rip), %rsi     # 0x13c830
movq %r15, %rdx
xorl %eax, %eax
callq 0xe9226
movq %r12, %rdi
movl $0x1, %esi
callq 0xe9585
movq (%rbp), %r8
cmpq $0x8, %r8
jl 0xcc3c3
movq 0x18(%r12), %rdi
cmpq 0x18(%rdi), %r8
jge 0xcc3c3
cmpb $0x0, 0x8(%r13)
movl (%r13), %edx
leaq 0xbae99(%rip), %r14     # 0x187250
movq %r8, %rsi
je 0xcc3db
callq 0xef661
jmp 0xcc3e0
movq %r12, %rdi
movq %r13, %rsi
xorl %edx, %edx
leaq 0x7039f(%rip), %rcx     # 0x13c771
xorl %eax, %eax
callq 0xcdc5c
jmp 0xcc418
callq 0xef570
movq %rax, %rbx
movq %r12, %rdi
leaq 0x6fbbc(%rip), %rsi     # 0x13bfa9
movl %ebx, %edx
xorl %eax, %eax
callq 0xe9226
cmpl $0xc9, %ebx
jl 0xcc424
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x70432(%rip), %rcx     # 0x13c840
movl %ebx, %r8d
xorl %eax, %eax
callq 0xcdc5c
xorl %ebx, %ebx
movl 0x2c(%rsp), %r15d
jmp 0xccea6
movq 0x50(%r13), %rax
addq (%rbp), %rax
movslq %ebx, %rdx
imulq 0x58(%r13), %rdx
addq %rax, %rdx
movq %r12, %rdi
movq %r13, %rsi
callq 0xcdef0
movq %rbx, %r15
movq %rax, %rbx
testq %rax, %rax
leaq 0x7877e(%rip), %rcx     # 0x144bd0
leaq 0x7503b(%rip), %rax     # 0x141494
cmoveq %rax, %rcx
movq %r12, %rdi
leaq 0x70407(%rip), %rsi     # 0x13c86e
movq %rbx, %rdx
xorl %eax, %eax
callq 0xe9226
movq %r12, %rdi
movq %r13, %rsi
movq %rbx, %rdx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0xcddcb
movq %r12, %rdi
callq 0xf6870
movq %r15, 0x90(%rsp)
testl %r15d, %r15d
movq %rbp, 0x10(%rsp)
movq %rax, 0x78(%rsp)
jle 0xccba7
movq 0x90(%rsp), %rax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq %rax, 0x90(%rsp)
xorl %ecx, %ecx
pxor %xmm0, %xmm0
movdqa %xmm0, 0x30(%rsp)
movdqa %xmm0, 0x50(%rsp)
movdqa %xmm0, 0x40(%rsp)
movq $0x0, 0x60(%rsp)
movq %rbp, 0x30(%rsp)
movq 0x18(%r12), %rdi
movq 0x50(%r13), %rax
addq (%rbp), %rax
movq 0x58(%r13), %rsi
imulq %rcx, %rsi
addq %rax, %rsi
movl (%r13), %edx
movq %rbp, %rbx
movq %r12, %rbp
movq %rcx, %r12
callq 0xef570
movl %eax, 0x38(%rsp)
movq 0x18(%rbp), %rdi
movq (%rbx), %rax
movq 0x58(%r13), %rcx
imulq %r12, %rcx
addq 0x50(%r13), %rax
leaq (%rcx,%rax), %rsi
addq $0x2, %rsi
movl (%r13), %edx
callq 0xef570
movl %eax, 0x3c(%rsp)
movq %rbx, %r15
movq (%rbx), %rax
movq 0x58(%r13), %rcx
movq %r12, 0x8(%rsp)
imulq %r12, %rcx
movq %rbp, %r12
addq 0x50(%r13), %rax
leaq (%rcx,%rax), %rdx
addq $0x4, %rdx
movq %rbp, %rdi
movq %r13, %rsi
callq 0xcdef0
movabsq $0x100000000000, %rcx   # imm = 0x100000000000
cmpq %rcx, %rax
cmovgeq %rcx, %rax
movq %rax, 0x48(%rsp)
movl 0x3c(%rsp), %edx
addl $-0x3, %edx
movl $0x1, %ecx
cmpl $0xf, %edx
ja 0xcc59c
movl %edx, %ecx
leaq 0x6ff88(%rip), %rdx     # 0x13c520
movq (%rdx,%rcx,8), %rcx
movq %rcx, 0x58(%rsp)
imulq %rcx, %rax
movq %rax, 0x60(%rsp)
movq 0x50(%r13), %rcx
movq %r15, %rbp
addq (%r15), %rcx
movq 0x58(%r13), %rdx
imulq 0x8(%rsp), %rdx
addq %rcx, %rdx
addq 0x60(%r13), %rdx
cmpq 0x68(%r13), %rax
jle 0xcc5d9
movq %r12, %rdi
movq %r13, %rsi
callq 0xcdef0
movq %rax, %rdx
leaq 0x6fd80(%rip), %r11     # 0x13c360
movq 0x78(%rsp), %rbx
movq %rdx, 0x50(%rsp)
movq 0x60(%rsp), %rcx
addq %rdx, %rcx
movq 0x18(%r12), %rax
movq 0x18(%rax), %rax
leaq 0x400(%rax), %rsi
cmpq %rsi, %rcx
jle 0xcc631
subq %rdx, %rax
jge 0xcc619
movq $0x0, 0x48(%rsp)
xorl %eax, %eax
jmp 0xcc62c
movq 0x58(%rsp), %rcx
cqto
idivq %rcx
movq %rax, 0x48(%rsp)
imulq %rcx, %rax
movq %rax, 0x60(%rsp)
movl 0x38(%rsp), %eax
movl 0x4(%r13), %edx
movzbl 0x10(%rbp), %edi
xorl %ecx, %ecx
xorl %r8d, %r8d
cmpl %eax, (%rcx,%r14)
jne 0xcc6f4
movq %r8, %rsi
shlq $0x5, %rsi
addq %r14, %rsi
movl 0x4(%rcx,%r14), %r9d
leal -0x3(%rdi), %r10d
cmpl $0x7, %r10d
ja 0xcc67a
movslq (%r11,%r10,4), %r10
addq %r11, %r10
jmpq *%r10
testb $0x20, %r9b
je 0xcc6f4
jmp 0xcc70a
testb $0x1, %r9b
je 0xcc70a
cmpl $0x7, %edx
jne 0xcc699
movl %r9d, %r10d
andl $0x400, %r10d           # imm = 0x400
jne 0xccb9c
cmpl $0x3, %edx
je 0xcc6c5
cmpl $0x9, %edx
je 0xcc6b9
cmpl $0x8, %edx
jne 0xcc6f4
btl $0xb, %r9d
jb 0xcc70a
cmpl $0x3, %edx
je 0xcc6c5
cmpl $0x9, %edx
jne 0xcc6f4
btl $0xc, %r9d
jb 0xcc70a
cmpl $0x3, %edx
jne 0xcc6f4
testl %edi, %edi
jne 0xcc6f4
andl $0x4000, %r9d           # imm = 0x4000
je 0xcc6f4
jmp 0xcc70a
btl $0xc, %r9d
jae 0xcc6f4
jmp 0xcc70a
testb $0x40, %r9b
je 0xcc6f4
jmp 0xcc70a
btl $0xd, %r9d
jae 0xcc6f4
jmp 0xcc70a
testw %r9w, %r9w
js 0xcc70a
incq %r8
addq $0x20, %rcx
cmpq $0x4f20, %rcx           # imm = 0x4F20
jne 0xcc642
xorl %esi, %esi
leaq 0xbab1f(%rip), %r15     # 0x187230
testq %rsi, %rsi
je 0xcc721
movl $0x1, 0x40(%rsp)
movq %rsi, %r15
movq %rbx, %rdi
callq 0xf6883
movq 0x8(%r15), %r8
movl 0x38(%rsp), %ecx
movl 0x3c(%rsp), %r9d
movl 0x48(%rsp), %r10d
movq %rbx, %rdi
movl $0x2, %esi
leaq 0x7013e(%rip), %rdx     # 0x13c888
xorl %eax, %eax
pushq 0x50(%rsp)
pushq %r10
callq 0xf6ab0
addq $0x10, %rsp
cmpl $0x0, (%r12)
jle 0xccb30
movl 0x4(%r15), %ecx
testb $0x8, %cl
jne 0xccb30
cmpq $0x0, 0x48(%rsp)
jle 0xccb30
movl 0x3c(%rsp), %eax
cmpl $0x81, %eax
je 0xcc793
cmpl $0x2, %eax
jne 0xcc9ac
testb $0x4, %cl
jne 0xcc83d
movl $0x2, %r9d
cmpl $0x81, %eax
je 0xcc7ad
movl 0x38(%r13), %r9d
movq 0x18(%r12), %rdi
movq 0x50(%rsp), %rsi
movq 0x60(%rsp), %rdx
movl $0x1f4, %ecx            # imm = 0x1F4
movl $0x1, %r8d
callq 0xefe67
movq %rax, %r12
movq 0x78(%rsp), %rbx
movq %rbx, %rdi
leaq 0x72df4(%rip), %rsi     # 0x13f5d2
movl $0x5, %edx
callq 0xf6a40
movq 0x18(%r12), %rsi
movq %rbx, %rdi
callq 0xf6969
cmpl $0x0, 0x30(%r12)
je 0xcc811
movq %rbx, %rdi
leaq 0x797ea(%rip), %rsi     # 0x145ff1
movl $0x5, %edx
callq 0xf6a40
movq %rbx, %rdi
leaq 0x72dbb(%rip), %rsi     # 0x13f5d6
movl $0x5, %edx
callq 0xf6a40
movq 0x88(%rsp), %rdi
movq %r12, %rsi
movq %rdi, %r12
callq 0xf00aa
jmp 0xccb30
movl $0x2, (%rsp)
cmpl $0x81, %eax
je 0xcc852
movl 0x38(%r13), %eax
movl %eax, (%rsp)
movq 0x60(%rsp), %rax
cmpq $0x1f5, %rax            # imm = 0x1F5
movl $0x1f4, %r14d           # imm = 0x1F4
movq %rax, 0xf0(%rsp)
cmovlq %rax, %r14
addq 0x50(%rsp), %r14
movq %rbx, %rdi
leaq 0x72d51(%rip), %rsi     # 0x13f5cf
movl $0x5, %edx
callq 0xf6a40
xorl %ebp, %ebp
movq 0x50(%rsp), %r13
movq %r15, 0x98(%rsp)
movq %r14, 0x80(%rsp)
movq %r14, %rcx
subq %r13, %rcx
setg %al
testl %ebp, %ebp
setle %r12b
orb %al, %r12b
cmpb $0x1, %r12b
jne 0xcc94f
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rdi
movq %r13, %rsi
movq %rcx, %rdx
movl $0x1, %r8d
movl (%rsp), %r9d
callq 0xefe67
movq %rax, %r14
testl %ebp, %ebp
jle 0xcc8f7
movq %rbx, %rdi
leaq 0x57d88(%rip), %rsi     # 0x124675
movl $0x5, %edx
callq 0xf6a40
movq %rbx, %rdi
leaq 0x7ce08(%rip), %r15     # 0x149709
movq %r15, %rsi
movl $0x5, %edx
callq 0xf6a40
movq 0x18(%r14), %rsi
movq %rbx, %rdi
callq 0xf6969
movq %rbx, %rdi
movq %r15, %rsi
movl $0x5, %edx
callq 0xf6a40
incl %ebp
addq (%r14), %r13
movq 0x88(%rsp), %rdi
movq %r14, %rsi
callq 0xf00aa
movq 0x98(%rsp), %r15
movq 0x80(%rsp), %r14
testb %r12b, %r12b
jne 0xcc89f
cmpq $0x1f5, 0xf0(%rsp) # imm = 0x1F5
jl 0xcc97a
movq %rbx, %rdi
leaq 0x79681(%rip), %rsi     # 0x145ff1
movl $0x5, %edx
callq 0xf6a40
movq %rbx, %rdi
leaq 0x72c53(%rip), %rsi     # 0x13f5d7
movl $0x5, %edx
callq 0xf6a40
movq 0x88(%rsp), %r12
movq 0x18(%rsp), %r13
leaq 0xba8ae(%rip), %r14     # 0x187250
movq 0x10(%rsp), %rbp
jmp 0xccb30
movq $0x0, 0x20(%rsp)
leal -0x3(%rax), %ecx
cmpl $0xb, %ecx
jb 0xcc9d4
cmpl $0x12, %eax
ja 0xccb21
movl $0x70002, %ecx          # imm = 0x70002
btl %eax, %ecx
jae 0xccb21
movq %rbx, %rdi
leaq 0x72bf1(%rip), %rsi     # 0x13f5cf
movl $0x5, %edx
callq 0xf6a40
movq %r13, 0xa0(%rsp)
leaq 0x30(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq %r12, %rdi
callq 0xf6870
movq %rax, 0x20(%rsp)
cmpq $0x0, 0x48(%rsp)
jle 0xccb0d
xorl %ebp, %ebp
movq %r12, %rdi
movq %r13, %rsi
leaq 0x30(%rsp), %rdx
movq %rbp, %rcx
leaq 0x100(%rsp), %r8
movq %rbx, %r9
callq 0xd0867
cmpl $0x0, 0x100(%rsp)
je 0xccab6
cmpq $0x0, 0x18(%r15)
je 0xccab6
movq %rbp, 0xb0(%rsp)
movq 0x108(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq 0x20(%rsp), %rdi
callq 0xf6883
movq %r12, %rdi
leaq 0xa0(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq *0x18(%r15)
testl %eax, %eax
je 0xccab6
movq %rbx, %rdi
leaq 0x72b4e(%rip), %rsi     # 0x13f5d9
movl $0x5, %edx
callq 0xf6a40
movq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xf6969
movq %rbx, %rdi
leaq 0x7f0ed(%rip), %rsi     # 0x14bb99
movl $0x5, %edx
callq 0xf6a40
movq 0x48(%rsp), %rax
decq %rax
cmpq %rax, %rbp
jge 0xccad7
movq %rbx, %rdi
leaq 0x57ba8(%rip), %rsi     # 0x124675
movl $0x5, %edx
callq 0xf6a40
movq 0x48(%rsp), %rax
cmpq $0x62, %rbp
ja 0xccaee
incq %rbp
cmpq %rax, %rbp
jl 0xcca18
cmpq $0x65, %rax
movq 0x10(%rsp), %rbp
jl 0xccb0d
movq %rbx, %rdi
leaq 0x794ee(%rip), %rsi     # 0x145ff1
movl $0x5, %edx
callq 0xf6a40
movq %rbx, %rdi
leaq 0x72ac0(%rip), %rsi     # 0x13f5d7
movl $0x5, %edx
callq 0xf6a40
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xccb30
callq 0xf6bb0
movl $0x3e8, %esi            # imm = 0x3E8
movq %rbx, %rdi
callq 0xf754a
movq %r12, %rdi
leaq 0x48168(%rip), %rsi     # 0x114caf
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq %r12, %rdi
movl $0x1, %esi
callq 0xe9585
movq 0x10(%r15), %rax
testq %rax, %rax
je 0xccb77
movq %r12, %rdi
movq %r13, %rsi
leaq 0x30(%rsp), %rdx
movq %r15, %rcx
callq *%rax
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe9585
movq 0x8(%rsp), %rcx
incq %rcx
cmpq 0x90(%rsp), %rcx
jne 0xcc4c1
jmp 0xccba7
addq %r14, %rcx
movq %rcx, %rsi
jmp 0xcc70a
cmpl $0x0, 0x8(%rbp)
jne 0xccbbd
movl 0x20(%rbp), %eax
movl %eax, 0x1c(%r13)
cmpl $0x2, 0x24(%rbp)
sete 0x25(%r13)
cmpq $0x0, 0xb8(%rbp)
je 0xccc17
cmpq $0x0, 0xb0(%rbp)
jle 0xccc17
xorl %ebx, %ebx
xorl %r14d, %r14d
movq 0x18(%r12), %rdi
movq 0xb8(%rbp), %rsi
addq %rbx, %rsi
callq 0xeeeb0
movq 0x18(%r12), %rdi
movq 0xb8(%rbp), %rax
leaq (%rax,%rbx), %rdx
addq $0x8, %rdx
movq -0x8(%rdx), %rsi
callq 0xeeebe
incq %r14
addq $0x10, %rbx
cmpq 0xb0(%rbp), %r14
jl 0xccbd6
movq 0x18(%r12), %rdi
leaq 0x70(%rbp), %r15
movq %r15, %rsi
callq 0xeeeb0
movq 0x18(%r12), %rdi
movq 0x70(%rbp), %rsi
leaq 0x78(%rbp), %rdx
callq 0xeeebe
movq %r12, %rdi
leaq 0x100(%rsp), %rsi
callq 0xe958c
movl $0x180, %esi            # imm = 0x180
movq %r12, %rdi
callq 0xe969b
movq %rax, 0x8(%rsp)
pxor %xmm0, %xmm0
movdqa %xmm0, 0xa0(%rsp)
movdqa %xmm0, 0xb0(%rsp)
movdqa %xmm0, 0xc0(%rsp)
movdqa %xmm0, 0xd0(%rsp)
movdqa %xmm0, 0xe0(%rsp)
movq 0x70(%rbp), %rsi
testq %rsi, %rsi
jle 0xccca2
cmpb $0x0, 0x12(%rbp)
je 0xcccde
movq 0x78(%rbp), %r13
jmp 0xcccea
cmpl $0x7, 0x1c(%rbp)
jne 0xcccbc
cmpq $0x1, 0xb0(%rbp)
jne 0xcccbc
cmpb $0x0, 0x18(%rbp)
je 0xccf7b
cmpl $0x7, 0x4(%r13)
jne 0xccd42
cmpb $0x0, 0x1b(%rbp)
je 0xccd88
cmpb $0x0, 0x1b(%rbp)
je 0xcceee
xorl %ebx, %ebx
jmp 0xccd9b
movq 0x18(%r12), %rax
movq 0x18(%rax), %r13
subq %rsi, %r13
leaq -0x5f5e101(%r13), %rax
cmpq $-0x5f5e100, %rax       # imm = 0xFA0A1F00
jae 0xccd00
xorl %ebx, %ebx
jmp 0xccdf9
movq 0x18(%r12), %rdi
movl $0x3, %ecx
leaq 0x477e8(%rip), %rdx     # 0x1144f9
callq 0xf025e
testl %eax, %eax
je 0xccdaa
movq 0x70(%rbp), %r8
xorl %ebx, %ebx
movq %r12, %rdi
movq 0x18(%rsp), %r13
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x72a4f(%rip), %rcx     # 0x13f788
xorl %eax, %eax
callq 0xcdc5c
jmp 0xccd9b
cmpb $0x0, 0x11(%rbp)
je 0xccd88
cmpq $0x0, 0x60(%rbp)
jle 0xccd88
cmpq $0x0, 0x68(%rbp)
jle 0xccd88
cmpl $0x0, 0xc(%r13)
je 0xccccd
cmpl $0x0, 0xc(%rbp)
jne 0xccccd
cmpb $0x0, 0x15(%rbp)
jne 0xccccd
testq %rsi, %rsi
jne 0xccccd
cmpb $0x0, 0x16(%rbp)
jne 0xccccd
xorl %ebx, %ebx
movq %r12, %rdi
leaq 0x72848(%rip), %rsi     # 0x13f5dc
xorl %eax, %eax
callq 0xe9226
xorl %r15d, %r15d
movq $0x0, (%rsp)
xorl %ebp, %ebp
jmp 0xcce0b
movl $0x1, %r9d
movq 0x18(%rsp), %rax
cmpl $0x0, 0xc(%rax)
leaq 0x729ec(%rip), %rcx     # 0x13f7ac
jne 0xccde4
xorl %r9d, %r9d
movq 0x18(%rsp), %rax
cmpl $0x9, 0x4(%rax)
sete %r9b
leaq 0x666e1(%rip), %rcx     # 0x1334ba
leaq 0x729da(%rip), %rax     # 0x13f7ba
cmoveq %rax, %rcx
movq 0x18(%r12), %rdi
movq (%r15), %rsi
xorl %ebx, %ebx
movq %r13, %rdx
xorl %r8d, %r8d
callq 0xf0321
xorl %r15d, %r15d
movq $0x0, (%rsp)
xorl %ebp, %ebp
movq 0x18(%rsp), %r13
xorl %r14d, %r14d
movq 0xa0(%rsp,%r14,8), %rdi
testq %rdi, %rdi
je 0xcce20
callq 0xf0b13
incq %r14
cmpq $0xa, %r14
jne 0xcce0e
movq %rbp, %rdi
callq 0xf28d4
movq (%rsp), %rdi
callq 0xf28d4
movq %r12, %rdi
movq %r15, %rsi
callq 0xea9b3
testl %ebx, %ebx
je 0xcce62
movq %r12, %rdi
movq %r13, %rsi
movq 0x10(%rsp), %rdx
leaq 0x72909(%rip), %rcx     # 0x13f764
xorl %eax, %eax
callq 0xcdf34
movq 0x8(%rsp), %r14
testq %r14, %r14
movl 0x2c(%rsp), %r15d
movq 0x78(%rsp), %rbx
je 0xcce92
movq 0xe0(%r14), %rdi
testq %rdi, %rdi
je 0xcce87
callq 0xfa8d8
movq %r12, %rdi
movq %r14, %rsi
callq 0xe9752
movl 0x100(%rsp), %esi
movq %r12, %rdi
callq 0xe9595
movq 0x10(%rsp), %rbp
movq %r12, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe9585
movq %rbx, %rdi
callq 0xf6bb0
movq 0xb8(%rbp), %rsi
movq %r12, %rdi
callq 0xe9752
movq %r12, %rdi
movq %rbp, %rsi
callq 0xe9752
incl %r15d
movq 0xf8(%rsp), %rbp
testq %rbp, %rbp
jne 0xcc1fd
jmp 0xcda82
cmpb $0x0, 0x14(%r13)
je 0xcccd7
movq %r12, %rdi
leaq 0x726e9(%rip), %rsi     # 0x13f5ec
xorl %eax, %eax
callq 0xe9226
movq %r12, %rdi
movl $0x1, %esi
callq 0xe9585
movb 0x15(%r13), %cl
testb %cl, %cl
leaq 0xbf27c(%rip), %rbx     # 0x18c1a0
leaq 0x5ef3e(%rip), %r14     # 0x12be69
je 0xccf3a
cmpb $0x0, 0x9c(%rbp)
je 0xcd113
cmpb $0x0, 0x99(%rbp)
je 0xccf54
movq %r12, %rdi
leaq 0x72893(%rip), %rsi     # 0x13f7e0
xorl %eax, %eax
callq 0xe9226
cmpl $0x0, 0x1c(%rbp)
jne 0xccf61
movl $0x1, 0x1c(%rbp)
movl 0x1c(%rbp), %ecx
xorl %eax, %eax
cmpl %ecx, (%rax,%rbx)
je 0xccfb5
addq $0x18, %rax
cmpq $0x318, %rax            # imm = 0x318
jne 0xccf66
xorl %eax, %eax
jmp 0xccfb8
movq 0xb8(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq (%rdx,%rsi), %rax
movq 0x18(%r12), %rdi
cmpq 0x18(%rdi), %rax
jg 0xcccd7
xorl %ebx, %ebx
leaq 0x66515(%rip), %rcx     # 0x1334ba
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0xf0321
jmp 0xccd9b
addq %rbx, %rax
movq %rax, 0xa8(%rbp)
cmpl $0x0, 0x2c(%rbp)
jne 0xccfcc
movl $0x1, 0x2c(%rbp)
cmpl $0x0, 0x28(%rbp)
jne 0xccfd9
movl $0x1, 0x28(%rbp)
cmpl $0x0, 0x3c(%rbp)
jne 0xccfe6
movl $0x1, 0x3c(%rbp)
cmpl $0x0, 0x40(%rbp)
jne 0xccff3
movl $0x1, 0x40(%rbp)
cmpl $0x0, 0x44(%rbp)
jne 0xcd000
movl $0x2, 0x44(%rbp)
movq 0x80(%rbp), %rax
testq %rax, %rax
jle 0xcd012
cmpq 0x68(%rbp), %rax
jle 0xcd01d
movq 0x68(%rbp), %rax
movq %rax, 0x80(%rbp)
movl 0x38(%rbp), %ecx
xorl %ebx, %ebx
movl $0x0, %eax
cmpl $0x2, %ecx
jb 0xcd041
cmpl $0x1, 0x2c(%rbp)
jne 0xcd036
xorl %eax, %eax
jmp 0xcd041
movb $0x1, %al
cmpl $0x2, %ecx
jne 0xcd18e
movq 0x8(%rsp), %rcx
movb %al, 0xcd(%rcx)
movq 0x60(%rbp), %rsi
movq %rsi, (%rcx)
movq 0x68(%rbp), %rdx
movq %rdx, 0x8(%rcx)
movq %r12, %rdi
callq 0xf241d
testl %eax, %eax
je 0xccd9b
movq 0xa8(%rbp), %rax
testq %rax, %rax
je 0xcd0de
cmpq $0x0, 0x10(%rax)
je 0xcd0de
cmpb $0x0, 0x16(%rbp)
je 0xcd0ad
cmpb $0x0, 0x15(%rbp)
je 0xcd0a1
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x72565(%rip), %rcx     # 0x13f5ff
xorl %eax, %eax
callq 0xcdc5c
movq 0x8(%rsp), %rax
movb $0x1, 0xcc(%rax)
movq 0xb0(%rbp), %rax
testq %rax, %rax
jle 0xcd1e1
cmpq $0x1, %rax
jne 0xcd1ff
movq 0xb8(%rbp), %rcx
cmpq $0x0, 0x8(%rcx)
jne 0xcd264
jmp 0xcd205
movq %r14, %r9
testq %rax, %rax
je 0xcd0f1
movq 0x8(%rax), %r9
testq %r9, %r9
cmoveq %r14, %r9
movl 0x1c(%rbp), %r8d
xorl %ebx, %ebx
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x76cac(%rip), %rcx     # 0x143db3
xorl %eax, %eax
callq 0xcdf34
jmp 0xccd9b
cmpb $0x0, 0x1a(%rbp)
je 0xccf3a
movl 0x1c(%rbp), %eax
leal -0x1(%rax), %edx
cmpl $0x2, %edx
jb 0xcd133
cmpl $0x8005, %eax           # imm = 0x8005
jne 0xccf3a
movl 0x38(%rbp), %edx
cmpl $0x2, %edx
jne 0xcd198
cmpl $0x4, 0x2c(%rbp)
jne 0xcd198
movl 0x28(%rbp), %esi
cmpl $0x4, %esi
je 0xcd14e
cmpl $0x1, %esi
jne 0xcd198
cmpl $0x2, 0x30(%rbp)
jne 0xcd198
cmpb $0x0, 0x15(%rbp)
je 0xcd198
cmpb $0x1, 0x9b(%rbp)
jne 0xcd198
cmpb $-0x1, %cl
jne 0xcd179
movq %r12, %rdi
leaq 0x72657(%rip), %rsi     # 0x13f7c9
xorl %eax, %eax
callq 0xe9226
movw $0x1001, 0x99(%rbp)     # imm = 0x1001
movl $0x1, 0x28(%rbp)
jmp 0xccf3a
movl $0x1, %ebx
jmp 0xccd9b
cmpb $-0x1, %cl
sete %cl
cmpl $0x1, %edx
setne %dl
orb %cl, %dl
jne 0xccf3a
cmpl $0x1, 0x2c(%rbp)
jne 0xccf3a
cmpl $0x1, 0x30(%rbp)
jne 0xccf3a
cmpl $0x2, %eax
je 0xccf3a
cmpl $0x2, 0x28(%rbp)
jne 0xccf3a
movw $0x401, 0x99(%rbp)      # imm = 0x401
jmp 0xccf3a
xorl %ebx, %ebx
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x72436(%rip), %rcx     # 0x13f629
xorl %eax, %eax
callq 0xcdf34
jmp 0xccd9b
cmpb $0x0, 0x17(%rbp)
jne 0xcd264
leaq -0x1(%rax), %rcx
movq 0xb8(%rbp), %rdx
cmpq $0x2, %rax
movl $0x1, %esi
cmovlq %rsi, %rax
leaq 0x10(%rdx), %rsi
xorl %edi, %edi
cmpq %rcx, %rdi
jge 0xcd231
leaq -0x10(%rsi), %r8
movq %rsi, %r9
jmp 0xcd244
movq 0x18(%r12), %r9
addq $0x18, %r9
movq %rdi, %r8
shlq $0x4, %r8
addq %rdx, %r8
movq (%r9), %r9
subq (%r8), %r9
movq %r9, -0x8(%rsi)
jns 0xcd258
movq $0x0, -0x8(%rsi)
incq %rdi
addq $0x10, %rsi
cmpq %rdi, %rax
jne 0xcd223
movl 0x40(%rbp), %r8d
cmpl $0x1, %r8d
jne 0xcd2c2
cmpb $0x0, 0x99(%rbp)
je 0xcd2d9
movzbl 0x9a(%rbp), %eax
cmpl $0x4, %eax
je 0xcd34a
cmpl $0x10, %eax
jne 0xcd2d9
movq 0x8(%rsp), %r14
movl $0x4, 0xc8(%r14)
cmpb $0x0, 0x19(%rbp)
jne 0xcd384
movq %rbp, %rcx
addq $0xd0, %rcx
movl $0x10, %r8d
movl $0x14, %edi
xorl %esi, %esi
jmp 0xcd37a
xorl %ebx, %ebx
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x72369(%rip), %rcx     # 0x13f63d
jmp 0xcd553
movl 0x30(%rbp), %r8d
cmpq $0x2, %r8
jb 0xcd325
cmpl $0x2, %r8d
je 0xcd38e
cmpl $0x3, %r8d
jne 0xcd4f4
movq 0x8(%rsp), %r14
movl $0x1, 0xc8(%r14)
movb $0x1, 0xd3(%r14)
movl 0x28(%rbp), %eax
cmpl $0x8, %eax
ja 0xcd53d
movl $0x116, %ecx            # imm = 0x116
jmp 0xcd3af
movq 0x8(%rsp), %r14
movb $0x1, 0xcf(%r14)
testq %r8, %r8
sete 0xd0(%r14)
movl $0x1, 0xc8(%r14)
jmp 0xcd39e
movq 0x8(%rsp), %r14
movl $0x1, 0xc8(%r14)
cmpb $0x0, 0x19(%rbp)
jne 0xcd384
movq %rbp, %rcx
addq $0xd0, %rcx
movl $0x4, %r8d
movl $0xa, %edi
movl $0x3, %esi
xorl %edx, %edx
xorl %r9d, %r9d
callq 0xecbbc
movb $0x1, 0xd3(%r14)
jmp 0xcd3b8
movq 0x8(%rsp), %r14
movl $0x3, 0xc8(%r14)
movl 0x28(%rbp), %eax
cmpl $0x10, %eax
ja 0xcd53d
movl $0x10116, %ecx          # imm = 0x10116
btl %eax, %ecx
jae 0xcd53d
cmpl $0x0, 0x2c(%rbp)
jne 0xcd3c8
movl 0xc8(%r14), %eax
movl %eax, 0x2c(%rbp)
movl 0x2c(%rbp), %r8d
cmpl 0xc8(%r14), %r8d
jae 0xcd3ec
xorl %ebx, %ebx
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x722c6(%rip), %rcx     # 0x13f6ad
jmp 0xcd553
cmpl $0xa, %r8d
movl $0xa, %eax
cmovael %eax, %r8d
movl %r8d, 0xc4(%r14)
movl 0x3c(%rbp), %r8d
leal -0x1(%r8), %eax
cmpl $0x2, %eax
jae 0xcd4e0
cmpl $0x5, 0x1c(%rbp)
jne 0xcd422
movq %r12, %rdi
movq %rbp, %rsi
callq 0xd0a72
cmpl $0x2, 0x34(%rbp)
jne 0xcd439
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq %r14, %rcx
callq 0xd0af5
cmpb $0x0, 0xd6(%r12)
je 0xcd48d
cmpb $0x0, 0xcc(%r14)
jne 0xcd48d
cmpb $0x0, 0xcd(%r14)
jne 0xcd48d
cmpl $0x1, 0x1c(%rbp)
jne 0xcd48d
cmpl $0x1, 0x2c(%rbp)
jne 0xcd48d
movl 0x28(%rbp), %edi
cmpq $0x7, %rdi
ja 0xcd48d
imulq (%r14), %rdi
movl $0x8, %esi
callq 0xea80b
movl 0x28(%rbp), %ecx
movl 0x2c(%rbp), %edx
imulq %rdx, %rcx
cqto
idivq %rcx
movq %rax, (%r14)
movzbl 0x9c(%rbp), %ecx
testq %rcx, %rcx
je 0xcd577
movl 0xc4(%r14), %edx
movl 0xc8(%r14), %eax
xorl %esi, %esi
cmpq %rdx, %rax
jae 0xcd577
movzbl 0x9d(%rbp,%rsi), %edi
cmpl $0x1, %edi
je 0xcd561
cmpl $0x2, %edi
je 0xcd55f
incq %rsi
incq %rax
cmpq %rsi, %rcx
jne 0xcd4ad
jmp 0xcd577
xorl %ebx, %ebx
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x721e6(%rip), %rcx     # 0x13f6d8
jmp 0xcd553
movl $0x8, %eax
leaq 0xbefc0(%rip), %rcx     # 0x18c4c0
cmpq %r8, -0x8(%rax,%rcx)
jne 0xcd517
leaq 0xbefb2(%rip), %rcx     # 0x18c4c0
movq (%rax,%rcx), %r9
testq %r9, %r9
jne 0xcd526
addq $0x10, %rax
cmpq $0xe8, %rax
jne 0xcd4f9
movq %r14, %r9
xorl %ebx, %ebx
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x72124(%rip), %rcx     # 0x13f65c
jmp 0xcd107
movl 0x28(%rbp), %r8d
xorl %ebx, %ebx
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x72129(%rip), %rcx     # 0x13f67c
xorl %eax, %eax
callq 0xcdf34
jmp 0xccd9b
xorl %edi, %edi
movb $0x1, 0xd4(%r14)
movb %dil, 0xd5(%r14)
movl %eax, 0xd8(%r14)
movb 0xd4(%r14), %al
testb %al, %al
je 0xcd58d
movl 0xd8(%r14), %ecx
incl %ecx
jmp 0xcd594
movl 0xc8(%r14), %ecx
movl %ecx, 0xc4(%r14)
movl 0xc8(%r14), %r8d
cmpb $0x1, %al
sbbl $-0x1, %r8d
movl 0x2c(%rbp), %r9d
cmpl %r9d, %r8d
jae 0xcd5c8
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x7213a(%rip), %rcx     # 0x13f6fb
xorl %eax, %eax
callq 0xcdc5c
cmpb $0x0, 0xcd(%r14)
movq 0xb0(%rbp), %rax
je 0xcd5fa
movl 0x2c(%rbp), %ecx
cqto
idivq %rcx
movq %rax, 0x28(%r14)
movl 0xc4(%r14), %eax
movl %eax, 0xc0(%r14)
movl $0x1, %eax
jmp 0xcd60c
movq %rax, 0x28(%r14)
movl $0x1, 0xc0(%r14)
movl 0x2c(%rbp), %eax
movl %eax, 0x30(%r14)
cmpb $0x0, 0xcc(%r14)
je 0xcd6b2
movq 0x88(%rbp), %rdi
movl $0x1, %ebx
testq %rdi, %rdi
jle 0xcd6a5
movq 0x90(%rbp), %r8
testq %r8, %r8
jle 0xcd6a5
movq 0xa8(%r12), %rax
cmpq %rax, %rdi
setg %cl
cmpq %rax, %r8
setg %al
xorl %esi, %esi
orb %cl, %al
jne 0xcd6a7
movq %rdi, 0x10(%r14)
movq %r8, 0x18(%r14)
movq (%r14), %rax
addq %rdi, %rax
decq %rax
cqto
idivq %rdi
movb $0x1, %sil
cmpb $0x0, 0xd6(%r12)
movq %rax, 0x80(%rsp)
je 0xcd6a1
movq 0x8(%r14), %rcx
addq %r8, %rcx
decq %rcx
imulq %rdi, %rax
movq %rax, (%r14)
movq %rcx, %rax
cqto
idivq %r8
subq %rdx, %rcx
movq %rcx, 0x8(%r14)
xorl %ebx, %ebx
jmp 0xcd6a7
xorl %esi, %esi
testb %sil, %sil
je 0xccd9b
jmp 0xcd6d3
movq (%r14), %rax
movq %rax, 0x10(%r14)
movq 0x80(%rbp), %rax
movq %rax, 0x18(%r14)
movl $0x1, %eax
movq %rax, 0x80(%rsp)
xorl %ebx, %ebx
movl 0x30(%r14), %eax
imulq 0x10(%r14), %rax
movl 0x28(%rbp), %ecx
imulq %rax, %rcx
leaq 0x7(%rcx), %rax
addq $0xe, %rcx
testq %rax, %rax
cmovnsq %rax, %rcx
sarq $0x3, %rcx
movq %rcx, 0x20(%r14)
leaq 0xe8(%r14), %rsi
leaq 0x108(%r14), %rdx
movq %r12, %rdi
xorl %ecx, %ecx
callq 0xfa6e0
movq 0x18(%r12), %rax
movq %rax, 0xe8(%r14)
xorl %eax, %eax
cmpb $0x0, 0xd4(%r14)
setne %al
xorl %ecx, %ecx
cmpb $0x0, 0xcf(%r14)
sete %cl
leal 0x1(%rax,%rcx,2), %r15d
je 0xcd753
cmpl $0x1, %r15d
jne 0xcd753
cmpl $0x10, 0x28(%rbp)
jne 0xcd753
movb $0x1, 0xce(%r14)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %r12, %rdi
movl %r15d, %ecx
callq 0xf2cab
movq %rax, %rbp
cmpb $0x0, 0xce(%r14)
je 0xcd78a
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %r12, %rdi
movl %r15d, %ecx
callq 0xf2cab
movq %rax, (%rsp)
jmp 0xcd792
movq $0x0, (%rsp)
movq %r12, %rdi
leaq 0x20(%rsp), %rsi
callq 0xe958c
movq $0x0, 0x38(%r14)
cmpq $0x0, 0x28(%r14)
jle 0xcd99b
xorl %ecx, %ecx
movq %rcx, %rax
cqto
idivq 0x80(%rsp)
movq %rdx, %r8
imulq 0x10(%r14), %r8
movq %r8, 0x40(%r14)
imulq 0x18(%r14), %rax
movq %rax, 0x48(%r14)
movl $0xc, %r15d
cmpq 0x8(%r14), %rax
jge 0xcd971
movq 0x10(%rsp), %rdx
movq 0xb8(%rdx), %r10
movq %rcx, %r11
shlq $0x4, %r11
cmpb $0x0, 0xcd(%r14)
leaq 0x787e9(%rip), %r14     # 0x145ff1
leaq 0x773c1(%rip), %rdx     # 0x144bd0
cmoveq %rdx, %r14
movq (%r10,%r11), %r9
movq %r12, %rdi
leaq 0x71f1e(%rip), %rsi     # 0x13f73f
movl %ecx, %edx
movl %r8d, %ecx
movl %eax, %r8d
xorl %eax, %eax
pushq 0x8(%r10,%r11)
pushq %r14
movq 0x18(%rsp), %r14
callq 0xe93cf
addq $0x10, %rsp
movq 0x10(%r14), %rcx
movq 0x18(%r14), %rax
movq %rcx, 0x58(%r14)
cmpb $0x0, 0xcc(%r14)
jne 0xcd866
movq 0x8(%r14), %rsi
subq 0x48(%r14), %rsi
movq %rax, %rdi
callq 0xea792
movq %rax, 0x50(%r14)
movl 0x30(%r14), %ecx
imulq 0x58(%r14), %rcx
movq 0x10(%rsp), %rdx
movl 0x28(%rdx), %edx
imulq %rcx, %rdx
leaq 0x7(%rdx), %rcx
addq $0xe, %rdx
testq %rcx, %rcx
cmovnsq %rcx, %rdx
sarq $0x3, %rdx
movq %rdx, 0x60(%r14)
testq %rax, %rax
jle 0xcd971
cmpl $0x0, 0xc0(%r14)
je 0xcd920
xorl %r14d, %r14d
movq 0xa0(%rsp,%r14,8), %rdi
testq %rdi, %rdi
je 0xcd8c5
callq 0xf1a5f
movq 0x8(%rsp), %r15
jmp 0xcd904
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xf0faf
movq %rax, 0x98(%rsp)
movq %rax, 0xa0(%rsp,%r14,8)
movq %rax, %rdi
callq 0xf0e3f
movq 0x8(%rsp), %r15
movq 0x20(%r15), %rsi
imulq 0x18(%r15), %rsi
movq 0x98(%rsp), %rdi
callq 0xf1066
movq 0xa0(%rsp,%r14,8), %rax
movq %rax, 0x70(%r15,%r14,8)
incq %r14
movl 0xc0(%r15), %eax
cmpq %rax, %r14
jb 0xcd8ac
movq %r12, %rdi
movq %r13, %rsi
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %r14
movq %r14, %rcx
callq 0xd0b96
xorl %r15d, %r15d
testl %eax, %eax
jne 0xcd953
cmpq $0x0, 0x38(%r14)
movl $0x2, %r15d
movl $0xc, %ecx
cmovgl %ecx, %r15d
testl %eax, %eax
je 0xcd971
movq %r13, %rdi
movq 0x10(%rsp), %rsi
movq %r14, %rdx
movq %rbp, %rcx
movq (%rsp), %r8
callq 0xd0d99
xorl %r15d, %r15d
testl %r15d, %r15d
jne 0xcd98d
movq 0x38(%r14), %rcx
incq %rcx
movq %rcx, 0x38(%r14)
cmpq 0x28(%r14), %rcx
jl 0xcd7b4
jmp 0xcd99b
cmpl $0x2, %r15d
jne 0xcd99b
xorl %r15d, %r15d
jmp 0xcce0b
movl 0x20(%rsp), %esi
movq %r12, %rdi
callq 0xe9595
movq %r12, %rdi
callq 0xea9a9
movq %rax, %r15
movq 0x10(%rsp), %rax
movl 0x20(%rax), %eax
addl $-0x5, %eax
cmpl $0x3, %eax
ja 0xcd9da
movq %rbp, %rdi
callq 0xf3b1a
cmpq $0x0, (%rsp)
je 0xcd9da
movq (%rsp), %rdi
callq 0xf3b1a
movq 0x10(%rsp), %rax
movl 0x20(%rax), %eax
cmpl $0x7, %eax
ja 0xcda09
movl $0xcc, %ecx
btl %eax, %ecx
jae 0xcda09
movq %rbp, %rdi
callq 0xf3a1b
cmpq $0x0, (%rsp)
je 0xcda09
movq (%rsp), %rdi
callq 0xf3a1b
movq 0x10(%rsp), %rcx
movl 0x20(%rcx), %eax
addl $-0x3, %eax
xorl %r13d, %r13d
testl $0xfffffffa, %eax       # imm = 0xFFFFFFFA
sete %r13b
shll $0x2, %r13d
cmpb $0x0, 0x13(%rcx)
je 0xcda48
orl $0x1, %r13d
movq %r12, %rdi
movq %r15, %rsi
leaq 0x5d40b(%rip), %rdx     # 0x12ae46
xorl %ecx, %ecx
movl $0x5, %r8d
callq 0xeac7c
movq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0xd1144
movdqu 0xc0(%r14), %xmm0
movdqu %xmm0, 0x68(%r15)
orl $0x2, %r13d
movq %rbp, %rdi
movq (%rsp), %rsi
movq %r15, %rdx
movl %r13d, %ecx
callq 0xf2586
jmp 0xcce06
movl 0x48(%r13), %edx
movl 0x4c(%r13), %ecx
leaq 0x6ecbb(%rip), %rsi     # 0x13c74c
movq %r12, %rdi
xorl %eax, %eax
callq 0xe9226
movq 0x70(%rsp), %rcx
testq %rcx, %rcx
je 0xcdaeb
cmpb $0x0, 0x24(%r13)
je 0xcdab0
orb $0x8, 0x40(%rcx)
cmpb $0x0, 0x25(%r13)
je 0xcdabb
orb $0x10, 0x40(%rcx)
movl 0x1c(%r13), %eax
testl %eax, %eax
je 0xcdaca
orb $0x20, 0x40(%rcx)
movl %eax, 0x44(%rcx)
movl 0x20(%r13), %eax
testl %eax, %eax
je 0xcdad9
orb $0x40, 0x40(%rcx)
movl %eax, 0x48(%rcx)
cmpl $0x8, 0x4(%r13)
jne 0xcdaeb
orb $-0x80, 0x40(%rcx)
movl 0x78(%r13), %eax
movl %eax, 0x4c(%rcx)
testq %r13, %r13
je 0xcdb13
movq 0x28(%r13), %rsi
movq %r12, %rdi
callq 0xe9752
movq 0x40(%r13), %rsi
movq %r12, %rdi
callq 0xeb864
movq %r12, %rdi
movq %r13, %rsi
callq 0xe9752
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq