// File: /workspace/github_c_makefile_star2_O3/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 $0xf8, %rsp
movq %rsi, %rbx
movq %rdi, %r13
movl $0xa8, %esi
callq 0xe8b2b
movq %rax, %r15
testq %rbx, %rbx
je 0xcb1a4
movq %rbx, 0x70(%r15)
leaq 0x71810(%rip), %rsi     # 0x13c9bb
movq %r13, %rdi
movl $0x1, %edx
callq 0xe9bd0
movb %al, 0x14(%r15)
leaq 0x71804(%rip), %rsi     # 0x13c9c7
movq %r13, %rdi
movl $0xff, %edx
callq 0xe9bd0
movb %al, 0x15(%r15)
movq %r13, %rdi
movq %rbx, %rsi
movl $0x41, %edx
callq 0xea4d9
testl %eax, %eax
je 0xcb202
movabsq $0xa00000000, %rax      # imm = 0xA00000000
movq %rax, (%r15)
leaq 0x7c(%r15), %rdi
leaq 0x717d2(%rip), %rsi     # 0x13c9d2
jmp 0xcb232
movq %r13, %rdi
movq %rbx, %rsi
movl $0x46, %edx
callq 0xea4d9
testl %eax, %eax
je 0xcb38d
movabsq $0xb00000001, %rax      # imm = 0xB00000001
movq %rax, (%r15)
leaq 0x7c(%r15), %rdi
leaq 0x717b0(%rip), %rsi     # 0x13c9e2
movl $0x28, %edx
callq 0xe8219
movq %r13, %rdi
movq %rbx, %rsi
movl $0x4e, %edx
callq 0xea4d9
testl %eax, %eax
je 0xcb26d
leaq 0x7c(%r15), %rdi
leaq 0x7179a(%rip), %rsi     # 0x13c9f5
movl $0x28, %edx
callq 0xe8219
movl $0x9, 0x4(%r15)
movq %r13, %rdi
movq %rbx, %rsi
movl $0x4d, %edx
callq 0xea4d9
testl %eax, %eax
je 0xcb2a5
cmpl $0x1, 0x4(%r15)
jne 0xcb2a5
leaq 0x7c(%r15), %rdi
leaq 0x71772(%rip), %rsi     # 0x13ca05
movl $0x28, %edx
callq 0xe8219
movl $0x8, 0x4(%r15)
movq %r13, %rdi
movq %rbx, %rsi
movl $0x45, %edx
callq 0xea4d9
testl %eax, %eax
je 0xcb2d9
movl $0x1, 0xc(%r15)
movq %r15, %rdi
addq $0x7c, %rdi
leaq 0x6070c(%rip), %rsi     # 0x12b9db
movl $0x28, %edx
callq 0xe8219
movl 0x4(%r15), %eax
cmpl $0x1, %eax
jne 0xcb3c2
movq 0x18(%r13), %rdi
leaq 0x90(%rsp), %r14
movl $0x8, %edx
movl $0x14, %ecx
movq %r14, %rsi
callq 0xee8d4
movdqa (%r14), %xmm0
pcmpeqb 0x7137f(%rip), %xmm0    # 0x13c690
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0xcb371
movabsq $0x494420584f524558, %rax # imm = 0x494420584F524558
xorq 0x90(%rsp), %rax
movzwl 0x98(%rsp), %ecx
xorq $0x4646, %rcx           # imm = 0x4646
orq %rax, %rcx
je 0xcb3a1
movabsq $0x65646e6574586520, %rax # imm = 0x65646E6574586520
xorq 0x90(%rsp), %rax
movzwl 0x98(%rsp), %ecx
xorq $0x2064, %rcx           # imm = 0x2064
orq %rax, %rcx
jne 0xcb3be
leaq 0x7177a(%rip), %rsi     # 0x13cae9
jmp 0xcb3a8
movl 0xa0(%rsp), %eax
cmpl $0x4d494238, %eax       # imm = 0x4D494238
je 0xcb3b9
cmpl $0x43545049, %eax       # imm = 0x43545049
jne 0xcb31c
movb $0x1, 0x17(%r15)
jmp 0xcb3be
movq %r13, %rdi
movq %r15, %rsi
callq 0xccf80
movl %eax, 0x4(%r15)
jmp 0xcb23c
leaq 0x71716(%rip), %rsi     # 0x13cabe
movq %r13, %rdi
xorl %eax, %eax
callq 0xe8617
movb $0x1, 0x9(%r15)
jmp 0xcb3be
movb $0x1, 0x18(%r15)
movl 0x4(%r15), %eax
decl %eax
cmpl $0x6, %eax
ja 0xcb43b
leaq 0x71360(%rip), %rcx     # 0x13c730
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpb $0x0, 0x9(%r15)
je 0xcb42c
leaq 0x71622(%rip), %rsi     # 0x13ca09
jmp 0xcb433
leaq 0x71644(%rip), %rsi     # 0x13ca34
jmp 0xcb433
leaq 0x7161d(%rip), %rsi     # 0x13ca16
jmp 0xcb433
leaq 0x71626(%rip), %rsi     # 0x13ca28
jmp 0xcb433
leaq 0x71603(%rip), %rsi     # 0x13ca0e
movq %r13, %rdi
callq 0xeb125
movb $0x1, 0x8(%r15)
jmp 0xcb43b
leaq 0x71626(%rip), %rsi     # 0x13ca47
jmp 0xcb433
leaq 0x71621(%rip), %rsi     # 0x13ca4b
jmp 0xcb433
leaq 0x7f30b(%rip), %rsi     # 0x14a73e
movq %r13, %rdi
callq 0xeb125
movl 0x4(%r15), %eax
testl %eax, %eax
jne 0xcb45d
leaq 0x71609(%rip), %rcx     # 0x13ca53
movq %r13, %rdi
movq %r15, %rsi
xorl %edx, %edx
xorl %eax, %eax
callq 0xcd067
movl 0x4(%r15), %eax
cmpl $0x1, %eax
jne 0xcb477
leaq 0x71622(%rip), %rsi     # 0x13ca8b
movq %r13, %rdi
xorl %edx, %edx
callq 0xe9bd0
movb %al, 0x16(%r15)
cmpb $0x0, 0x8(%r15)
je 0xcb490
movaps 0x7122b(%rip), %xmm0    # 0x13c6b0
jne 0xcb499
movaps 0x71232(%rip), %xmm1    # 0x13c6c0
jmp 0xcb4a0
movaps 0x71209(%rip), %xmm0    # 0x13c6a0
je 0xcb487
movaps 0x71230(%rip), %xmm1    # 0x13c6d0
movups %xmm0, 0x50(%r15)
movups %xmm1, 0x60(%r15)
movl $0x1, 0x38(%r15)
movl 0x4(%r15), %eax
cmpl $0xb, %eax
movq %rbx, 0x88(%rsp)
je 0xcb4da
cmpl $0xa, %eax
jne 0xcb508
movl $0xe, %edx
movq %r13, %rdi
movq %r15, %rsi
movl $0x8, %ecx
jmp 0xcb4f8
movl $0x8, %edx
movq %r13, %rdi
movq %r15, %rsi
callq 0xcd2f4
movq %r13, %rdi
movq %r15, %rsi
movq %rax, %rdx
movl $0xa, %ecx
movl $0x1, %r8d
callq 0xcd1d6
jmp 0xcb5ca
cmpl $0x0, 0xc(%r15)
leaq 0x79b9c(%rip), %rax     # 0x1450b0
leaq 0x60321(%rip), %rdx     # 0x12b83c
cmoveq %rax, %rdx
leaq 0x715f4(%rip), %rsi     # 0x13cb1a
xorl %ebx, %ebx
movq %r13, %rdi
xorl %ecx, %ecx
xorl %eax, %eax
callq 0xe8617
movq %r13, %rdi
movl $0x1, %esi
callq 0xe8a15
cmpl $0x0, (%r15)
leaq 0x689a8(%rip), %rax     # 0x133ef4
leaq 0x6899a(%rip), %rdx     # 0x133eed
cmoveq %rax, %rdx
leaq 0x68979(%rip), %rsi     # 0x133ed7
movq %r13, %rdi
xorl %eax, %eax
callq 0xe8617
xorl %eax, %eax
cmpb $0x0, 0x8(%r15)
setne %al
leaq 0x4(,%rax,4), %rdx
movq %r13, %rdi
movq %r15, %rsi
callq 0xcd2f4
movq %rax, %r14
leaq 0x715a5(%rip), %rsi     # 0x13cb34
movq %r13, %rdi
movl %r14d, %edx
xorl %eax, %eax
callq 0xe8617
cmpl $0x9, 0x4(%r15)
movl $0x6, %ecx
cmovnel %ebx, %ecx
movq %r13, %rdi
movq %r15, %rsi
movq %r14, %rdx
movl $0x1, %r8d
callq 0xcd1d6
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe8a15
movq 0x28(%r15), %rax
testq %rax, %rax
je 0xcce93
movl $0x0, 0x4c(%rsp)
movq %r13, 0x28(%rsp)
movq %r15, 0x30(%rsp)
movslq 0x34(%r15), %rcx
testq %rcx, %rcx
jle 0xcce93
movq %rcx, %rdx
shlq $0x4, %rdx
movq -0x10(%rax,%rdx), %rbx
movb -0x8(%rax,%rdx), %bpl
movb -0x7(%rax,%rdx), %r14b
leal -0x1(%rcx), %eax
movl %eax, 0x34(%r15)
testq %rbx, %rbx
je 0xcce93
movl $0x510, %esi            # imm = 0x510
movq %r13, %rdi
callq 0xe8b2b
movq %rax, %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x50(%rax)
movl 0x4c(%rsp), %eax
movl %eax, 0x8(%r12)
movq %rbx, (%r12)
movb %bpl, 0x10(%r12)
testb %r14b, %r14b
je 0xcb677
movl 0x4c(%r15), %ecx
leal 0x1(%rcx), %eax
movl %eax, 0x4c(%r15)
movl %ecx, 0xc(%r12)
leaq 0x4d0(%r12), %rdi
movl $0x14, %esi
leaq 0x6acae(%rip), %rdx     # 0x13631c
xorl %eax, %eax
callq 0xe8193
jmp 0xcb699
movl $0xffffffff, 0xc(%r12)  # imm = 0xFFFFFFFF
leaq 0x4d0(%r12), %rdi
movl $0x14, %edx
leaq 0x5d4ce(%rip), %rsi     # 0x128b62
callq 0xe8219
movq %r15, %rbx
leaq 0x4e4(%r12), %rdi
leaq 0x4d0(%r12), %r15
movq (%r12), %r8
movl $0x28, %esi
leaq 0x714f2(%rip), %rdx     # 0x13cbae
movq %r15, %rcx
xorl %eax, %eax
callq 0xe8193
xorl %eax, %eax
cmpl $0x7, 0x4(%rbx)
sete %al
incl %eax
movl %eax, 0x38(%rbx)
movzbl 0x10(%r12), %eax
decl %eax
cmpl $0x8, %eax
ja 0xcb70d
leaq 0x71064(%rip), %rcx     # 0x13c74c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
leaq 0x714c3(%rip), %r8      # 0x13cbb9
jmpq *%rax
movq 0x30(%rsp), %rax
movl $0x1, 0x38(%rax)
leaq 0x714d1(%rip), %r8      # 0x13cbdc
jmp 0xcb759
leaq 0x7999c(%rip), %r8      # 0x1450b0
jmp 0xcb759
leaq 0x714f3(%rip), %r8      # 0x13cc10
jmp 0xcb759
leaq 0x714fb(%rip), %r8      # 0x13cc21
jmp 0xcb759
movq 0x30(%rsp), %rax
movl $0x1, 0x38(%rax)
leaq 0x714ad(%rip), %r8      # 0x13cbe8
jmp 0xcb759
movq 0x30(%rsp), %rax
movl $0x1, 0x38(%rax)
leaq 0x714b5(%rip), %r8      # 0x13cc05
jmp 0xcb759
leaq 0x7146a(%rip), %r8      # 0x13cbc3
movq (%r12), %rcx
movq %r13, %rdi
leaq 0x714c9(%rip), %rsi     # 0x13cc30
movq %r15, %rdx
xorl %eax, %eax
callq 0xe8617
movq %r13, %rdi
movl $0x1, %esi
callq 0xe8a15
movq (%r12), %r8
cmpq $0x8, %r8
jl 0xcb7ab
movq 0x18(%r13), %rdi
cmpq 0x18(%rdi), %r8
jge 0xcb7ab
movq 0x30(%rsp), %r15
cmpb $0x0, 0x8(%r15)
movl (%r15), %edx
movq %r8, %rsi
je 0xcb7c8
callq 0xef065
jmp 0xcb7cd
movq %r13, %rdi
movq 0x30(%rsp), %r15
movq %r15, %rsi
xorl %edx, %edx
leaq 0x713b2(%rip), %rcx     # 0x13cb71
xorl %eax, %eax
callq 0xcd067
jmp 0xcb805
callq 0xeef43
movq %rax, %rbx
movq %r13, %rdi
leaq 0x70b6f(%rip), %rsi     # 0x13c349
movl %ebx, %edx
xorl %eax, %eax
callq 0xe8617
cmpl $0xc9, %ebx
jl 0xcb80c
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x71445(%rip), %rcx     # 0x13cc40
movl %ebx, %r8d
xorl %eax, %eax
callq 0xcd067
xorl %ebx, %ebx
jmp 0xcc2c6
movq 0x50(%r15), %rax
addq (%r12), %rax
movslq %ebx, %rdx
imulq 0x58(%r15), %rdx
addq %rax, %rdx
movq %r13, %rdi
movq %r15, %rsi
callq 0xcd2f4
movq %rax, %r14
testq %rax, %rax
leaq 0x79879(%rip), %rcx     # 0x1450b0
leaq 0x76136(%rip), %rax     # 0x141974
cmoveq %rax, %rcx
movq %r13, %rdi
leaq 0x71422(%rip), %rsi     # 0x13cc6e
movq %r14, %rdx
xorl %eax, %eax
callq 0xe8617
movq %r13, %rdi
movq %r15, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0xcd1d6
movq %r13, %rdi
callq 0xf6410
movq %rax, 0x8(%rsp)
movq %rbx, 0x18(%rsp)
testl %ebx, %ebx
leaq 0x58(%rsp), %rbx
leaq 0xbb9c4(%rip), %r14     # 0x187250
movq %r12, 0x10(%rsp)
jle 0xcbf02
movq 0x18(%rsp), %rax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq %rax, 0x18(%rsp)
xorl %ebp, %ebp
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rbx)
movups %xmm0, 0x10(%rbx)
movups %xmm0, (%rbx)
movq %r12, 0x50(%rsp)
movq 0x18(%r13), %rdi
movq 0x50(%r15), %rax
addq (%r12), %rax
movq 0x58(%r15), %rsi
imulq %rbp, %rsi
addq %rax, %rsi
movl (%r15), %edx
callq 0xeef43
movl %eax, 0x58(%rsp)
movq 0x18(%r13), %rdi
movq (%r12), %rax
movq 0x58(%r15), %rcx
imulq %rbp, %rcx
addq 0x50(%r15), %rax
leaq (%rcx,%rax), %rsi
addq $0x2, %rsi
movl (%r15), %edx
callq 0xeef43
movl %eax, 0x5c(%rsp)
movq (%r12), %rax
movq 0x58(%r15), %rcx
imulq %rbp, %rcx
addq 0x50(%r15), %rax
leaq (%rcx,%rax), %rdx
addq $0x4, %rdx
movq %r13, %rdi
movq %r15, %rsi
callq 0xcd2f4
movabsq $0x100000000000, %rcx   # imm = 0x100000000000
cmpq %rcx, %rax
cmovgeq %rcx, %rax
movq %rax, 0x68(%rsp)
movl 0x5c(%rsp), %edx
addl $-0x3, %edx
movl $0x1, %ecx
cmpl $0xf, %edx
ja 0xcb95d
movl %edx, %ecx
leaq 0x70fd7(%rip), %rdx     # 0x13c930
movq (%rdx,%rcx,8), %rcx
movq %rcx, 0x78(%rsp)
imulq %rcx, %rax
movq %rax, 0x80(%rsp)
movq 0x50(%r15), %rcx
addq (%r12), %rcx
movq 0x58(%r15), %rdx
imulq %rbp, %rdx
addq %rcx, %rdx
addq 0x60(%r15), %rdx
cmpq 0x68(%r15), %rax
jle 0xcb9a1
movq %r13, %rdi
movq %r15, %rsi
callq 0xcd2f4
movq %rax, %rdx
movq 0x80(%rsp), %rax
leaq 0x70dc8(%rip), %r8      # 0x13c770
movq %rdx, 0x70(%rsp)
addq %rdx, %rax
movq 0x18(%r13), %rcx
movq 0x18(%rcx), %rcx
leaq 0x400(%rcx), %rsi
cmpq %rsi, %rax
jle 0xcb9f0
subq %rdx, %rcx
jge 0xcb9cf
xorl %eax, %eax
xorl %ecx, %ecx
jmp 0xcb9e3
movq 0x78(%rsp), %rsi
movq %rcx, %rax
cqto
idivq %rsi
movq %rax, %rcx
imulq %rsi, %rcx
movq %rax, 0x68(%rsp)
movq %rcx, 0x80(%rsp)
movl 0x58(%rsp), %eax
movl 0x4(%r15), %ecx
movzbl 0x10(%r12), %edx
xorl %r12d, %r12d
movq %rbp, (%rsp)
cmpl %eax, (%r12,%r14)
jne 0xcba72
movl 0x4(%r12,%r14), %esi
leal -0x3(%rdx), %edi
cmpl $0x7, %edi
ja 0xcba29
movslq (%r8,%rdi,4), %rdi
addq %r8, %rdi
jmpq *%rdi
testb $0x20, %sil
je 0xcba72
jmp 0xcba8d
testb $0x1, %sil
je 0xcba8d
cmpl $0x7, %ecx
jne 0xcba3e
movl %esi, %edi
andl $0x400, %edi            # imm = 0x400
jne 0xcba8d
cmpl $0x3, %ecx
je 0xcba81
cmpl $0x9, %ecx
je 0xcba55
cmpl $0x8, %ecx
jne 0xcba72
btl $0xb, %esi
jae 0xcba72
jmp 0xcba8d
btl $0xc, %esi
jae 0xcba72
jmp 0xcba8d
testb $0x40, %sil
je 0xcba72
jmp 0xcba8d
btl $0xd, %esi
jae 0xcba72
jmp 0xcba8d
testw %si, %si
js 0xcba8d
addq $0x20, %r12
cmpq $0x4f20, %r12           # imm = 0x4F20
jne 0xcba05
jmp 0xcba9a
testl %edx, %edx
jne 0xcba72
andl $0x4000, %esi           # imm = 0x4000
je 0xcba72
movl $0x1, 0x60(%rsp)
addq %r14, %r12
jmp 0xcbaa1
leaq 0xbb78f(%rip), %r12     # 0x187230
movq 0x8(%rsp), %rbp
movq %rbp, %rdi
callq 0xf6423
movq 0x8(%r12), %r8
movl 0x58(%rsp), %ecx
movl 0x5c(%rsp), %r9d
movl 0x68(%rsp), %r10d
movq %rbp, %rdi
movl $0x2, %esi
leaq 0x711b8(%rip), %rdx     # 0x13cc88
xorl %eax, %eax
pushq 0x70(%rsp)
pushq %r10
callq 0xf6653
addq $0x10, %rsp
cmpl $0x0, (%r13)
movq (%rsp), %rbp
jle 0xcbe98
movl 0x4(%r12), %ecx
testb $0x8, %cl
jne 0xcbe98
cmpq $0x0, 0x68(%rsp)
jle 0xcbe98
movl 0x5c(%rsp), %eax
cmpl $0x81, %eax
je 0xcbb1e
cmpl $0x2, %eax
jne 0xcbd04
testb $0x4, %cl
jne 0xcbbc0
movl $0x2, %r9d
cmpl $0x81, %eax
je 0xcbb38
movl 0x38(%r15), %r9d
movq 0x18(%r13), %rdi
movq 0x70(%rsp), %rsi
movq 0x80(%rsp), %rdx
movl $0x1f4, %ecx            # imm = 0x1F4
movl $0x1, %r8d
callq 0xef87c
movq %rax, %r14
movq 0x8(%rsp), %rbp
movq %rbp, %rdi
leaq 0x73e67(%rip), %rsi     # 0x13f9d2
movl $0x5, %edx
callq 0xf65e3
movq 0x18(%r14), %rsi
movq %rbp, %rdi
callq 0xf6509
cmpl $0x0, 0x30(%r14)
je 0xcbb9c
movq %rbp, %rdi
leaq 0x7a9cf(%rip), %rsi     # 0x146561
movl $0x5, %edx
callq 0xf65e3
movq %rbp, %rdi
leaq 0x73e30(%rip), %rsi     # 0x13f9d6
movl $0x5, %edx
callq 0xf65e3
movq %r13, %rdi
movq %r14, %rsi
callq 0xefaca
jmp 0xcbcf4
movl $0x2, 0x20(%rsp)
cmpl $0x81, %eax
je 0xcbbd7
movl 0x38(%r15), %eax
movl %eax, 0x20(%rsp)
movq 0x80(%rsp), %rax
cmpq $0x1f5, %rax            # imm = 0x1F5
movl $0x1f4, %r15d           # imm = 0x1F4
movq %rax, 0x40(%rsp)
cmovlq %rax, %r15
addq 0x70(%rsp), %r15
movq 0x8(%rsp), %rdi
leaq 0x73dca(%rip), %rsi     # 0x13f9cf
movl $0x5, %edx
callq 0xf65e3
xorl %ebx, %ebx
movq 0x70(%rsp), %r13
movq 0x28(%rsp), %rbp
movq 0x18(%rbp), %rdi
movq %r15, %rcx
subq %r13, %rcx
movq %r13, %rsi
movq %rcx, %rdx
movl $0x1, %r8d
movl 0x20(%rsp), %r9d
callq 0xef87c
movq %rax, %r14
testb $0x1, %bl
movq 0x8(%rsp), %rbp
je 0xcbc5c
movq %rbp, %rdi
leaq 0x58c43(%rip), %rsi     # 0x124895
movl $0x5, %edx
callq 0xf65e3
movq %rbp, %rdi
leaq 0x7e043(%rip), %rbx     # 0x149ca9
movq %rbx, %rsi
movl $0x5, %edx
callq 0xf65e3
movq 0x18(%r14), %rsi
movq %rbp, %rdi
callq 0xf6509
movq %rbp, %rdi
movq %rbx, %rsi
movl $0x5, %edx
callq 0xf65e3
addq (%r14), %r13
movq 0x28(%rsp), %rbp
movq %rbp, %rdi
movq %r14, %rsi
callq 0xefaca
movb $0x1, %bl
cmpq %r15, %r13
jl 0xcbc1b
cmpq $0x1f5, 0x40(%rsp)      # imm = 0x1F5
movq 0x8(%rsp), %rbx
jl 0xcbcd1
movq %rbx, %rdi
leaq 0x7a89a(%rip), %rsi     # 0x146561
movl $0x5, %edx
callq 0xf65e3
movq %rbx, %rdi
leaq 0x73cfc(%rip), %rsi     # 0x13f9d7
movl $0x5, %edx
callq 0xf65e3
movq 0x28(%rsp), %r13
movq 0x30(%rsp), %r15
leaq 0x58(%rsp), %rbx
leaq 0xbb555(%rip), %r14     # 0x187250
movq (%rsp), %rbp
jmp 0xcbe98
leal -0x3(%rax), %ecx
cmpl $0xb, %ecx
jb 0xcbd23
cmpl $0x12, %eax
ja 0xcbe98
movl $0x70002, %ecx          # imm = 0x70002
btl %eax, %ecx
jae 0xcbe98
movq 0x8(%rsp), %rbp
movq %rbp, %rdi
leaq 0x73c9d(%rip), %rsi     # 0x13f9cf
movl $0x5, %edx
callq 0xf65e3
movq %r15, 0x90(%rsp)
leaq 0x50(%rsp), %rax
movq %rax, 0x98(%rsp)
movq %r13, %rdi
callq 0xf6410
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x68(%rsp)
jle 0xcbe71
xorl %ebp, %ebp
movq %r13, %rdi
movq %r15, %rsi
leaq 0x50(%rsp), %rdx
movq %rbp, %rcx
leaq 0xe0(%rsp), %r8
movq 0x8(%rsp), %r9
callq 0xcfc74
cmpl $0x0, 0xe0(%rsp)
je 0xcbe12
movq 0x18(%r12), %rbx
testq %rbx, %rbx
je 0xcbe12
movq %rbp, 0xa0(%rsp)
movq 0xe8(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf6423
movq %r13, %rdi
leaq 0x90(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq *%rbx
testl %eax, %eax
je 0xcbe12
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
leaq 0x73bf2(%rip), %rsi     # 0x13f9d9
movl $0x5, %edx
callq 0xf65e3
movq 0x38(%rsp), %rsi
movq %rbx, %rdi
callq 0xf6509
movq %rbx, %rdi
leaq 0x803b1(%rip), %rsi     # 0x14c1b9
movl $0x5, %edx
callq 0xf65e3
movq 0x68(%rsp), %rax
leaq -0x1(%rax), %rcx
cmpq %rcx, %rbp
jge 0xcbe3b
movq 0x8(%rsp), %rdi
leaq 0x58a69(%rip), %rsi     # 0x124895
movl $0x5, %edx
callq 0xf65e3
movq 0x68(%rsp), %rax
cmpq $0x62, %rbp
ja 0xcbe4d
incq %rbp
cmpq %rax, %rbp
jl 0xcbd6c
cmpq $0x65, %rax
leaq 0x58(%rsp), %rbx
movq 0x8(%rsp), %rbp
jl 0xcbe71
movq %rbp, %rdi
leaq 0x7a6fa(%rip), %rsi     # 0x146561
movl $0x5, %edx
callq 0xf65e3
movq %rbp, %rdi
leaq 0x73b5c(%rip), %rsi     # 0x13f9d7
movl $0x5, %edx
callq 0xf65e3
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
movq (%rsp), %rbp
je 0xcbe98
callq 0xf6753
movl $0x3e8, %esi            # imm = 0x3E8
movq 0x8(%rsp), %rdi
callq 0xf70e9
movq %r13, %rdi
leaq 0x48eae(%rip), %rsi     # 0x114d5f
movq %rax, %rdx
xorl %eax, %eax
callq 0xe8617
movq %r13, %rdi
movl $0x1, %esi
callq 0xe8a15
movq 0x10(%r12), %rax
testq %rax, %rax
je 0xcbee2
movq %r13, %rdi
movq %r15, %rsi
leaq 0x50(%rsp), %rdx
movq %r12, %rcx
callq *%rax
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe8a15
incq %rbp
cmpq 0x18(%rsp), %rbp
movq 0x10(%rsp), %r12
jne 0xcb8a8
cmpl $0x0, 0x8(%r12)
jne 0xcbf1e
movl 0x20(%r12), %eax
movl %eax, 0x1c(%r15)
cmpl $0x2, 0x24(%r12)
sete 0x25(%r15)
cmpq $0x0, 0xb8(%r12)
je 0xcbf7b
cmpq $0x0, 0xb0(%r12)
jle 0xcbf7b
xorl %ebx, %ebx
xorl %r14d, %r14d
movq 0x18(%r13), %rdi
movq 0xb8(%r12), %rsi
addq %rbx, %rsi
callq 0xee89c
movq 0x18(%r13), %rdi
movq 0xb8(%r12), %rax
leaq (%rax,%rbx), %rdx
addq $0x8, %rdx
movq -0x8(%rdx), %rsi
callq 0xee8aa
incq %r14
addq $0x10, %rbx
cmpq 0xb0(%r12), %r14
jl 0xcbf39
movq 0x18(%r13), %rdi
movq %r12, %rbx
addq $0x70, %r12
movq %r12, %rsi
callq 0xee89c
movq 0x18(%r13), %rdi
movq 0x70(%rbx), %rsi
leaq 0x78(%rbx), %rdx
callq 0xee8aa
movq %r13, %rdi
leaq 0xe0(%rsp), %rsi
callq 0xe8a1c
movl $0x180, %esi            # imm = 0x180
movq %r13, %rdi
callq 0xe8b2b
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
movaps %xmm0, 0xa0(%rsp)
movaps %xmm0, 0xb0(%rsp)
movaps %xmm0, 0xc0(%rsp)
movaps %xmm0, 0xd0(%rsp)
movq 0x70(%rbx), %rsi
testq %rsi, %rsi
movq %rax, 0x20(%rsp)
jle 0xcc008
cmpb $0x0, 0x12(%rbx)
je 0xcc0e7
movq 0x78(%rbx), %r13
jmp 0xcc0f2
movq %rax, %rbp
cmpl $0x7, 0x1c(%rbx)
movq %rbx, %r12
jne 0xcc02b
cmpq $0x1, 0xb0(%r12)
jne 0xcc02b
cmpb $0x0, 0x18(%r12)
je 0xcc30c
cmpl $0x7, 0x4(%r15)
jne 0xcc16e
cmpb $0x0, 0x1b(%r12)
je 0xcc1be
cmpb $0x0, 0x1b(%r12)
jne 0xcc1cf
cmpb $0x0, 0x14(%r15)
je 0xcc1cf
movq %r13, %rdi
leaq 0x73989(%rip), %rsi     # 0x13f9ec
xorl %eax, %eax
callq 0xe8617
movq %r13, %rdi
movl $0x1, %esi
callq 0xe8a15
movb 0x15(%r15), %al
testb %al, %al
leaq 0xc011c(%rip), %rbx     # 0x18c1a0
je 0xcc095
cmpb $0x0, 0x9c(%r12)
je 0xcc4a7
cmpb $0x0, 0x99(%r12)
je 0xcc0b1
movq %r13, %rdi
leaq 0x73b36(%rip), %rsi     # 0x13fbe0
xorl %eax, %eax
callq 0xe8617
movl 0x1c(%r12), %eax
testl %eax, %eax
jne 0xcc0c8
movl $0x1, 0x1c(%r12)
movl $0x1, %eax
xorl %ecx, %ecx
cmpl %eax, (%rcx,%rbx)
je 0xcc345
addq $0x18, %rcx
cmpq $0x318, %rcx            # imm = 0x318
jne 0xcc0ca
xorl %ecx, %ecx
jmp 0xcc348
movq 0x18(%r13), %rax
movq 0x18(%rax), %r13
subq %rsi, %r13
leaq -0x5f5e101(%r13), %rax
cmpq $-0x5f5e100, %rax       # imm = 0xFA0A1F00
jae 0xcc119
movb $0x1, %al
movq %rax, (%rsp)
xorl %r12d, %r12d
xorl %ebp, %ebp
xorl %r14d, %r14d
movq 0x28(%rsp), %r13
jmp 0xcc232
movq 0x28(%rsp), %rbx
movq 0x18(%rbx), %rdi
movl $0x3, %ecx
leaq 0x4847b(%rip), %rdx     # 0x1145a9
callq 0xefc85
testl %eax, %eax
je 0xcc1d7
movb $0x1, %al
movq %rax, (%rsp)
movq 0x10(%rsp), %rdx
movq 0x70(%rdx), %r8
movq %rbx, %rdi
movq %r15, %rsi
leaq 0x73a31(%rip), %rcx     # 0x13fb88
xorl %eax, %eax
callq 0xcd067
xorl %r12d, %r12d
xorl %ebp, %ebp
xorl %r14d, %r14d
movq %rbx, %r13
jmp 0xcc232
cmpb $0x0, 0x11(%r12)
je 0xcc1be
cmpq $0x0, 0x60(%r12)
jle 0xcc1be
cmpq $0x0, 0x68(%r12)
jle 0xcc1be
cmpl $0x0, 0xc(%r15)
je 0xcc042
cmpl $0x0, 0xc(%r12)
jne 0xcc042
cmpb $0x0, 0x15(%r12)
jne 0xcc042
testq %rsi, %rsi
jne 0xcc042
cmpb $0x0, 0x16(%r12)
jne 0xcc042
movq %r13, %rdi
leaq 0x73814(%rip), %rsi     # 0x13f9dc
xorl %eax, %eax
callq 0xe8617
movb $0x1, %al
movq %rax, (%rsp)
jmp 0xcc22a
movb $0x1, %al
movq %rax, (%rsp)
movl $0x1, %r9d
cmpl $0x0, 0xc(%r15)
leaq 0x739bd(%rip), %rcx     # 0x13fbac
jne 0xcc20f
xorl %r9d, %r9d
cmpl $0x9, 0x4(%r15)
sete %r9b
leaq 0x676ae(%rip), %rcx     # 0x1338b2
leaq 0x739af(%rip), %rax     # 0x13fbba
cmoveq %rax, %rcx
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rdi
movq (%r12), %rsi
movq %r13, %rdx
movq %rax, %r13
xorl %r8d, %r8d
callq 0xefd48
xorl %r12d, %r12d
xorl %ebp, %ebp
xorl %r14d, %r14d
xorl %ebx, %ebx
movq 0x90(%rsp,%rbx,8), %rdi
testq %rdi, %rdi
je 0xcc246
callq 0xf052b
incq %rbx
cmpq $0xa, %rbx
jne 0xcc234
movq %r14, %rdi
callq 0xf228d
movq %rbp, %rdi
callq 0xf228d
movq %r13, %rdi
movq %r12, %rsi
callq 0xea50e
cmpb $0x0, (%rsp)
movq 0x10(%rsp), %r12
jne 0xcc28c
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x738df(%rip), %rcx     # 0x13fb64
xorl %eax, %eax
callq 0xcd338
movq 0x20(%rsp), %r14
testq %r14, %r14
movq 0x8(%rsp), %rbx
je 0xcc2b7
movq 0xe0(%r14), %rdi
testq %rdi, %rdi
je 0xcc2ac
callq 0xfa3d4
movq %r13, %rdi
movq %r14, %rsi
callq 0xe8be2
movl 0xe0(%rsp), %esi
movq %r13, %rdi
callq 0xe8a25
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe8a15
movq %rbx, %rdi
callq 0xf6753
movq 0xb8(%r12), %rsi
movq %r13, %rdi
callq 0xe8be2
movq %r13, %rdi
movq %r12, %rsi
callq 0xe8be2
incl 0x4c(%rsp)
movq 0x28(%r15), %rax
testq %rax, %rax
jne 0xcb5e9
jmp 0xcce93
movq 0xb8(%r12), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq (%rdx,%rsi), %rax
movq 0x18(%r13), %rdi
movb $0x1, %cl
movq %rcx, (%rsp)
cmpq 0x18(%rdi), %rax
jg 0xcc22a
leaq 0x67578(%rip), %rcx     # 0x1338b2
xorl %r8d, %r8d
xorl %r9d, %r9d
jmp 0xcc225
addq %rbx, %rcx
movq %rcx, 0xa8(%r12)
movl 0x2c(%r12), %eax
testl %eax, %eax
jne 0xcc367
movl $0x1, 0x2c(%r12)
movl $0x1, %eax
cmpl $0x0, 0x28(%r12)
jne 0xcc378
movl $0x1, 0x28(%r12)
cmpl $0x0, 0x3c(%r12)
jne 0xcc389
movl $0x1, 0x3c(%r12)
cmpl $0x0, 0x40(%r12)
jne 0xcc39a
movl $0x1, 0x40(%r12)
cmpl $0x0, 0x44(%r12)
jne 0xcc3ab
movl $0x2, 0x44(%r12)
movq 0x68(%r12), %rdx
movq 0x80(%r12), %rcx
testq %rcx, %rcx
setle %sil
cmpq %rdx, %rcx
setg %cl
orb %sil, %cl
cmpb $0x1, %cl
jne 0xcc3d5
movq %rdx, 0x80(%r12)
movl 0x38(%r12), %ecx
cmpl $0x2, %ecx
setb %sil
cmpl $0x1, %eax
sete %al
orb %sil, %al
je 0xcc3f0
xorl %eax, %eax
jmp 0xcc3fb
movb $0x1, %al
cmpl $0x2, %ecx
jne 0xcca6c
movb %al, 0xcd(%rbp)
movq 0x60(%r12), %rsi
movq %rsi, (%rbp)
movq %rdx, 0x8(%rbp)
movq %r13, %rdi
callq 0xf1db1
testl %eax, %eax
je 0xcc1cf
movq 0xa8(%r12), %rax
leaq 0x5fd24(%rip), %r9      # 0x12c151
testq %rax, %rax
je 0xcc560
cmpq $0x0, 0x10(%rax)
je 0xcc54e
cmpb $0x0, 0x16(%r12)
movl $0x0, %ebx
je 0xcc474
cmpb $0x0, 0x15(%r12)
je 0xcc46d
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x73599(%rip), %rcx     # 0x13f9ff
xorl %eax, %eax
callq 0xcd067
movb $0x1, 0xcc(%rbp)
movq 0xb0(%r12), %rax
testq %rax, %rax
jle 0xcc587
cmpq $0x1, %rax
jne 0xcc5a9
movq 0xb8(%r12), %rcx
cmpq $0x0, 0x8(%rcx)
jne 0xcc600
jmp 0xcc5b9
cmpb $0x0, 0x1a(%r12)
je 0xcc095
movl 0x1c(%r12), %ecx
leal -0x1(%rcx), %edx
cmpl $0x2, %edx
jb 0xcc4cc
cmpl $0x8005, %ecx           # imm = 0x8005
jne 0xcc095
movl 0x38(%r12), %edx
cmpl $0x2, %edx
jne 0xcc682
cmpl $0x4, 0x2c(%r12)
jne 0xcc095
movl 0x28(%r12), %ecx
cmpl $0x4, %ecx
je 0xcc4f9
cmpl $0x1, %ecx
jne 0xcc095
cmpl $0x2, 0x30(%r12)
jne 0xcc095
cmpb $0x0, 0x15(%r12)
je 0xcc095
cmpb $0x1, 0x9b(%r12)
jne 0xcc095
cmpb $-0x1, %al
jne 0xcc535
movq %r13, %rdi
leaq 0x7369b(%rip), %rsi     # 0x13fbc9
xorl %eax, %eax
callq 0xe8617
movw $0x1001, 0x99(%r12) # imm = 0x1001
movl $0x1, 0x28(%r12)
jmp 0xcc095
movq 0x8(%rax), %r9
testq %r9, %r9
leaq 0x5fbf5(%rip), %rax     # 0x12c151
cmoveq %rax, %r9
movb $0x1, %al
movq %rax, (%rsp)
movl 0x1c(%r12), %r8d
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x77d18(%rip), %rcx     # 0x144293
xorl %eax, %eax
callq 0xcd338
jmp 0xcc22a
movb $0x1, %al
movq %rax, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x7348c(%rip), %rcx     # 0x13fa29
xorl %eax, %eax
callq 0xcd338
jmp 0xcc22a
cmpb $0x0, 0x17(%r12)
jne 0xcc600
movq 0xb8(%r12), %rcx
leaq -0x1(%rax), %rdx
leaq 0x10(%rcx), %rsi
xorl %edi, %edi
cmpq %rdx, %rdi
jge 0xcc5d1
leaq -0x10(%rsi), %r8
movq %rsi, %r9
jmp 0xcc5e3
movq 0x18(%r13), %r9
addq $0x18, %r9
movq %rdi, %r8
shlq $0x4, %r8
addq %rcx, %r8
movq (%r9), %r9
subq (%r8), %r9
testq %r9, %r9
cmovleq %rbx, %r9
movq %r9, -0x8(%rsi)
incq %rdi
addq $0x10, %rsi
cmpq %rdi, %rax
jne 0xcc5c3
movl 0x40(%r12), %r8d
cmpl $0x1, %r8d
jne 0xcc667
cmpb $0x0, 0x99(%r12)
je 0xcc6d2
movzbl 0x9a(%r12), %eax
cmpl $0x4, %eax
je 0xcc75d
cmpl $0x10, %eax
jne 0xcc6d2
movl $0x4, 0xc8(%rbp)
cmpb $0x0, 0x19(%r12)
jne 0xcc793
movq %r12, %rcx
addq $0xd0, %rcx
movl $0x10, %r8d
movl $0x14, %edi
xorl %esi, %esi
jmp 0xcc789
movb $0x1, %al
movq %rax, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x733c0(%rip), %rcx     # 0x13fa3d
jmp 0xcc931
cmpb $-0x1, %al
sete %al
cmpl $0x1, %edx
setne %dl
orb %al, %dl
jne 0xcc095
cmpl $0x1, 0x2c(%r12)
jne 0xcc095
cmpl $0x1, 0x30(%r12)
jne 0xcc095
cmpl $0x2, %ecx
je 0xcc095
cmpl $0x2, 0x28(%r12)
jne 0xcc095
movw $0x401, 0x99(%r12) # imm = 0x401
jmp 0xcc095
movl 0x30(%r12), %r8d
cmpq $0x2, %r8
jb 0xcc72c
cmpl $0x2, %r8d
je 0xcc7a2
cmpl $0x3, %r8d
jne 0xcc93d
movl $0x1, 0xc8(%rbp)
movb $0x1, 0xd3(%rbp)
movl 0x28(%r12), %r8d
leal -0x1(%r8), %ecx
cmpl $0x8, %ecx
jae 0xcc91b
movl $0x1, %eax
movl $0x8b, %edx
btl %ecx, %edx
jb 0xcc7cf
jmp 0xcc91b
movb $0x1, 0xcf(%rbp)
testq %r8, %r8
sete 0xd0(%rbp)
movl $0x1, 0xc8(%rbp)
movl 0x28(%r12), %r8d
cmpl $0x10, %r8d
ja 0xcc91b
movl $0x1, %eax
jmp 0xcc7c0
movl $0x1, 0xc8(%rbp)
cmpb $0x0, 0x19(%r12)
jne 0xcc793
movq %r12, %rcx
addq $0xd0, %rcx
movl $0x4, %r8d
movl $0xa, %edi
movl $0x3, %esi
xorl %edx, %edx
xorl %r9d, %r9d
callq 0xec55a
movb $0x1, 0xd3(%rbp)
movl 0xc8(%rbp), %eax
jmp 0xcc7cf
movl $0x3, 0xc8(%rbp)
movl 0x28(%r12), %r8d
cmpl $0x10, %r8d
ja 0xcc91b
movl $0x3, %eax
movl $0x10116, %ecx          # imm = 0x10116
btl %r8d, %ecx
jae 0xcc91b
movl 0x2c(%r12), %r8d
testl %r8d, %r8d
je 0xcc7f9
cmpl %eax, %r8d
jae 0xcc800
movb $0x1, %al
movq %rax, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x732b9(%rip), %rcx     # 0x13faad
jmp 0xcc931
movl %eax, 0x2c(%r12)
jmp 0xcc803
movl %r8d, %eax
cmpl $0xa, %eax
movl $0xa, %ecx
cmovael %ecx, %eax
movl %eax, 0xc4(%rbp)
movl 0x3c(%r12), %r8d
leal -0x1(%r8), %eax
cmpl $0x2, %eax
jae 0xcc903
cmpl $0x5, 0x1c(%r12)
jne 0xcc839
movq %r13, %rdi
movq %r12, %rsi
callq 0xcfe7f
cmpl $0x2, 0x34(%r12)
jne 0xcc852
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rbp, %rcx
callq 0xcff02
cmpb $0x0, 0xd6(%r13)
je 0xcc8af
cmpb $0x0, 0xcc(%rbp)
jne 0xcc8af
cmpb $0x0, 0xcd(%rbp)
jne 0xcc8af
cmpl $0x1, 0x1c(%r12)
jne 0xcc8af
cmpl $0x1, 0x2c(%r12)
jne 0xcc8af
movl 0x28(%r12), %edi
cmpq $0x7, %rdi
ja 0xcc8af
imulq (%rbp), %rdi
movl $0x8, %esi
callq 0xe9cb4
movl 0x28(%r12), %ecx
movl 0x2c(%r12), %edx
imulq %rdx, %rcx
cqto
idivq %rcx
movq %rax, (%rbp)
movzbl 0x9c(%r12), %ecx
testq %rcx, %rcx
je 0xcc99d
movl 0xc4(%rbp), %edx
movl 0xc8(%rbp), %eax
xorl %esi, %esi
cmpq %rdx, %rax
jae 0xcc99d
movzbl 0x9d(%r12,%rsi), %edi
cmpl $0x1, %edi
je 0xcc989
cmpl $0x2, %edi
je 0xcc987
incq %rsi
incq %rax
cmpq %rsi, %rcx
jne 0xcc8cf
jmp 0xcc99d
movb $0x1, %al
movq %rax, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x731bf(%rip), %rcx     # 0x13fad8
jmp 0xcc931
movb $0x1, %al
movq %rax, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x7314b(%rip), %rcx     # 0x13fa7c
xorl %eax, %eax
callq 0xcd338
jmp 0xcc22a
movl $0x8, %eax
leaq 0xbfb77(%rip), %rcx     # 0x18c4c0
cmpq %r8, -0x8(%rax,%rcx)
jne 0xcc959
movq (%rax,%rcx), %r9
testq %r9, %r9
jne 0xcc96c
addq $0x10, %rax
cmpq $0xe8, %rax
jne 0xcc949
leaq 0x5f7e5(%rip), %r9      # 0x12c151
movb $0x1, %al
movq %rax, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x730da(%rip), %rcx     # 0x13fa5c
jmp 0xcc57b
xorl %edi, %edi
movb $0x1, 0xd4(%rbp)
movb %dil, 0xd5(%rbp)
movl %eax, 0xd8(%rbp)
movb 0xd4(%rbp), %al
testb %al, %al
je 0xcc9b8
movl 0xc8(%rbp), %r8d
movl 0xd8(%rbp), %ecx
incl %ecx
jmp 0xcc9c2
movl 0xc8(%rbp), %r8d
movl %r8d, %ecx
movl %ecx, 0xc4(%rbp)
cmpb $0x1, %al
sbbl $-0x1, %r8d
movl 0x2c(%r12), %r9d
cmpl %r9d, %r8d
jae 0xcc9f4
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x73113(%rip), %rcx     # 0x13fafb
xorl %eax, %eax
callq 0xcd067
movl 0x2c(%r12), %r9d
cmpb $0x0, 0xcd(%rbp)
movq 0xb0(%r12), %rax
je 0xcca1b
movl %r9d, %ecx
cqto
idivq %rcx
movl 0xc4(%rbp), %ecx
movl $0x1, %r9d
jmp 0xcca20
movl $0x1, %ecx
movq %rax, 0x28(%rbp)
movl %ecx, 0xc0(%rbp)
movl %r9d, 0x30(%rbp)
cmpb $0x0, 0xcc(%rbp)
je 0xcca79
movq 0x88(%r12), %rsi
testq %rsi, %rsi
jle 0xcca6c
movq 0x90(%r12), %rdi
testq %rdi, %rdi
jle 0xcca6c
movq 0xa8(%r13), %rax
cmpq %rax, %rsi
setg %cl
cmpq %rax, %rdi
setg %al
orb %cl, %al
je 0xccd3f
movq $0x0, (%rsp)
jmp 0xcc22a
movq (%rbp), %rsi
movq %rsi, 0x10(%rbp)
movq 0x80(%r12), %rax
movq %rax, 0x18(%rbp)
movl $0x1, %eax
movq %rax, 0x40(%rsp)
movb $0x1, %al
movq %rax, (%rsp)
movl %r9d, %eax
movl 0x28(%r12), %ecx
imulq %rsi, %rcx
imulq %rax, %rcx
leaq 0x7(%rcx), %rax
addq $0xe, %rcx
testq %rax, %rax
cmovnsq %rax, %rcx
sarq $0x3, %rcx
movq %rcx, 0x20(%rbp)
leaq 0xe8(%rbp), %rsi
leaq 0x108(%rbp), %rdx
movq %r13, %rdi
xorl %ecx, %ecx
callq 0xfa1dc
movq 0x18(%r13), %rax
movq %rax, 0xe8(%rbp)
xorl %eax, %eax
cmpb $0x0, 0xd4(%rbp)
setne %al
xorl %ecx, %ecx
cmpb $0x0, 0xcf(%rbp)
sete %cl
leal 0x1(%rax,%rcx,2), %r12d
je 0xccb23
cmpl $0x1, %r12d
jne 0xccb23
movq 0x10(%rsp), %rax
cmpl $0x10, 0x28(%rax)
jne 0xccb23
movq 0x20(%rsp), %rax
movb $0x1, 0xce(%rax)
movq 0x20(%rsp), %rbx
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r13, %rdi
movl %r12d, %ecx
callq 0xf266a
movq %rax, %r14
cmpb $0x0, 0xce(%rbx)
je 0xccb5f
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r13, %rdi
movl %r12d, %ecx
callq 0xf266a
movq %rax, 0x18(%rsp)
jmp 0xccb68
movq $0x0, 0x18(%rsp)
movq %r13, %rdi
leaq 0x38(%rsp), %rsi
callq 0xe8a1c
movq $0x0, 0x38(%rbx)
cmpq $0x0, 0x28(%rbx)
jle 0xccda1
movq %rbx, %r12
xorl %ecx, %ecx
movq %rcx, %rax
cqto
idivq 0x40(%rsp)
movq %rdx, %r8
imulq 0x10(%r12), %r8
movq %r8, 0x40(%r12)
imulq 0x18(%r12), %rax
movq %rax, 0x48(%r12)
cmpq 0x8(%r12), %rax
jge 0xccda1
movq 0x10(%rsp), %rdx
movq 0xb8(%rdx), %r10
movq %rcx, %r11
shlq $0x4, %r11
cmpb $0x0, 0xcd(%r12)
leaq 0x79983(%rip), %rbx     # 0x146561
leaq 0x784cb(%rip), %rdx     # 0x1450b0
cmoveq %rdx, %rbx
movq (%r10,%r11), %r9
movq %r13, %rdi
leaq 0x72f48(%rip), %rsi     # 0x13fb3f
movl %ecx, %edx
movl %r8d, %ecx
movl %eax, %r8d
xorl %eax, %eax
pushq 0x8(%r10,%r11)
pushq %rbx
callq 0xe87e4
addq $0x10, %rsp
movq 0x10(%r12), %rcx
movq 0x18(%r12), %rax
movq %rcx, 0x58(%r12)
cmpb $0x0, 0xcc(%r12)
jne 0xccc41
movq 0x8(%r12), %rsi
subq 0x48(%r12), %rsi
movq %rax, %rdi
callq 0xe9c3b
movq 0x58(%r12), %rcx
movq %rax, 0x50(%r12)
movl 0x30(%r12), %edx
imulq %rcx, %rdx
movq 0x10(%rsp), %rcx
movl 0x28(%rcx), %ecx
imulq %rdx, %rcx
leaq 0x7(%rcx), %rdx
addq $0xe, %rcx
testq %rdx, %rdx
cmovnsq %rdx, %rcx
sarq $0x3, %rcx
movq %rcx, 0x60(%r12)
testq %rax, %rax
jle 0xccda1
cmpl $0x0, 0xc0(%r12)
je 0xcccf1
xorl %ebx, %ebx
movq 0x90(%rsp,%rbx,8), %rdi
testq %rdi, %rdi
je 0xccca5
movq %rdi, %rbp
callq 0xf145f
movq 0x20(%rsp), %r12
jmp 0xcccdc
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xf09c5
movq %rax, 0x90(%rsp,%rbx,8)
movq %rax, %rdi
movq %rax, %rbp
callq 0xf0855
movq 0x20(%rsp), %r12
movq 0x20(%r12), %rsi
imulq 0x18(%r12), %rsi
movq %rbp, %rdi
callq 0xf0a7c
movq %rbp, 0x70(%r12,%rbx,8)
incq %rbx
movl 0xc0(%r12), %eax
cmpq %rax, %rbx
jb 0xccc89
movq %r13, %rdi
movq %r15, %rsi
movq 0x10(%rsp), %rbx
movq %rbx, %rdx
movq %r12, %rcx
callq 0xcffa1
testl %eax, %eax
je 0xccd95
movq %r15, %rdi
movq %rbx, %rsi
movq %r12, %rdx
movq %r14, %rcx
movq 0x18(%rsp), %r8
callq 0xd01a3
movq 0x38(%r12), %rcx
incq %rcx
movq %rcx, 0x38(%r12)
cmpq 0x28(%r12), %rcx
jl 0xccb8d
jmp 0xccda1
movq %rsi, 0x10(%rbp)
movq %rdi, 0x18(%rbp)
movq (%rbp), %rax
addq %rsi, %rax
decq %rax
cqto
idivq %rsi
movq %rax, 0x40(%rsp)
cmpb $0x0, 0xd6(%r13)
je 0xcca97
movq 0x8(%rbp), %rax
leaq (%rax,%rdi), %rcx
decq %rcx
movq 0x40(%rsp), %rax
imulq %rsi, %rax
movq %rax, (%rbp)
movq %rcx, %rax
cqto
idivq %rdi
subq %rdx, %rcx
movq %rcx, 0x8(%rbp)
jmp 0xcca97
cmpq $0x0, 0x38(%r12)
jle 0xcce86
movq 0x18(%rsp), %rbp
movl 0x38(%rsp), %esi
movq %r13, %rdi
callq 0xe8a25
movq %r13, %rdi
callq 0xea504
movq %rax, %r12
movq 0x10(%rsp), %rax
movl 0x20(%rax), %eax
leal -0x5(%rax), %ecx
cmpl $0x3, %ecx
ja 0xccdea
movq %r14, %rdi
callq 0xf34d7
testq %rbp, %rbp
je 0xccde2
movq %rbp, %rdi
callq 0xf34d7
movq 0x10(%rsp), %rax
movl 0x20(%rax), %eax
cmpl $0x7, %eax
ja 0xcce0e
movl $0xcc, %ecx
btl %eax, %ecx
jae 0xcce0e
movq %r14, %rdi
callq 0xf33d6
testq %rbp, %rbp
je 0xcce0e
movq %rbp, %rdi
callq 0xf33d6
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 0xcce4f
orl $0x1, %r13d
movq 0x28(%rsp), %rdi
movq %r12, %rsi
leaq 0x5e2d4(%rip), %rdx     # 0x12b116
xorl %ecx, %ecx
movl $0x5, %r8d
callq 0xea78f
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0xd055c
movups 0xc0(%rbx), %xmm0
movups %xmm0, 0x68(%r12)
orl $0x2, %r13d
movq %r14, %rdi
movq %rbp, %rsi
movq %r12, %rdx
movl %r13d, %ecx
callq 0xf1f1a
jmp 0xcc10f
movq 0x18(%rsp), %rbp
xorl %r12d, %r12d
jmp 0xcc232
movl 0x48(%r15), %edx
movl 0x4c(%r15), %ecx
leaq 0x6fcaa(%rip), %rsi     # 0x13cb4c
movq %r13, %rdi
xorl %eax, %eax
callq 0xe8617
movq 0x88(%rsp), %rcx
testq %rcx, %rcx
je 0xcceff
cmpb $0x0, 0x24(%r15)
je 0xccec4
orb $0x8, 0x40(%rcx)
cmpb $0x0, 0x25(%r15)
je 0xccecf
orb $0x10, 0x40(%rcx)
movl 0x1c(%r15), %eax
testl %eax, %eax
je 0xccede
orb $0x20, 0x40(%rcx)
movl %eax, 0x44(%rcx)
movl 0x20(%r15), %eax
testl %eax, %eax
je 0xcceed
orb $0x40, 0x40(%rcx)
movl %eax, 0x48(%rcx)
cmpl $0x8, 0x4(%r15)
jne 0xcceff
orb $-0x80, 0x40(%rcx)
movl 0x78(%r15), %eax
movl %eax, 0x4c(%rcx)
movq 0x28(%r15), %rsi
movq %r13, %rdi
callq 0xe8be2
movq 0x40(%r15), %rsi
movq %r13, %rdi
callq 0xeb2b3
movq %r13, %rdi
movq %r15, %rsi
callq 0xe8be2
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq