// File: rpavlik[P]edid-decode/edid-decode.cpp
// Function: print_v4l2_timing(timings const*, double, char const*)
static void print_v4l2_timing(const struct timings *t,
			      double refresh, const char *type)
{
	printf("\t#define V4L2_DV_BT_%uX%u%c%u_%02u { \\\n",
	       t->hact, t->vact, t->interlaced ? 'I' : 'P',
	       (unsigned)refresh, (unsigned)(0.5 + 100.0 * (refresh - (unsigned)refresh)));
	printf("\t\t.type = V4L2_DV_BT_656_1120, \\\n");
	printf("\t\tV4L2_INIT_BT_TIMINGS(%u, %u, %u, ",
	       t->hact, t->vact, t->interlaced);
	if (!t->pos_pol_hsync && !t->pos_pol_vsync)
		printf("0, \\\n");
	else if (t->pos_pol_hsync && t->pos_pol_vsync)
		printf("\\\n\t\t\tV4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \\\n");
	else if (t->pos_pol_hsync)
		printf("V4L2_DV_HSYNC_POS_POL, \\\n");
	else
		printf("V4L2_DV_VSYNC_POS_POL, \\\n");
	unsigned hfp = t->hborder + t->hfp;
	unsigned hbp = t->hborder + t->hbp;
	unsigned vfp = t->vborder + t->vfp;
	unsigned vbp = t->vborder + t->vbp;
	printf("\t\t\t%lluULL, %d, %u, %d, %u, %u, %d, %u, %u, %d, \\\n",
	       t->pixclk_khz * 1000ULL, hfp, t->hsync, hbp,
	       vfp, t->vsync, vbp,
	       t->interlaced ? vfp : 0,
	       t->interlaced ? t->vsync : 0,
	       t->interlaced ? vbp + !t->even_vtotal : 0);

	std::string flags;
	unsigned num_flags = 0;
	unsigned vic = 0;
	unsigned hdmi_vic = 0;
	const char *std = "0";

	if (t->interlaced && !t->even_vtotal)
		or_str(flags, "V4L2_DV_FL_HALF_LINE", num_flags);
	if (!memcmp(type, "VIC", 3)) {
		or_str(flags, "V4L2_DV_FL_HAS_CEA861_VIC", num_flags);
		or_str(flags, "V4L2_DV_FL_IS_CE_VIDEO", num_flags);
		vic = strtoul(type + 4, 0, 0);
	}
	if (!memcmp(type, "HDMI VIC", 8)) {
		or_str(flags, "V4L2_DV_FL_HAS_HDMI_VIC", num_flags);
		or_str(flags, "V4L2_DV_FL_IS_CE_VIDEO", num_flags);
		hdmi_vic = strtoul(type + 9, 0, 0);
		vic = hdmi_vic_to_vic(hdmi_vic);
		if (vic)
			or_str(flags, "V4L2_DV_FL_HAS_CEA861_VIC", num_flags);
	}
	if (vic && (fmod(refresh, 6)) == 0.0)
		or_str(flags, "V4L2_DV_FL_CAN_REDUCE_FPS", num_flags);
	if (t->rb)
		or_str(flags, "V4L2_DV_FL_REDUCED_BLANKING", num_flags);
	if (t->hratio && t->vratio)
		or_str(flags, "V4L2_DV_FL_HAS_PICTURE_ASPECT", num_flags);

	if (!memcmp(type, "VIC", 3) || !memcmp(type, "HDMI VIC", 8))
		std = "V4L2_DV_BT_STD_CEA861";
	else if (!memcmp(type, "DMT", 3))
		std = "V4L2_DV_BT_STD_DMT";
	else if (!memcmp(type, "CVT", 3))
		std = "V4L2_DV_BT_STD_CVT";
	else if (!memcmp(type, "GTF", 3))
		std = "V4L2_DV_BT_STD_GTF";
	printf("\t\t\t%s, \\\n", std);
	printf("\t\t\t%s, \\\n", flags.empty() ? "0" : flags.c_str());
	printf("\t\t\t{ %u, %u }, %u, %u) \\\n",
	       t->hratio, t->vratio, vic, hdmi_vic);
	printf("\t}\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x2a0, %rsp            # imm = 0x2A0
movq %rdi, -0x18(%rbp)
movsd %xmm0, -0x20(%rbp)
movq %rsi, -0x28(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %esi
movl 0x4(%rax), %edx
movb 0x18(%rax), %al
testb $0x1, %al
movl $0x49, %eax
movl $0x50, %ecx
cmovnel %eax, %ecx
movsd -0x20(%rbp), %xmm0
cvttsd2si %xmm0, %rax
movl %eax, %r8d
movl %r8d, %eax
cvtsi2sd %rax, %xmm1
subsd %xmm1, %xmm0
movsd 0x28971(%rip), %xmm1    # 0x2f038
mulsd %xmm1, %xmm0
movsd 0x28945(%rip), %xmm1    # 0x2f018
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
movl %eax, %r9d
leaq 0x295a8(%rip), %rdi     # 0x2fc8e
movb $0x0, %al
callq 0x4050
leaq 0x295c2(%rip), %rdi     # 0x2fcb6
movb $0x0, %al
callq 0x4050
movq -0x18(%rbp), %rax
movl (%rax), %esi
movq -0x18(%rbp), %rax
movl 0x4(%rax), %edx
movq -0x18(%rbp), %rax
movb 0x18(%rax), %al
andb $0x1, %al
movzbl %al, %ecx
leaq 0x295bd(%rip), %rdi     # 0x2fcd8
movb $0x0, %al
callq 0x4050
movq -0x18(%rbp), %rax
testb $0x1, 0x28(%rax)
jne 0x6746
movq -0x18(%rbp), %rax
testb $0x1, 0x38(%rax)
jne 0x6746
leaq 0x29595(%rip), %rdi     # 0x2fcd2
movb $0x0, %al
callq 0x4050
jmp 0x6796
movq -0x18(%rbp), %rax
testb $0x1, 0x28(%rax)
je 0x676a
movq -0x18(%rbp), %rax
testb $0x1, 0x38(%rax)
je 0x676a
leaq 0x2959b(%rip), %rdi     # 0x2fcfc
movb $0x0, %al
callq 0x4050
jmp 0x6794
movq -0x18(%rbp), %rax
testb $0x1, 0x28(%rax)
je 0x6784
leaq 0x295b8(%rip), %rdi     # 0x2fd33
movb $0x0, %al
callq 0x4050
jmp 0x6792
leaq 0x2958e(%rip), %rdi     # 0x2fd19
movb $0x0, %al
callq 0x4050
jmp 0x6794
jmp 0x6796
movq -0x18(%rbp), %rax
movl 0x3c(%rax), %eax
movq -0x18(%rbp), %rcx
addl 0x1c(%rcx), %eax
movl %eax, -0x2c(%rbp)
movq -0x18(%rbp), %rax
movl 0x3c(%rax), %eax
movq -0x18(%rbp), %rcx
addl 0x24(%rcx), %eax
movl %eax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movl 0x40(%rax), %eax
movq -0x18(%rbp), %rcx
addl 0x2c(%rcx), %eax
movl %eax, -0x34(%rbp)
movq -0x18(%rbp), %rax
movl 0x40(%rax), %eax
movq -0x18(%rbp), %rcx
addl 0x34(%rcx), %eax
movl %eax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movl 0x10(%rax), %eax
imulq $0x3e8, %rax, %rax      # imm = 0x3E8
movq %rax, -0x208(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x1fc(%rbp)
movq -0x18(%rbp), %rax
movl 0x20(%rax), %eax
movl %eax, -0x1f8(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movl -0x34(%rbp), %eax
movl %eax, -0x1f0(%rbp)
movq -0x18(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x1ec(%rbp)
movl -0x38(%rbp), %eax
movl %eax, -0x1e8(%rbp)
movq -0x18(%rbp), %rax
testb $0x1, 0x18(%rax)
je 0x6842
movl -0x34(%rbp), %eax
movl %eax, -0x20c(%rbp)
jmp 0x684c
xorl %eax, %eax
movl %eax, -0x20c(%rbp)
jmp 0x684c
movl -0x20c(%rbp), %eax
movl %eax, -0x210(%rbp)
movq -0x18(%rbp), %rax
testb $0x1, 0x18(%rax)
je 0x6871
movq -0x18(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x214(%rbp)
jmp 0x687b
xorl %eax, %eax
movl %eax, -0x214(%rbp)
jmp 0x687b
movl -0x214(%rbp), %eax
movl %eax, -0x218(%rbp)
movq -0x18(%rbp), %rax
testb $0x1, 0x18(%rax)
je 0x68ae
movl -0x38(%rbp), %eax
movq -0x18(%rbp), %rcx
movb 0x44(%rcx), %cl
xorb $-0x1, %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movl %eax, -0x21c(%rbp)
jmp 0x68b8
xorl %eax, %eax
movl %eax, -0x21c(%rbp)
jmp 0x68b8
movl -0x218(%rbp), %r10d
movl -0x210(%rbp), %r11d
movl -0x1e8(%rbp), %ebx
movl -0x1ec(%rbp), %r14d
movl -0x1f0(%rbp), %r9d
movl -0x1f4(%rbp), %r8d
movl -0x1f8(%rbp), %ecx
movl -0x1fc(%rbp), %edx
movq -0x208(%rbp), %rsi
movl -0x21c(%rbp), %eax
leaq 0x2944c(%rip), %rdi     # 0x2fd4d
movl %r14d, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
movb $0x0, %al
callq 0x4050
leaq -0x58(%rbp), %rdi
callq 0x4430
movl $0x0, -0x5c(%rbp)
movl $0x0, -0x60(%rbp)
movl $0x0, -0x64(%rbp)
leaq 0x29233(%rip), %rax     # 0x2fb76
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rax
testb $0x1, 0x18(%rax)
je 0x6a05
movq -0x18(%rbp), %rax
testb $0x1, 0x44(%rax)
jne 0x6a05
leaq -0x91(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x4560
movq -0x228(%rbp), %rdx
leaq 0x293fc(%rip), %rsi     # 0x2fd80
leaq -0x90(%rbp), %rdi
callq 0xb510
jmp 0x6992
leaq -0x58(%rbp), %rdi
leaq -0x90(%rbp), %rsi
leaq -0x5c(%rbp), %rdx
callq 0x9ef0
jmp 0x69a8
leaq -0x90(%rbp), %rdi
callq 0x41f0
leaq -0x91(%rbp), %rdi
callq 0x4370
jmp 0x6a05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x69f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x41f0
leaq -0x91(%rbp), %rdi
callq 0x4370
jmp 0x7187
movq -0x28(%rbp), %rdi
leaq 0x293bb(%rip), %rsi     # 0x2fdcb
movl $0x3, %edx
callq 0x4190
cmpl $0x0, %eax
jne 0x6b7e
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x230(%rbp)
callq 0x4560
movq -0x230(%rbp), %rdx
leaq 0x29351(%rip), %rsi     # 0x2fd95
leaq -0xc8(%rbp), %rdi
callq 0xb510
jmp 0x6a52
leaq -0x58(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
leaq -0x5c(%rbp), %rdx
callq 0x9ef0
jmp 0x6a68
leaq -0xc8(%rbp), %rdi
callq 0x41f0
leaq -0xc9(%rbp), %rdi
callq 0x4370
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x238(%rbp)
callq 0x4560
movq -0x238(%rbp), %rdx
leaq 0x2930e(%rip), %rsi     # 0x2fdaf
leaq -0xf0(%rbp), %rdi
callq 0xb510
jmp 0x6aaf
leaq -0x58(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x5c(%rbp), %rdx
callq 0x9ef0
jmp 0x6ac5
leaq -0xf0(%rbp), %rdi
callq 0x41f0
leaq -0xf1(%rbp), %rdi
callq 0x4370
movq -0x28(%rbp), %rdi
addq $0x4, %rdi
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x4100
movl %eax, -0x60(%rbp)
jmp 0x6b7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x6b2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x41f0
leaq -0xc9(%rbp), %rdi
callq 0x4370
jmp 0x7187
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x6b6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x41f0
leaq -0xf1(%rbp), %rdi
callq 0x4370
jmp 0x7187
movq -0x28(%rbp), %rax
movq (%rax), %rax
movabsq $0x43495620494d4448, %rcx # imm = 0x43495620494D4448
subq %rcx, %rax
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x6dda
leaq -0x119(%rbp), %rdi
movq %rdi, -0x240(%rbp)
callq 0x4560
movq -0x240(%rbp), %rdx
leaq 0x2920d(%rip), %rsi     # 0x2fdcf
leaq -0x118(%rbp), %rdi
callq 0xb510
jmp 0x6bd0
leaq -0x58(%rbp), %rdi
leaq -0x118(%rbp), %rsi
leaq -0x5c(%rbp), %rdx
callq 0x9ef0
jmp 0x6be6
leaq -0x118(%rbp), %rdi
callq 0x41f0
leaq -0x119(%rbp), %rdi
callq 0x4370
leaq -0x141(%rbp), %rdi
movq %rdi, -0x248(%rbp)
callq 0x4560
movq -0x248(%rbp), %rdx
leaq 0x29190(%rip), %rsi     # 0x2fdaf
leaq -0x140(%rbp), %rdi
callq 0xb510
jmp 0x6c2d
leaq -0x58(%rbp), %rdi
leaq -0x140(%rbp), %rsi
leaq -0x5c(%rbp), %rdx
callq 0x9ef0
jmp 0x6c43
leaq -0x140(%rbp), %rdi
callq 0x41f0
leaq -0x141(%rbp), %rdi
callq 0x4370
movq -0x28(%rbp), %rdi
addq $0x9, %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x4100
movl %eax, -0x64(%rbp)
movzbl -0x64(%rbp), %edi
callq 0x15490
movb %al, -0x249(%rbp)
jmp 0x6c80
movb -0x249(%rbp), %al
movzbl %al, %eax
movl %eax, -0x60(%rbp)
cmpl $0x0, -0x60(%rbp)
je 0x6dd8
leaq -0x169(%rbp), %rdi
movq %rdi, -0x258(%rbp)
callq 0x4560
movq -0x258(%rbp), %rdx
leaq 0x290de(%rip), %rsi     # 0x2fd95
leaq -0x168(%rbp), %rdi
callq 0xb510
jmp 0x6cc5
leaq -0x58(%rbp), %rdi
leaq -0x168(%rbp), %rsi
leaq -0x5c(%rbp), %rdx
callq 0x9ef0
jmp 0x6cdb
leaq -0x168(%rbp), %rdi
callq 0x41f0
leaq -0x169(%rbp), %rdi
callq 0x4370
jmp 0x6dd8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x6d2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x41f0
leaq -0x119(%rbp), %rdi
callq 0x4370
jmp 0x7187
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x6d6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x41f0
leaq -0x141(%rbp), %rdi
callq 0x4370
jmp 0x7187
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7187
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x6dc7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x41f0
leaq -0x169(%rbp), %rdi
callq 0x4370
jmp 0x7187
jmp 0x6dda
cmpl $0x0, -0x60(%rbp)
je 0x6eba
movsd -0x20(%rbp), %xmm0
movl $0x6, %edi
callq 0xcac0
movsd %xmm0, -0x260(%rbp)
jmp 0x6dfd
movsd -0x260(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x6eba
jp 0x6eba
leaq -0x191(%rbp), %rdi
movq %rdi, -0x268(%rbp)
callq 0x4560
movq -0x268(%rbp), %rdx
leaq 0x28fae(%rip), %rsi     # 0x2fde7
leaq -0x190(%rbp), %rdi
callq 0xb510
jmp 0x6e47
leaq -0x58(%rbp), %rdi
leaq -0x190(%rbp), %rsi
leaq -0x5c(%rbp), %rdx
callq 0x9ef0
jmp 0x6e5d
leaq -0x190(%rbp), %rdi
callq 0x41f0
leaq -0x191(%rbp), %rdi
callq 0x4370
jmp 0x6eba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x6ea9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x41f0
leaq -0x191(%rbp), %rdi
callq 0x4370
jmp 0x7187
movq -0x18(%rbp), %rax
cmpl $0x0, 0x14(%rax)
je 0x6f6a
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x270(%rbp)
callq 0x4560
movq -0x270(%rbp), %rdx
leaq 0x28f18(%rip), %rsi     # 0x2fe01
leaq -0x1b8(%rbp), %rdi
callq 0xb510
jmp 0x6ef7
leaq -0x58(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
leaq -0x5c(%rbp), %rdx
callq 0x9ef0
jmp 0x6f0d
leaq -0x1b8(%rbp), %rdi
callq 0x41f0
leaq -0x1b9(%rbp), %rdi
callq 0x4370
jmp 0x6f6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x6f59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x41f0
leaq -0x1b9(%rbp), %rdi
callq 0x4370
jmp 0x7187
movq -0x18(%rbp), %rax
cmpl $0x0, 0x8(%rax)
je 0x7028
movq -0x18(%rbp), %rax
cmpl $0x0, 0xc(%rax)
je 0x7028
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x278(%rbp)
callq 0x4560
movq -0x278(%rbp), %rdx
leaq 0x28e76(%rip), %rsi     # 0x2fe1d
leaq -0x1e0(%rbp), %rdi
callq 0xb510
jmp 0x6fb5
leaq -0x58(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
leaq -0x5c(%rbp), %rdx
callq 0x9ef0
jmp 0x6fcb
leaq -0x1e0(%rbp), %rdi
callq 0x41f0
leaq -0x1e1(%rbp), %rdi
callq 0x4370
jmp 0x7028
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7017
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x41f0
leaq -0x1e1(%rbp), %rdi
callq 0x4370
jmp 0x7187
movq -0x28(%rbp), %rdi
leaq 0x28d98(%rip), %rsi     # 0x2fdcb
movl $0x3, %edx
callq 0x4190
cmpl $0x0, %eax
je 0x7061
movq -0x28(%rbp), %rax
movq (%rax), %rax
movabsq $0x43495620494d4448, %rcx # imm = 0x43495620494D4448
subq %rcx, %rax
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x706e
leaq 0x28dd3(%rip), %rax     # 0x2fe3b
movq %rax, -0x70(%rbp)
jmp 0x70e7
movq -0x28(%rbp), %rdi
leaq 0x28de7(%rip), %rsi     # 0x2fe60
movl $0x3, %edx
callq 0x4190
cmpl $0x0, %eax
jne 0x7095
leaq 0x28dc2(%rip), %rax     # 0x2fe51
movq %rax, -0x70(%rbp)
jmp 0x70e5
movq -0x28(%rbp), %rdi
leaq 0x28dd3(%rip), %rsi     # 0x2fe73
movl $0x3, %edx
callq 0x4190
cmpl $0x0, %eax
jne 0x70bc
leaq 0x28dae(%rip), %rax     # 0x2fe64
movq %rax, -0x70(%rbp)
jmp 0x70e3
movq -0x28(%rbp), %rdi
leaq 0x2cb27(%rip), %rsi     # 0x33bee
movl $0x3, %edx
callq 0x4190
cmpl $0x0, %eax
jne 0x70e1
leaq 0x28d9a(%rip), %rax     # 0x2fe77
movq %rax, -0x70(%rbp)
jmp 0x70e3
jmp 0x70e5
jmp 0x70e7
movq -0x70(%rbp), %rsi
leaq 0x28d98(%rip), %rdi     # 0x2fe8a
xorl %eax, %eax
callq 0x4050
jmp 0x70fb
leaq -0x58(%rbp), %rdi
callq 0x4510
testb $0x1, %al
jne 0x710a
jmp 0x711a
leaq 0x28a65(%rip), %rax     # 0x2fb76
movq %rax, -0x280(%rbp)
jmp 0x712a
leaq -0x58(%rbp), %rdi
callq 0x4150
movq %rax, -0x280(%rbp)
movq -0x280(%rbp), %rsi
leaq 0x28d52(%rip), %rdi     # 0x2fe8a
xorl %eax, %eax
callq 0x4050
jmp 0x7141
movq -0x18(%rbp), %rax
movl 0x8(%rax), %esi
movl 0xc(%rax), %edx
movl -0x60(%rbp), %ecx
movl -0x64(%rbp), %r8d
leaq 0x28d3b(%rip), %rdi     # 0x2fe94
xorl %eax, %eax
callq 0x4050
jmp 0x7162
leaq 0x28d45(%rip), %rdi     # 0x2feae
xorl %eax, %eax
callq 0x4050
jmp 0x7172
leaq -0x58(%rbp), %rdi
callq 0x41f0
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbx
popq %r14
popq %rbp
retq
leaq -0x58(%rbp), %rdi
callq 0x41f0
movq -0xa0(%rbp), %rdi
callq 0x4550
nopl (%rax)