// File: /workspace/github_cpp_makefile_star2_O1/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, 0x98(%rsp)
movl %edi, 0x34(%rsp)
movq $0x0, 0x90(%rsp)
leaq 0x33800(%rip), %r13     # 0x3a240
leaq 0x1a232(%rip), %r12     # 0x20c79
movq 0x3358a(%rip), %rax     # 0x39fd8
movq %rax, 0xd8(%rsp)
movl $0x0, 0x84(%rsp)
movl $0x0, 0xd4(%rsp)
cmpq $0x0, 0x337cc(%rip)     # 0x3a240
je 0x6ace
xorl %ebx, %ebx
movl $0x1, %r14d
movq %r13, %r15
movl 0x18(%r15), %ebp
movl %ebp, %edi
callq 0x33b0
testl %eax, %eax
je 0x6ab5
leal 0x1(%rbx), %eax
movl %ebx, %ecx
movb %bpl, 0x190(%rsp,%rcx)
cmpl $0x1, 0x8(%r15)
jne 0x6ab3
addl $0x2, %ebx
movl %eax, %eax
movb $0x3a, 0x190(%rsp,%rax)
jmp 0x6ab5
movl %eax, %ebx
movl %r14d, %eax
shlq $0x5, %rax
leaq (%rax,%r13), %r15
incl %r14d
cmpq $0x0, (%rax,%r13)
jne 0x6a81
movl %ebx, %eax
jmp 0x6ad0
xorl %eax, %eax
movb $0x0, 0x190(%rsp,%rax)
movl 0x34(%rsp), %edi
movq 0x98(%rsp), %rsi
leaq 0x190(%rsp), %rdx
movq %r13, %rcx
leaq 0xd4(%rsp), %r8
callq 0x33e0
cmpl $-0x1, %eax
je 0x6b9d
movslq %eax, %rcx
leaq 0x38591(%rip), %rdx     # 0x3f0a0
movb $0x1, (%rcx,%rdx)
xorl %ebp, %ebp
cmpl $0x6e, %eax
jle 0x6ba7
leal -0x83(%rax), %ecx
cmpl $0x5, %ecx
ja 0x6bd1
leaq 0x1952c(%rip), %rdx     # 0x20060
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movq 0x3347c(%rip), %rax     # 0x39fc0
movq (%rax), %rdi
xorl %ebp, %ebp
leaq 0xe0(%rsp), %rsi
xorl %edx, %edx
callq 0x30c0
movq %rax, %r14
movq 0xe0(%rsp), %rdi
cmpb $0x2c, (%rdi)
movl $0x0, %eax
jne 0x6b79
incq %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x30c0
movzbl %r14b, %edx
movzbl %al, %ecx
leaq 0x33b59(%rip), %rdi     # 0x3a6e0
movq %r12, %rsi
xorl %r8d, %r8d
movl $0x1, %r9d
callq 0xa252
jmp 0x7311
movl $0x3, %ebp
jmp 0x7311
cmpl $0x68, %eax
jne 0x6c52
leaq 0x1a7ad(%rip), %rdi     # 0x21364
callq 0x3380
movl $0xffffffff, 0x84(%rsp) # imm = 0xFFFFFFFF
movl $0x1, %ebp
jmp 0x7311
cmpl $0x6f, %eax
jne 0x7311
movq 0x333df(%rip), %rax     # 0x39fc0
movq (%rax), %r14
movq %r14, %rdi
leaq 0x19cce(%rip), %rsi     # 0x208bc
callq 0x3320
testl %eax, %eax
je 0x72f6
movq %r14, %rdi
leaq 0x19cbb(%rip), %rsi     # 0x208c0
callq 0x3320
testl %eax, %eax
je 0x72fd
movq %r14, %rdi
leaq 0x19ca8(%rip), %rsi     # 0x208c4
callq 0x3320
testl %eax, %eax
je 0x7304
movq %r14, %rdi
leaq 0x19c98(%rip), %rsi     # 0x208cb
callq 0x3320
movl $0x4, %ecx
movq %rcx, 0x90(%rsp)
testl %eax, %eax
je 0x7311
jmp 0x790f
cmpl $0x3a, %eax
je 0x731b
cmpl $0x3f, %eax
jne 0x7311
movq 0x98(%rsp), %rdi
callq 0x3460
jmp 0x6bbc
movq 0x33343(%rip), %rax     # 0x39fc0
movq (%rax), %rax
movq %rax, 0x138(%rsp)
cmpb $0x0, (%rax)
je 0x7225
xorps %xmm1, %xmm1
xorl %r15d, %r15d
movq $0x0, 0x88(%rsp)
xorl %ebx, %ebx
xorl %r12d, %r12d
movq $0x0, 0x38(%rsp)
xorl %r14d, %r14d
movsd %xmm1, 0x20(%rsp)
leaq 0x138(%rsp), %rdi
leaq 0x32897(%rip), %rsi     # 0x39560
leaq 0xe0(%rsp), %rdx
callq 0x3230
cmpl $-0x1, %eax
je 0x77b7
movl %eax, %ebp
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x6cfd
xorl %esi, %esi
callq 0x31a0
movsd %xmm0, 0x28(%rsp)
jmp 0x6d05
leal -0x3(%rbp), %eax
cmpl $0x2, %eax
jae 0x6d3e
movsd 0x20(%rsp), %xmm1
cmpl $0x6, %ebp
ja 0x6db9
movl %ebp, %eax
leaq 0x1938b(%rip), %rcx     # 0x200a8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0x28(%rsp), %xmm0
callq 0x3100
movsd 0x20(%rsp), %xmm1
cvttsd2si %xmm0, %r15
jmp 0x6db9
cmpl $0x6, %ebp
movsd 0x20(%rsp), %xmm1
je 0x6d0b
jmp 0x791e
movb $0x1, %al
movq %rax, 0x88(%rsp)
jmp 0x6db9
movsd 0x28(%rsp), %xmm1
jmp 0x6db9
movsd 0x28(%rsp), %xmm0
cmpneqsd 0x192e7(%rip), %xmm0    # 0x20058
movq %xmm0, %r12
andl $0x1, %r12d
jmp 0x6db9
movsd 0x28(%rsp), %xmm0
callq 0x3100
movsd 0x20(%rsp), %xmm1
cvttsd2si %xmm0, %r14
jmp 0x6db9
cvttsd2si 0x28(%rsp), %rax
movq %rax, 0x38(%rsp)
jmp 0x6db9
movsd 0x28(%rsp), %xmm0
cmpneqsd 0x192a7(%rip), %xmm0    # 0x20058
movq %xmm0, %rbx
andl $0x1, %ebx
movq 0x138(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x6cb4
jmp 0x7249
movq 0x331ea(%rip), %rax     # 0x39fc0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x30c0
movq %rax, %r14
movzbl %r14b, %edi
callq 0xe18f
testq %rax, %rax
je 0x732d
movq %rax, %r15
xorl %ebp, %ebp
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
leaq 0x19ae6(%rip), %rsi     # 0x208f4
jmp 0x6e93
movq 0x331a6(%rip), %rax     # 0x39fc0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x30c0
movq %rax, %r14
movzbl %r14b, %edi
callq 0xe1ce
testq %rax, %rax
je 0x7342
movq %rax, %r15
xorl %ebp, %ebp
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
leaq 0x19ac0(%rip), %rsi     # 0x20912
jmp 0x6e93
movq 0x33165(%rip), %rax     # 0x39fc0
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x30c0
movq %rax, %r14
movzbl %r14b, %edi
callq 0x9000
testq %rax, %rax
je 0x7357
movq %rax, %r15
xorl %ebp, %ebp
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
leaq 0x19a3c(%rip), %rsi     # 0x208cf
movl %r14d, %edx
xorl %eax, %eax
callq 0x3070
movl $0x0, (%rsp)
leaq 0x33835(%rip), %rdi     # 0x3a6e0
movq %r12, %rsi
movq %r15, %rdx
movq %rbx, %rcx
movq %r12, %r8
movl $0x1, %r9d
callq 0x3ebe
jmp 0x7311
movq 0x330f2(%rip), %rax     # 0x39fc0
movq (%rax), %rax
movq %rax, 0x138(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movaps %xmm0, 0x60(%rsp)
movaps %xmm0, 0x40(%rsp)
movq $0x0, 0x70(%rsp)
movb $0x1, 0x73(%rsp)
movabsq $0x4044000000000000, %rcx # imm = 0x4044000000000000
movq %rcx, 0x50(%rsp)
movabsq $0x4082c00000000000, %rcx # imm = 0x4082C00000000000
movq %rcx, 0x58(%rsp)
movabsq $0x4060000000000000, %rcx # imm = 0x4060000000000000
movq %rcx, 0x60(%rsp)
movabsq $0x4034000000000000, %rcx # imm = 0x4034000000000000
movq %rcx, 0x68(%rsp)
cmpb $0x0, (%rax)
je 0x71c4
movsd 0x68(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movb 0x73(%rsp), %r15b
movsd 0x60(%rsp), %xmm0
movsd %xmm0, 0xb8(%rsp)
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0xc0(%rsp)
movsd 0x50(%rsp), %xmm0
movsd %xmm0, 0xc8(%rsp)
movb 0x72(%rsp), %al
movb %al, 0x1f(%rsp)
movb 0x70(%rsp), %al
movb %al, 0x88(%rsp)
movb 0x71(%rsp), %bl
movsd 0x48(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movl 0x74(%rsp), %eax
movl %eax, 0x28(%rsp)
movl 0x40(%rsp), %eax
movq %rax, 0xa8(%rsp)
movl 0x44(%rsp), %eax
movq %rax, 0xa0(%rsp)
leaq 0x138(%rsp), %rdi
leaq 0x325cf(%rip), %rsi     # 0x395a0
leaq 0xe0(%rsp), %rdx
callq 0x3230
cmpl $-0x1, %eax
je 0x77bc
movl %eax, %r14d
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
setne %al
leal -0x8(%r14), %ecx
cmpl $-0x3, %ecx
setae %cl
orb %al, %cl
je 0x7865
cmpl $0xb, %r14d
je 0x7016
cmpl $0x8, %r14d
jne 0x7028
xorl %esi, %esi
callq 0x31a0
addsd %xmm0, %xmm0
callq 0x3100
jmp 0x7034
testq %rdi, %rdi
je 0x703a
xorl %esi, %esi
callq 0x31a0
movsd %xmm0, 0x20(%rsp)
cmpl $0xb, %r14d
ja 0x712f
movl %r14d, %eax
leaq 0x1902a(%rip), %rcx     # 0x20078
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0x20(%rsp), %xmm0
callq 0x3100
cvttsd2si %xmm0, %rax
movq %rax, 0xa8(%rsp)
jmp 0x712f
movsd 0x20(%rsp), %xmm0
mulsd 0x18f86(%rip), %xmm0    # 0x20008
movsd %xmm0, 0xb0(%rsp)
jmp 0x712c
movl $0x3, 0x28(%rsp)
jmp 0x70c2
movsd 0x20(%rsp), %xmm0
callq 0x3100
movsd %xmm0, 0xc0(%rsp)
jmp 0x712c
movl $0x1, 0x28(%rsp)
jmp 0x70c2
movl $0x2, 0x28(%rsp)
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
jmp 0x712f
movb $0x1, 0x1f(%rsp)
jmp 0x712f
movsd 0x20(%rsp), %xmm0
callq 0x3100
cvttsd2si %xmm0, %rax
movq %rax, 0xa0(%rsp)
jmp 0x712f
movb $0x1, %bl
jmp 0x712f
movb $0x1, 0x88(%rsp)
jmp 0x712f
movsd 0x20(%rsp), %xmm0
callq 0x3100
movsd %xmm0, 0xb8(%rsp)
jmp 0x712c
movsd 0x20(%rsp), %xmm0
mulsd 0x18ee5(%rip), %xmm0    # 0x20008
movsd %xmm0, 0xc8(%rsp)
xorl %r15d, %r15d
movq 0x138(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x6fc2
movsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movl 0x28(%rsp), %eax
movl %eax, 0x74(%rsp)
movq 0xa0(%rsp), %rax
movl %eax, 0x44(%rsp)
movq 0xa8(%rsp), %rax
movl %eax, 0x40(%rsp)
movsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
movb %r15b, 0x73(%rsp)
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movb 0x1f(%rsp), %al
movb %al, 0x72(%rsp)
movb 0x88(%rsp), %al
movb %al, 0x70(%rsp)
movb %bl, 0x71(%rsp)
cmpl $0x0, 0x40(%rsp)
je 0x792a
cmpl $0x0, 0x44(%rsp)
je 0x792a
movsd 0x48(%rsp), %xmm0
ucomisd 0x18e70(%rip), %xmm0    # 0x20058
jne 0x71f0
jnp 0x7925
cmpb $0x0, 0x72(%rsp)
jne 0x71fc
movb $0x0, 0x73(%rsp)
cmpb $0x1, 0x71(%rsp)
jne 0x7311
cmpl $0x1, 0x74(%rsp)
jne 0x7311
mulsd 0x18dee(%rip), %xmm0    # 0x20008
movsd %xmm0, 0x48(%rsp)
jmp 0x7311
xorpd %xmm1, %xmm1
xorl %r14d, %r14d
movq $0x0, 0x38(%rsp)
xorl %r12d, %r12d
xorl %ebx, %ebx
movq $0x0, 0x88(%rsp)
xorl %r15d, %r15d
testl %r15d, %r15d
je 0x792f
testl %r14d, %r14d
je 0x792f
ucomisd 0x18df5(%rip), %xmm1    # 0x20058
jne 0x726b
jnp 0x792f
movapd %xmm1, %xmm0
mulsd 0x18d91(%rip), %xmm0    # 0x20008
testb $0x1, %r12b
jne 0x7281
movapd %xmm1, %xmm0
movzbl %bl, %eax
andl $0x1, %eax
movl %eax, 0x8(%rsp)
movzbl 0x88(%rsp), %eax
andl $0x1, %eax
movl %eax, (%rsp)
movzbl %r12b, %r9d
andl $0x1, %r9d
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
leaq 0x3342d(%rip), %r12     # 0x3a6e0
movq %r12, %rsi
movl %r15d, %edx
movl %r14d, %ecx
movq 0x38(%rsp), %r8
callq 0x1f728
movl $0x0, (%rsp)
movq %r12, %rdi
leaq 0x199a2(%rip), %r12     # 0x20c79
movq %r12, %rsi
movq %rbx, %rdx
leaq 0x29aaa(%rip), %rcx     # 0x30d8e
movq %r12, %r8
movl $0x1, %r9d
callq 0x3ebe
xorl %ebp, %ebp
jmp 0x7311
movl $0x1, %eax
jmp 0x7309
movl $0x2, %eax
jmp 0x7309
movl $0x3, %eax
movq %rax, 0x90(%rsp)
testl %ebp, %ebp
je 0x6a61
jmp 0x7376
movq 0x98(%rsp), %rdi
callq 0x349b
jmp 0x6bbc
movq 0x32ca4(%rip), %rax     # 0x39fd8
movq (%rax), %rdi
xorl %ebp, %ebp
leaq 0x195bc(%rip), %rsi     # 0x208fc
jmp 0x736a
movq 0x32c8f(%rip), %rax     # 0x39fd8
movq (%rax), %rdi
xorl %ebp, %ebp
leaq 0x195c9(%rip), %rsi     # 0x2091e
jmp 0x736a
movq 0x32c7a(%rip), %rax     # 0x39fd8
movq (%rax), %rdi
xorl %ebp, %ebp
leaq 0x19570(%rip), %rsi     # 0x208da
movl %r14d, %edx
xorl %eax, %eax
callq 0x3330
jmp 0x7311
cmpl $0x3, %ebp
jne 0x73b3
movq 0x32c5e(%rip), %rbx     # 0x39fe0
movl 0x34(%rsp), %eax
cmpl %eax, (%rbx)
jne 0x73ce
cmpb $0x0, 0x37d91(%rip)     # 0x3f122
je 0x73ce
leaq 0x194ce(%rip), %rdi     # 0x20868
leaq 0x194df(%rip), %rsi     # 0x20880
leaq 0x194e5(%rip), %rdx     # 0x2088d
xorl %ebp, %ebp
xorl %eax, %eax
callq 0x3030
jmp 0x73ba
movl 0x84(%rsp), %ebp
movl %ebp, %eax
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpb $0x0, 0x37d54(%rip)     # 0x3f129
je 0x73e3
leaq 0x33302(%rip), %rdi     # 0x3a6e0
callq 0x9028
cmpb $0x0, 0x37d40(%rip)     # 0x3f12a
je 0x73f8
leaq 0x332ed(%rip), %rdi     # 0x3a6e0
callq 0x924e
cmpb $0x0, 0x37d2c(%rip)     # 0x3f12b
je 0x740d
leaq 0x332d8(%rip), %rdi     # 0x3a6e0
callq 0xe296
cmpb $0x0, 0x37d18(%rip)     # 0x3f12c
je 0x7422
leaq 0x332c3(%rip), %rdi     # 0x3a6e0
callq 0xe36c
xorl %ebp, %ebp
cmpb $0x0, 0x37cfe(%rip)     # 0x3f129
jne 0x73ba
cmpb $0x0, 0x37cf6(%rip)     # 0x3f12a
jne 0x73ba
cmpb $0x0, 0x37cee(%rip)     # 0x3f12b
jne 0x73ba
cmpb $0x0, 0x37ce2(%rip)     # 0x3f12c
jne 0x73ba
cmpb $0x0, 0x37cd0(%rip)     # 0x3f127
jne 0x73ba
cmpb $0x0, 0x37cc0(%rip)     # 0x3f124
jne 0x73ba
cmpb $0x0, 0x37cb4(%rip)     # 0x3f125
jne 0x73ba
cmpb $0x0, 0x37ca8(%rip)     # 0x3f126
jne 0x73ba
cmpb $0x0, 0x37c98(%rip)     # 0x3f123
jne 0x73ba
cmpb $0x0, 0x37c90(%rip)     # 0x3f128
je 0x74b1
cmpb $0x1, 0x73(%rsp)
jne 0x7557
movl 0x34(%rsp), %eax
cmpl %eax, (%rbx)
je 0x7557
movslq (%rbx), %rax
cmpl 0x34(%rsp), %eax
jne 0x74cd
movq 0x32aef(%rip), %rax     # 0x39fb0
movq (%rax), %rsi
leaq 0x19e8f(%rip), %rdi     # 0x2135a
jmp 0x74fb
movq 0x98(%rsp), %rcx
movq (%rcx,%rax,8), %rdi
cmpq $0x0, 0x8(%rcx,%rax,8)
jne 0x74f0
movq 0x32ac8(%rip), %rax     # 0x39fb0
movq %rax, 0xd8(%rsp)
movq 0xd8(%rsp), %rax
movq (%rax), %rsi
callq 0x7a0c
testl %eax, %eax
je 0x751e
cmpb $0x0, 0x37be5(%rip)     # 0x3f0f0
je 0x751e
leaq 0x19e48(%rip), %rdi     # 0x2135c
callq 0x3380
jmp 0x73ba
movslq (%rbx), %rcx
movl 0x34(%rsp), %edx
decl %edx
cmpl %edx, %ecx
jge 0x7566
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0x73ba
movq 0x98(%rsp), %rax
movq 0x8(%rax,%rcx,8), %rdi
movq 0x90(%rsp), %rsi
callq 0x7e20
jmp 0x7762
leaq 0x40(%rsp), %rdi
callq 0x7940
jmp 0x73ba
cmpb $0x0, 0x37bbb(%rip)     # 0x3f128
je 0x7749
leaq 0x33166(%rip), %r12     # 0x3a6e0
leaq 0x37c65(%rip), %rsi     # 0x3f1e6
movq %r12, %rdi
callq 0xbf60
leaq 0x37c68(%rip), %rsi     # 0x3f1f8
movq %r12, %rdi
callq 0xbf60
leaq 0x37c6b(%rip), %rsi     # 0x3f20a
movq %r12, %rdi
callq 0xbf60
leaq 0x37c6e(%rip), %rsi     # 0x3f21c
movq %r12, %rdi
callq 0xbf60
movl 0x40(%rsp), %ebx
movl 0x44(%rsp), %ebp
movsd 0x48(%rsp), %xmm0
movb 0x71(%rsp), %al
movl 0x74(%rsp), %r14d
movzbl 0x70(%rsp), %r13d
movl %r13d, (%rsp)
movl $0x0, 0x8(%rsp)
movzbl %al, %r15d
leaq 0xe0(%rsp), %rdi
movsd 0x18a45(%rip), %xmm1    # 0x20038
movsd 0x18a45(%rip), %xmm2    # 0x20040
movsd 0x18a45(%rip), %xmm3    # 0x20048
movsd 0x18a45(%rip), %xmm4    # 0x20050
movq %r12, %rsi
leaq 0x19664(%rip), %r12     # 0x20c79
movl %ebx, %edx
movl %ebp, %ecx
movsd %xmm0, 0x20(%rsp)
movl %r15d, %r8d
movl %r14d, %r9d
callq 0x1f0f8
cmpb $0x1, 0x33141(%rip)     # 0x3a772
jne 0x76f7
movl 0xfc(%rsp), %eax
addl 0xe0(%rsp), %eax
addl 0x100(%rsp), %eax
xorpd %xmm0, %xmm0
addl 0x104(%rsp), %eax
je 0x7674
movl 0xf0(%rsp), %ecx
xorps %xmm0, %xmm0
cvtsi2sd %rcx, %xmm0
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
movl 0x330fa(%rip), %eax     # 0x3a774
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
ucomisd %xmm1, %xmm0
jb 0x76f7
movsd 0x330e8(%rip), %xmm1    # 0x3a778
leaq 0x33049(%rip), %rsi     # 0x3a6e0
movsd 0x330e1(%rip), %xmm2    # 0x3a780
movsd 0x330e1(%rip), %xmm3    # 0x3a788
movsd 0x330e1(%rip), %xmm4    # 0x3a790
movzbl %r13b, %eax
movl %eax, (%rsp)
movl $0x1, 0x8(%rsp)
leaq 0x138(%rsp), %r12
movq %r12, %rdi
movl %ebx, %edx
movl %ebp, %ecx
movsd 0x20(%rsp), %xmm0
movl %r15d, %r8d
movl %r14d, %r9d
callq 0x1f0f8
leaq 0xe0(%rsp), %rdi
movl $0x15, %ecx
movq %r12, %rsi
leaq 0x19584(%rip), %r12     # 0x20c79
rep  movsl (%rsi), %es:(%rdi)
movl 0xe0(%rsp), %esi
movl 0xe4(%rsp), %ecx
movl %esi, %edi
testl %ecx, %ecx
movl $0x0, %ebp
je 0x7720
movl %esi, %eax
movl %ecx, %edx
movl %edx, %edi
xorl %edx, %edx
divl %edi
movl %edi, %eax
testl %edx, %edx
jne 0x7714
testl %edi, %edi
leaq 0xe8(%rsp), %rdx
je 0x7769
movl %esi, %eax
xorl %edx, %edx
divl %edi
movl %eax, 0xe8(%rsp)
movl %ecx, %eax
xorl %edx, %edx
divl %edi
leaq 0xec(%rsp), %rdx
jmp 0x7776
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0x73ba
leaq 0x32f83(%rip), %rdi     # 0x3a6e0
callq 0x62dc
movl %eax, %ebp
jmp 0x73ba
movl $0x0, 0xec(%rsp)
xorl %eax, %eax
movl %eax, (%rdx)
leaq 0xe0(%rsp), %rdx
cmpl $0x0, 0x1c(%rdx)
leaq 0x191e5(%rip), %r8      # 0x20970
cmovgq %r12, %r8
movl $0x0, (%rsp)
leaq 0x32f43(%rip), %rdi     # 0x3a6e0
leaq 0x1d1fd(%rip), %rcx     # 0x249a1
movq %r12, %rsi
movl $0x1, %r9d
callq 0x3ebe
jmp 0x73ba
callq 0x3561
movsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movl 0x28(%rsp), %eax
movl %eax, 0x74(%rsp)
movq 0xa0(%rsp), %rax
movl %eax, 0x44(%rsp)
movq 0xa8(%rsp), %rax
movl %eax, 0x40(%rsp)
movsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
movb %r15b, 0x73(%rsp)
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movb 0x1f(%rsp), %al
movb %al, 0x72(%rsp)
movb 0x88(%rsp), %al
movb %al, 0x70(%rsp)
movb %bl, 0x71(%rsp)
movq 0x32791(%rip), %rax     # 0x39fd8
movq (%rax), %rcx
leaq 0x19675(%rip), %rdi     # 0x20ec6
movl $0x1e, %esi
movl $0x1, %edx
callq 0x3430
jmp 0x790f
movsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movl 0x28(%rsp), %eax
movl %eax, 0x74(%rsp)
movq 0xa0(%rsp), %rax
movl %eax, 0x44(%rsp)
movq 0xa8(%rsp), %rax
movl %eax, 0x40(%rsp)
movsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
movb %r15b, 0x73(%rsp)
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movb 0x1f(%rsp), %al
movb %al, 0x72(%rsp)
movb 0x88(%rsp), %al
movb %al, 0x70(%rsp)
movb %bl, 0x71(%rsp)
movq 0x326e8(%rip), %rax     # 0x39fd8
movq (%rax), %rdi
movslq %r14d, %rax
leaq 0x31ca3(%rip), %rcx     # 0x395a0
movq (%rcx,%rax,8), %rdx
leaq 0x195dd(%rip), %rsi     # 0x20ee5
xorl %eax, %eax
callq 0x3330
callq 0x7934
movl $0x1, %edi
callq 0x32c0
movl %ebp, %edi
callq 0x352a
callq 0x34d6
callq 0x3500
callq 0x358b