// File: /workspace/github_cpp_makefile_star2_O2/rpavlik[P]edid-decode/./edid-decode.h
// Function: edid_state::edid_state()
edid_state()
	{
		// Global state
		edid_size = num_blocks = block_nr = 0;
		max_hor_freq_hz = max_vert_freq_hz = max_pixclk_khz = 0;
		min_hor_freq_hz = 0xffffff;
		min_vert_freq_hz = 0xffffffff;
		dtd_max_vsize_mm = dtd_max_hsize_mm = 0;
		warnings = failures = 0;
		has_cta = has_dispid = false;
		hide_serial_numbers = false;

		// Base block state
		base.edid_minor = 0;
		base.has_name_descriptor = base.has_display_range_descriptor =
			base.has_serial_number = base.has_serial_string =
			base.supports_continuous_freq = base.supports_gtf =
			base.supports_cvt = base.seen_non_detailed_descriptor =
			base.has_640x480p60_est_timing = base.has_spwg =
			base.preferred_is_also_native = false;
		base.supports_sec_gtf = false;
		base.sec_gtf_start_freq = 0;
		base.C = base.M = base.K = base.J = 0;
		base.max_pos_neg_hor_freq_khz = 0;
		base.detailed_block_cnt = base.dtd_cnt = 0;

		base.min_display_hor_freq_hz = base.max_display_hor_freq_hz =
			base.min_display_vert_freq_hz = base.max_display_vert_freq_hz =
			base.max_display_pixclk_khz = base.max_display_width_mm =
			base.max_display_height_mm = 0;

		// CTA-861 block state
		cta.has_vic_1 = cta.first_svd_might_be_preferred = cta.has_sldb =
			cta.has_hdmi = cta.has_vcdb = cta.has_vfpdb = false;
		cta.last_block_was_hdmi_vsdb = cta.have_hf_vsdb = cta.have_hf_scdb = false;
		cta.first_block = cta.first_svd = true;
		cta.supported_hdmi_vic_codes = cta.supported_hdmi_vic_vsb_codes = 0;
		memset(cta.vics, 0, sizeof(cta.vics));
		memset(cta.preparsed_has_vic, 0, sizeof(cta.preparsed_has_vic));
		cta.preparsed_phys_addr = 0xffff;
		cta.preparsed_speaker_count = 0;
		cta.preparsed_sld = false;
		cta.preparsed_sld_has_coord = false;
		cta.preparsed_total_dtds = 0;
		cta.preparsed_total_vtdbs = 0;
		cta.preparsed_has_t8vtdb = false;

		// DisplayID block state
		dispid.version = 0;
		dispid.native_width = dispid.native_height = 0;
		dispid.preparsed_color_ids = dispid.preparsed_xfer_ids = 0;
		dispid.preparsed_displayid_blocks = 0;
		dispid.is_base_block = true;
		dispid.is_display = dispid.has_product_identification =
			dispid.has_display_parameters = dispid.has_type_1_7 =
			dispid.has_display_interface_features = false;

		// Block Map block state
		block_map.saw_block_1 = false;
		block_map.saw_block_128 = false;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
leaq 0x20(%rdi), %rax
movq %rax, 0x10(%rdi)
andq $0x0, 0x18(%rdi)
xorl %eax, %eax
movb %al, 0x20(%rdi)
leaq 0x40(%rdi), %rcx
movq %rcx, 0x30(%rdi)
andq $0x0, 0x38(%rdi)
movb %al, 0x40(%rdi)
leaq 0x130(%rdi), %rcx
movq %rcx, 0x120(%rdi)
andq $0x0, 0x128(%rdi)
leaq 0x10(%rdi), %r14
leaq 0x30(%rdi), %r15
movb %al, 0x130(%rdi)
leaq 0x150(%rdi), %rcx
movq %rcx, 0x140(%rdi)
andq $0x0, 0x148(%rdi)
leaq 0xc8(%rdi), %r12
movb %al, 0x150(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0xc8(%rdi)
movups %xmm0, 0xd8(%rdi)
movups %xmm0, 0xe8(%rdi)
movups %xmm0, 0xf8(%rdi)
movups %xmm0, 0x108(%rdi)
andl $0x0, 0x118(%rdi)
addq $0x180, %rdi            # imm = 0x180
callq 0x7736
xorps %xmm1, %xmm1
movups %xmm1, 0x928(%rbx)
andq $0x0, 0x938(%rbx)
leaq 0x950(%rbx), %rax
andl $0x0, 0x950(%rbx)
andq $0x0, 0x958(%rbx)
movq %rax, 0x960(%rbx)
movq %rax, 0x968(%rbx)
andq $0x0, 0x970(%rbx)
andl $0x0, 0x8(%rbx)
andq $0x0, (%rbx)
andl $0x0, 0x70(%rbx)
movq $0xffffff, 0x54(%rbx)   # imm = 0xFFFFFF
movsd 0x12bcf(%rip), %xmm0    # 0x1a008
movups %xmm0, 0x60(%rbx)
andw $0x0, 0x50(%rbx)
xorl %ebp, %ebp
movb %bpl, 0x52(%rbx)
andw $0x0, 0x2c4(%rbx)
movb %bpl, 0x2c3(%rbx)
movb %bpl, 0x2ce(%rbx)
andw $0x0, 0x2c0(%rbx)
movups %xmm1, 0x74(%rbx)
andq $0x0, 0x88(%rbx)
andl $0x0, 0x8f(%rbx)
movups %xmm1, 0xa4(%rbx)
andq $0x0, 0xb2(%rbx)
movups %xmm1, 0x94(%rbx)
andq $0x0, 0xbc(%rbx)
andl $0x0, 0xc3(%rbx)
movups %xmm1, 0x160(%rbx)
movups %xmm1, 0x170(%rbx)
movb $0x1, %r14b
movb %r14b, 0x2d6(%rbx)
movl $0x1000000, 0x2d2(%rbx) # imm = 0x1000000
leaq 0x2d8(%rbx), %rdi
movl $0x608, %edx            # imm = 0x608
xorl %esi, %esi
callq 0x3170
orw $-0x1, 0x2d0(%rbx)
andl $0x0, 0x2c8(%rbx)
andw $0x0, 0x2cc(%rbx)
andl $0x0, 0x180(%rbx)
andl $0x0, 0x1a0(%rbx)
movb %bpl, 0x1d8(%rbx)
movb %bpl, 0x910(%rbx)
andq $0x0, 0x940(%rbx)
andl $0x0, 0x912(%rbx)
andl $0x0, 0x918(%rbx)
movb %r14b, 0x91c(%rbx)
andw $0x0, 0x978(%rbx)
movb %bpl, 0x921(%rbx)
andl $0x0, 0x91d(%rbx)
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq %r12, %rdi
callq 0x78cc
movq %r15, %rdi
callq 0x3130
movq %r14, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3430
nop