// File: /workspace/github_cpp_makefile_star2_O3/rpavlik[P]edid-decode/edid-decode.cpp
// Function: main
int main(int argc, char **argv)
{
	char short_options[26 * 2 * 2 + 1];
	enum output_format out_fmt = OUT_FMT_DEFAULT;
	gtf_parsed_data gtf_data;
	int ret;

	while (1) {
		int option_index = 0;
		unsigned idx = 0;
		unsigned i, val;
		const timings *t;
		char buf[16];

		for (i = 0; long_options[i].name; i++) {
			if (!isalpha(long_options[i].val))
				continue;
			short_options[idx++] = long_options[i].val;
			if (long_options[i].has_arg == required_argument)
				short_options[idx++] = ':';
		}
		short_options[idx] = 0;
		int ch = getopt_long(argc, argv, short_options,
				     long_options, &option_index);
		if (ch == -1)
			break;

		options[ch] = 1;
		switch (ch) {
		case OptHelp:
			usage();
			return -1;
		case OptOutputFormat:
			if (!strcmp(optarg, "hex")) {
				out_fmt = OUT_FMT_HEX;
			} else if (!strcmp(optarg, "raw")) {
				out_fmt = OUT_FMT_RAW;
			} else if (!strcmp(optarg, "carray")) {
				out_fmt = OUT_FMT_CARRAY;
			} else if (!strcmp(optarg, "xml")) {
				out_fmt = OUT_FMT_XML;
			} else {
				usage();
				exit(1);
			}
			break;
		case OptSTD: {
			unsigned char byte1, byte2 = 0;
			char *endptr;

			byte1 = strtoul(optarg, &endptr, 0);
			if (*endptr == ',')
				byte2 = strtoul(endptr + 1, NULL, 0);
			state.print_standard_timing("", byte1, byte2, false, true);
			break;
		}
		case OptDMT:
			val = strtoul(optarg, NULL, 0);
			t = find_dmt_id(val);
			if (t) {
				sprintf(buf, "DMT 0x%02x", val);
				state.print_timings("", t, buf, "", true, false);
			} else {
				fprintf(stderr, "Unknown DMT code 0x%02x.\n", val);
			}
			break;
		case OptVIC:
			val = strtoul(optarg, NULL, 0);
			t = find_vic_id(val);
			if (t) {
				sprintf(buf, "VIC %3u", val);
				state.print_timings("", t, buf, "", true, false);
			} else {
				fprintf(stderr, "Unknown VIC code %u.\n", val);
			}
			break;
		case OptHDMIVIC:
			val = strtoul(optarg, NULL, 0);
			t = find_hdmi_vic_id(val);
			if (t) {
				sprintf(buf, "HDMI VIC %u", val);
				state.print_timings("", t, buf, "", true, false);
			} else {
				fprintf(stderr, "Unknown HDMI VIC code %u.\n", val);
			}
			break;
		case OptCVT:
			parse_cvt(optarg);
			break;
		case OptGTF:
			parse_gtf(optarg, gtf_data);
			break;
		case ':':
			fprintf(stderr, "Option '%s' requires a value.\n",
				argv[optind]);
			usage();
			return -1;
		case '?':
			fprintf(stderr, "Unknown argument '%s'.\n",
				argv[optind]);
			usage();
			return -1;
		}
	}
	if (optind == argc && options[OptVersion]) {
		if (strlen(STRING(SHA)))
			printf("edid-decode SHA: %s %s\n", STRING(SHA), STRING(DATE));
		else
			printf("edid-decode SHA: not available\n");
		return 0;
	}

	if (options[OptListEstTimings])
		state.list_established_timings();
	if (options[OptListDMTs])
		state.list_dmts();
	if (options[OptListVICs])
		state.cta_list_vics();
	if (options[OptListHDMIVICs])
		state.cta_list_hdmi_vics();

	if (options[OptListEstTimings] || options[OptListDMTs] ||
	    options[OptListVICs] || options[OptListHDMIVICs])
		return 0;

	if (options[OptCVT] || options[OptDMT] || options[OptVIC] ||
	    options[OptHDMIVIC] || options[OptSTD])
		return 0;

	if (options[OptGTF] && (!gtf_data.params_from_edid || optind == argc)) {
		show_gtf(gtf_data);
		return 0;
	}

	if (optind == argc)
		ret = edid_from_file("-", stdout);
	else
		ret = edid_from_file(argv[optind], argv[optind + 1] ? stderr : stdout);

	if (ret && options[OptPhysicalAddress]) {
		printf("f.f.f.f\n");
		return 0;
	}
	if (optind < argc - 1)
		return ret ? ret : edid_to_file(argv[optind + 1], out_fmt);

	if (options[OptGTF]) {
		timings t;

		// Find the Secondary Curve
		state.preparse_detailed_block(edid + 0x36);
		state.preparse_detailed_block(edid + 0x48);
		state.preparse_detailed_block(edid + 0x5a);
		state.preparse_detailed_block(edid + 0x6c);

		t = state.calc_gtf_mode(gtf_data.w, gtf_data.h, gtf_data.freq,
					gtf_data.interlaced, gtf_data.ip_parm,
					gtf_data.overscan);
		unsigned hbl = t.hfp + t.hsync + t.hbp;
		unsigned htotal = t.hact + hbl;
		double hor_freq_khz = htotal ? (double)t.pixclk_khz / htotal : 0;

		if (state.base.supports_sec_gtf &&
		    hor_freq_khz >= state.base.sec_gtf_start_freq) {
			t = state.calc_gtf_mode(gtf_data.w, gtf_data.h, gtf_data.freq,
						gtf_data.interlaced, gtf_data.ip_parm,
						gtf_data.overscan, true,
						state.base.C, state.base.M,
						state.base.K, state.base.J);
		}
		calc_ratio(&t);
		if (t.hfp <= 0)
			state.print_timings("", &t, "GTF", "INVALID: Hfront <= 0", true, false);
		else
			state.print_timings("", &t, "GTF", "", true, false);
		return 0;
	}

	return ret ? ret : state.parse_edid();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
movq %rsi, 0x70(%rsp)
movl %edi, 0x2c(%rsp)
leaq 0xe4(%rsp), %rax
movq %rax, 0xc0(%rsp)
leaq 0x33814(%rip), %rbx     # 0x3a240
movq 0x335a5(%rip), %rax     # 0x39fd8
movq %rax, 0xc8(%rsp)
leaq 0x32b5e(%rip), %r13     # 0x395a0
movl %eax, 0x4c(%rsp)
movl %eax, 0x28(%rsp)
movl $0x0, 0x24(%rsp)
movl $0x0, 0x7c(%rsp)
cmpq $0x0, 0x337de(%rip)     # 0x3a240
je 0x6ad1
movl %r15d, %r13d
xorl %r14d, %r14d
movl $0x1, %r15d
movq %rbx, %r12
movl 0x18(%r12), %ebp
movl %ebp, %edi
callq 0x33b0
testl %eax, %eax
je 0x6aad
leal 0x1(%r14), %eax
movl %r14d, %ecx
movb %bpl, 0x190(%rsp,%rcx)
cmpl $0x1, 0x8(%r12)
jne 0x6aaa
addl $0x2, %r14d
movl %eax, %eax
movb $0x3a, 0x190(%rsp,%rax)
jmp 0x6aad
movl %eax, %r14d
movl %r15d, %eax
shlq $0x5, %rax
leaq (%rbx,%rax), %r12
incl %r15d
cmpq $0x0, (%rax,%rbx)
jne 0x6a73
movl %r14d, %eax
movl %r13d, %r15d
leaq 0x32ad1(%rip), %r13     # 0x395a0
jmp 0x6ad3
xorl %eax, %eax
movb $0x0, 0x190(%rsp,%rax)
movl 0x2c(%rsp), %edi
movq 0x70(%rsp), %rsi
leaq 0x190(%rsp), %rdx
movq %rbx, %rcx
leaq 0x7c(%rsp), %r8
callq 0x33e0
cmpl $-0x1, %eax
je 0x72da
movslq %eax, %rcx
leaq 0x38594(%rip), %rdx     # 0x3f0a0
movb $0x1, (%rcx,%rdx)
cmpl $0x82, %eax
jle 0x6b9d
addl $0xffffff7d, %eax       # imm = 0xFFFFFF7D
cmpl $0x5, %eax
ja 0x6a52
leaq 0x19540(%rip), %rcx     # 0x20070
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x33480(%rip), %rax     # 0x39fc0
movq (%rax), %rdi
xorl %r12d, %r12d
leaq 0xd8(%rsp), %rsi
xorl %edx, %edx
callq 0x30c0
movq %rax, %r14
movq 0xd8(%rsp), %rdi
cmpb $0x2c, (%rdi)
jne 0x6b74
incq %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x30c0
movq %rax, %r12
movzbl %r14b, %edx
movzbl %r12b, %ecx
leaq 0x33b5d(%rip), %rdi     # 0x3a6e0
leaq 0x1a0ff(%rip), %rsi     # 0x20c89
xorl %r8d, %r8d
movl $0x1, %r9d
callq 0xa024
jmp 0x6a52
cmpl $0x6e, %eax
jle 0x725a
cmpl $0x6f, %eax
jne 0x6a52
movq 0x3340a(%rip), %rax     # 0x39fc0
movq (%rax), %r14
movq %r14, %rdi
leaq 0x19d09(%rip), %rsi     # 0x208cc
callq 0x3320
testl %eax, %eax
je 0x724d
movq %r14, %rdi
leaq 0x19cf6(%rip), %rsi     # 0x208d0
callq 0x3320
testl %eax, %eax
je 0x727a
movq %r14, %rdi
leaq 0x19ce3(%rip), %rsi     # 0x208d4
callq 0x3320
testl %eax, %eax
je 0x7287
movq %r14, %rdi
leaq 0x19cd3(%rip), %rsi     # 0x208db
callq 0x3320
movl $0x4, 0x24(%rsp)
testl %eax, %eax
je 0x6a52
jmp 0x7753
movl %r15d, 0x68(%rsp)
movq 0x33392(%rip), %rax     # 0x39fc0
movq (%rax), %rax
movq %rax, 0x60(%rsp)
cmpb $0x0, (%rax)
je 0x776a
xorps %xmm1, %xmm1
xorl %ebp, %ebp
movq $0x0, 0x50(%rsp)
xorl %r15d, %r15d
xorl %r13d, %r13d
movq $0x0, 0x58(%rsp)
xorl %r14d, %r14d
movsd %xmm1, 0x18(%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x328ef(%rip), %rsi     # 0x39560
leaq 0xd8(%rsp), %rdx
callq 0x3230
cmpl $-0x1, %eax
je 0x7705
movl %eax, %r12d
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0x6ca6
xorl %esi, %esi
callq 0x31a0
movsd %xmm0, 0x38(%rsp)
jmp 0x6cb0
leal -0x3(%r12), %eax
cmpl $0x2, %eax
jae 0x6ceb
movsd 0x18(%rsp), %xmm1
cmpl $0x6, %r12d
ja 0x6d65
movl %r12d, %eax
leaq 0x193ee(%rip), %rcx     # 0x200b8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0x38(%rsp), %xmm0
callq 0x3100
movsd 0x18(%rsp), %xmm1
cvttsd2si %xmm0, %rbp
jmp 0x6d65
cmpl $0x6, %r12d
movsd 0x18(%rsp), %xmm1
je 0x6cb6
jmp 0x7762
movb $0x1, %al
movq %rax, 0x50(%rsp)
jmp 0x6d65
movsd 0x38(%rsp), %xmm1
jmp 0x6d65
movsd 0x38(%rsp), %xmm0
cmpneqsd 0x19344(%rip), %xmm0    # 0x20060
movq %xmm0, %r13
andl $0x1, %r13d
jmp 0x6d65
movsd 0x38(%rsp), %xmm0
callq 0x3100
movsd 0x18(%rsp), %xmm1
cvttsd2si %xmm0, %r14
jmp 0x6d65
cvttsd2si 0x38(%rsp), %rax
movq %rax, 0x58(%rsp)
jmp 0x6d65
movsd 0x38(%rsp), %xmm0
cmpneqsd 0x19304(%rip), %xmm0    # 0x20060
movq %xmm0, %r15
andl $0x1, %r15d
movq 0x60(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x6c5f
testl %ebp, %ebp
je 0x776a
testl %r14d, %r14d
je 0x776a
ucomisd 0x192d4(%rip), %xmm1    # 0x20060
jne 0x6d94
jnp 0x776a
movapd %xmm1, %xmm0
mulsd 0x19270(%rip), %xmm0    # 0x20010
testb $0x1, %r13b
jne 0x6daa
movapd %xmm1, %xmm0
movzbl %r15b, %eax
andl $0x1, %eax
movl %eax, 0x8(%rsp)
movzbl 0x50(%rsp), %eax
andl $0x1, %eax
movl %eax, (%rsp)
movzbl %r13b, %r9d
andl $0x1, %r9d
leaq 0xd8(%rsp), %r15
movq %r15, %rdi
leaq 0x33906(%rip), %r12     # 0x3a6e0
movq %r12, %rsi
movl %ebp, %edx
movl %r14d, %ecx
movq 0x58(%rsp), %r8
callq 0x1f362
movl $0x0, (%rsp)
movq %r12, %rdi
leaq 0x19e8c(%rip), %rsi     # 0x20c89
movq %r15, %rdx
leaq 0x29fc7(%rip), %rcx     # 0x30dce
movq %rsi, %r8
movl $0x1, %r9d
callq 0x3e8c
movl 0x68(%rsp), %r15d
leaq 0x3277f(%rip), %r13     # 0x395a0
jmp 0x6a52
movq 0x33193(%rip), %rax     # 0x39fc0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x30c0
movq %rax, %r14
movzbl %r14b, %edi
callq 0xdfcf
testq %rax, %rax
je 0x7294
movq %rax, %r12
leaq 0x130(%rsp), %r13
movq %r13, %rdi
leaq 0x19aa1(%rip), %rsi     # 0x20904
jmp 0x6ee1
movq 0x33154(%rip), %rax     # 0x39fc0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x30c0
movq %rax, %r14
movzbl %r14b, %edi
callq 0xe00e
testq %rax, %rax
je 0x72a7
movq %rax, %r12
leaq 0x130(%rsp), %r13
movq %r13, %rdi
leaq 0x19a80(%rip), %rsi     # 0x20922
jmp 0x6ee1
movq 0x33115(%rip), %rax     # 0x39fc0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x30c0
movq %rax, %r14
movzbl %r14b, %edi
callq 0x8df0
testq %rax, %rax
je 0x72ba
movq %rax, %r12
leaq 0x130(%rsp), %r13
movq %r13, %rdi
leaq 0x199fe(%rip), %rsi     # 0x208df
movl %r14d, %edx
xorl %eax, %eax
callq 0x3070
movl $0x0, (%rsp)
leaq 0x337e7(%rip), %rdi     # 0x3a6e0
leaq 0x19d89(%rip), %rsi     # 0x20c89
movq %r12, %rdx
movq %r13, %rcx
leaq 0x32693(%rip), %r13     # 0x395a0
movq %rsi, %r8
movl $0x1, %r9d
callq 0x3e8c
jmp 0x6a52
movq 0x33099(%rip), %rax     # 0x39fc0
movq (%rax), %rax
movq %rax, 0x60(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x80(%rsp)
movaps %xmm0, 0x90(%rsp)
movaps %xmm0, 0xa0(%rsp)
movq $0x0, 0xb0(%rsp)
cmpb $0x0, (%rax)
je 0x776f
movl 0x80(%rsp), %ebp
movl 0x84(%rsp), %r12d
movb $0x1, %r15b
xorps %xmm0, %xmm0
movsd %xmm0, 0x30(%rsp)
movl $0x0, 0x44(%rsp)
movl $0x0, 0x48(%rsp)
movl $0x0, 0x20(%rsp)
movl $0x0, 0x28(%rsp)
movl $0x0, 0x4c(%rsp)
movl $0x0, 0x38(%rsp)
movsd 0x190a6(%rip), %xmm0    # 0x20058
movsd %xmm0, 0x58(%rsp)
movsd 0x19090(%rip), %xmm0    # 0x20050
movsd %xmm0, 0x50(%rsp)
movsd 0x1907a(%rip), %xmm0    # 0x20048
movsd %xmm0, 0x68(%rsp)
movsd 0x19064(%rip), %xmm0    # 0x20040
movsd %xmm0, 0xd0(%rsp)
leaq 0x60(%rsp), %rdi
movq %r13, %rsi
leaq 0xd8(%rsp), %rdx
callq 0x3230
cmpl $-0x1, %eax
je 0x770a
movl %eax, %r14d
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
setne %al
leal -0x8(%r14), %ecx
cmpl $-0x3, %ecx
setae %cl
orb %al, %cl
je 0x7724
cmpl $0xb, %r14d
je 0x7032
cmpl $0x8, %r14d
jne 0x7044
xorl %esi, %esi
callq 0x31a0
addsd %xmm0, %xmm0
callq 0x3100
jmp 0x7050
testq %rdi, %rdi
je 0x7056
xorl %esi, %esi
callq 0x31a0
movsd %xmm0, 0x18(%rsp)
cmpl $0xb, %r14d
ja 0x713e
movl %r14d, %eax
leaq 0x1901e(%rip), %rcx     # 0x20088
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0x18(%rsp), %xmm0
callq 0x3100
cvttsd2si %xmm0, %rbp
movl %ebp, 0x48(%rsp)
jmp 0x713e
movsd 0x18(%rsp), %xmm0
mulsd 0x18f76(%rip), %xmm0    # 0x20010
movsd %xmm0, 0xd0(%rsp)
jmp 0x713b
movl $0x3, 0x20(%rsp)
jmp 0x70d7
movsd 0x18(%rsp), %xmm0
callq 0x3100
movsd %xmm0, 0x50(%rsp)
jmp 0x713b
movl $0x1, 0x20(%rsp)
jmp 0x70d7
movl $0x2, 0x20(%rsp)
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
jmp 0x713e
movb $0x1, %al
movl %eax, 0x38(%rsp)
jmp 0x713e
movsd 0x18(%rsp), %xmm0
callq 0x3100
cvttsd2si %xmm0, %r12
movl %r12d, 0x44(%rsp)
jmp 0x713e
movb $0x1, %al
movl %eax, 0x28(%rsp)
jmp 0x713e
movb $0x1, %al
movl %eax, 0x4c(%rsp)
jmp 0x713e
movsd 0x18(%rsp), %xmm0
callq 0x3100
movsd %xmm0, 0x68(%rsp)
jmp 0x713b
movsd 0x18(%rsp), %xmm0
mulsd 0x18edb(%rip), %xmm0    # 0x20010
movsd %xmm0, 0x58(%rsp)
xorl %r15d, %r15d
movq 0x60(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x6fe5
movl %r12d, 0x84(%rsp)
movl %ebp, 0x80(%rsp)
movsd 0xd0(%rsp), %xmm0
movsd %xmm0, 0xa8(%rsp)
movb %r15b, 0xb3(%rsp)
movsd 0x68(%rsp), %xmm0
movsd %xmm0, 0xa0(%rsp)
movsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x98(%rsp)
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x90(%rsp)
movl 0x38(%rsp), %ecx
movb %cl, 0xb2(%rsp)
movl 0x4c(%rsp), %eax
movb %al, 0xb0(%rsp)
movl 0x28(%rsp), %eax
movb %al, 0xb1(%rsp)
movsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x88(%rsp)
movl 0x20(%rsp), %eax
movl %eax, 0xb4(%rsp)
cmpl $0x0, 0x48(%rsp)
je 0x776f
cmpl $0x0, 0x44(%rsp)
je 0x776f
movsd 0x30(%rsp), %xmm0
ucomisd 0x18e5f(%rip), %xmm0    # 0x20060
jne 0x7209
jnp 0x7774
testb $0x1, %cl
jne 0x7219
movb $0x0, 0xb3(%rsp)
xorl %r15d, %r15d
cmpl $0x1, %eax
sete %al
andb 0x28(%rsp), %al
cmpb $0x1, %al
jne 0x6a52
movsd 0x30(%rsp), %xmm0
mulsd 0x18dd7(%rip), %xmm0    # 0x20010
movsd %xmm0, 0x30(%rsp)
movsd %xmm0, 0x88(%rsp)
jmp 0x6a52
movl $0x1, 0x24(%rsp)
jmp 0x6a52
cmpl $0x68, %eax
je 0x7642
cmpl $0x3a, %eax
je 0x7631
cmpl $0x3f, %eax
jne 0x6a52
jmp 0x7628
movl $0x2, 0x24(%rsp)
jmp 0x6a52
movl $0x3, 0x24(%rsp)
jmp 0x6a52
movq 0x32d3d(%rip), %rax     # 0x39fd8
movq (%rax), %rdi
leaq 0x19667(%rip), %rsi     # 0x2090c
jmp 0x72cb
movq 0x32d2a(%rip), %rax     # 0x39fd8
movq (%rax), %rdi
leaq 0x19676(%rip), %rsi     # 0x2092e
jmp 0x72cb
movq 0x32d17(%rip), %rax     # 0x39fd8
movq (%rax), %rdi
leaq 0x1961f(%rip), %rsi     # 0x208ea
movl %r14d, %edx
xorl %eax, %eax
callq 0x3330
jmp 0x6a52
movq 0x32cff(%rip), %r14     # 0x39fe0
movl 0x2c(%rsp), %eax
cmpl %eax, (%r14)
jne 0x7316
cmpb $0x0, 0x37e31(%rip)     # 0x3f122
je 0x7316
leaq 0x1957e(%rip), %rdi     # 0x20878
leaq 0x1958f(%rip), %rsi     # 0x20890
leaq 0x19595(%rip), %rdx     # 0x2089d
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x3030
jmp 0x7653
cmpb $0x0, 0x37e0c(%rip)     # 0x3f129
je 0x732b
leaq 0x333ba(%rip), %rdi     # 0x3a6e0
callq 0x8e18
cmpb $0x0, 0x37df8(%rip)     # 0x3f12a
je 0x7340
leaq 0x333a5(%rip), %rdi     # 0x3a6e0
callq 0x900a
cmpb $0x0, 0x37de4(%rip)     # 0x3f12b
je 0x7355
leaq 0x33390(%rip), %rdi     # 0x3a6e0
callq 0xe0d6
xorl %ebx, %ebx
cmpb $0x0, 0x37dce(%rip)     # 0x3f12c
je 0x7378
leaq 0x33379(%rip), %rdi     # 0x3a6e0
callq 0xe1ac
cmpb $0x0, 0x37db9(%rip)     # 0x3f12c
setne %al
jmp 0x737a
xorl %eax, %eax
cmpb $0x0, 0x37da8(%rip)     # 0x3f129
jne 0x7653
cmpb $0x0, 0x37d9c(%rip)     # 0x3f12a
jne 0x7653
cmpb $0x0, 0x37d90(%rip)     # 0x3f12b
jne 0x7653
testb %al, %al
jne 0x7653
cmpl $0x0, 0x37d74(%rip)     # 0x3f124
jne 0x7653
cmpb $0x0, 0x37d66(%rip)     # 0x3f123
jne 0x7653
movl (%r14), %eax
cmpl 0x2c(%rsp), %eax
setne %cl
cmpb $0x0, 0x37d54(%rip)     # 0x3f128
je 0x73ed
andb %cl, %r15b
jne 0x73ed
leaq 0x80(%rsp), %rdi
callq 0x7785
jmp 0x7653
cmpl 0x2c(%rsp), %eax
jne 0x7406
movq 0x32bb6(%rip), %rax     # 0x39fb0
movq (%rax), %rsi
leaq 0x19f66(%rip), %rdi     # 0x2136a
jmp 0x7433
cltq
movq 0x70(%rsp), %rcx
movq (%rcx,%rax,8), %rdi
cmpq $0x0, 0x8(%rcx,%rax,8)
jne 0x7428
movq 0x32b90(%rip), %rax     # 0x39fb0
movq %rax, 0xc8(%rsp)
movq 0xc8(%rsp), %rax
movq (%rax), %rsi
callq 0x7853
testl %eax, %eax
je 0x7456
cmpb $0x0, 0x37cad(%rip)     # 0x3f0f0
je 0x7456
leaq 0x19f20(%rip), %rdi     # 0x2136c
callq 0x3380
jmp 0x7653
movslq (%r14), %rcx
movl 0x2c(%rsp), %edx
decl %edx
cmpl %edx, %ecx
jge 0x7488
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0x7653
movq 0x70(%rsp), %rax
movq 0x8(%rax,%rcx,8), %rdi
movl 0x24(%rsp), %esi
callq 0x7c47
jmp 0x767c
cmpb $0x0, 0x37c99(%rip)     # 0x3f128
je 0x7667
leaq 0x33244(%rip), %r14     # 0x3a6e0
leaq 0x37d43(%rip), %rsi     # 0x3f1e6
movq %r14, %rdi
callq 0xbd4c
leaq 0x37d46(%rip), %rsi     # 0x3f1f8
movq %r14, %rdi
callq 0xbd4c
leaq 0x37d49(%rip), %rsi     # 0x3f20a
movq %r14, %rdi
callq 0xbd4c
leaq 0x37d4c(%rip), %rsi     # 0x3f21c
movq %r14, %rdi
callq 0xbd4c
movzbl 0x4c(%rsp), %r12d
andl $0x1, %r12d
movl %r12d, (%rsp)
movl $0x0, 0x8(%rsp)
movzbl 0x28(%rsp), %ebp
andl $0x1, %ebp
leaq 0xd8(%rsp), %r15
movsd 0x18b52(%rip), %xmm1    # 0x20058
movsd 0x18b42(%rip), %xmm2    # 0x20050
movsd 0x18b32(%rip), %xmm3    # 0x20048
movsd 0x18b22(%rip), %xmm4    # 0x20040
movq %r15, %rdi
movq %r14, %rsi
movl 0x48(%rsp), %edx
movl 0x44(%rsp), %ecx
movsd 0x30(%rsp), %xmm0
movl %ebp, %r8d
movl 0x20(%rsp), %r9d
callq 0x1ed64
movl (%r15), %ecx
cmpb $0x1, 0x33229(%rip)     # 0x3a772
jne 0x760b
movl 0xf4(%rsp), %eax
addl %ecx, %eax
addl 0xf8(%rsp), %eax
xorpd %xmm0, %xmm0
addl 0xfc(%rsp), %eax
je 0x7587
movl 0xe8(%rsp), %edx
xorps %xmm0, %xmm0
cvtsi2sd %rdx, %xmm0
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
movl 0x331e7(%rip), %eax     # 0x3a774
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
ucomisd %xmm1, %xmm0
jb 0x760b
movsd 0x331d5(%rip), %xmm1    # 0x3a778
leaq 0x33136(%rip), %rsi     # 0x3a6e0
movsd 0x331ce(%rip), %xmm2    # 0x3a780
movsd 0x331ce(%rip), %xmm3    # 0x3a788
movsd 0x331ce(%rip), %xmm4    # 0x3a790
movl %r12d, (%rsp)
movl $0x1, 0x8(%rsp)
leaq 0x130(%rsp), %r14
movq %r14, %rdi
movl 0x48(%rsp), %edx
movl 0x44(%rsp), %ecx
movsd 0x30(%rsp), %xmm0
movl %ebp, %r8d
movl 0x20(%rsp), %r9d
callq 0x1ed64
leaq 0xd8(%rsp), %rax
movl $0x15, %ecx
movq %rax, %rdi
movq %r14, %rsi
rep  movsl (%rsi), %es:(%rdi)
movl (%rax), %ecx
movl 0xdc(%rsp), %esi
testl %esi, %esi
je 0x7680
movl %ecx, %eax
movl %esi, %edx
movl %edx, %edi
xorl %edx, %edx
divl %edi
movl %edi, %eax
testl %edx, %edx
jne 0x761a
jmp 0x7686
leaq 0x19339(%rip), %rsi     # 0x20968
jmp 0x7638
leaq 0x19311(%rip), %rsi     # 0x20949
movq 0x70(%rsp), %rdi
callq 0x3460
leaq 0x19d2b(%rip), %rdi     # 0x21374
callq 0x3380
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movl %ebx, %eax
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0x7653
leaq 0x33069(%rip), %rdi     # 0x3a6e0
callq 0x630a
movl %eax, %ebx
jmp 0x7653
movl %ecx, %edi
testl %ecx, %ecx
je 0x76e6
movl %ecx, %eax
xorl %edx, %edx
divl %edi
movl %eax, 0xe0(%rsp)
movl %esi, %eax
xorl %edx, %edx
divl %edi
movq 0xc0(%rsp), %rcx
movl %eax, (%rcx)
leaq 0xd8(%rsp), %rdx
cmpl $0x0, 0x1c(%rdx)
leaq 0x192ca(%rip), %r8      # 0x20980
leaq 0x195cc(%rip), %rsi     # 0x20c89
cmovgq %rsi, %r8
movl $0x0, (%rsp)
leaq 0x33011(%rip), %rdi     # 0x3a6e0
leaq 0x1d31b(%rip), %rcx     # 0x249f1
movl $0x1, %r9d
callq 0x3e8c
jmp 0x7653
movl $0x0, 0xe4(%rsp)
xorl %eax, %eax
leaq 0xe0(%rsp), %rcx
movq %rcx, 0xc0(%rsp)
jmp 0x7699
callq 0x3541
leaq 0x80(%rsp), %rcx
movl %r12d, %edi
leaq 0x84(%rsp), %rsi
movl %ebp, %edx
callq 0x34b2
movl %r12d, 0x84(%rsp)
movl %ebp, 0x80(%rsp)
movq 0x3289e(%rip), %rax     # 0x39fd8
movq (%rax), %rdi
movslq %r14d, %rax
movq (%r13,%rax,8), %rdx
leaq 0x197a9(%rip), %rsi     # 0x20ef5
xorl %eax, %eax
callq 0x3330
callq 0x7779
movl $0x1, %edi
callq 0x32c0
movl %r12d, %edi
callq 0x350a
callq 0x356b
callq 0x34e0
callq 0x3488