// File: rpavlik[P]edid-decode/parse-base-block.cpp
// Function: edid_state::list_dmts()
void edid_state::list_dmts()
{
	char type[16];

	for (unsigned i = 0; i < ARRAY_SIZE(dmt_timings); i++) {
		sprintf(type, "DMT 0x%02x", dmt_timings[i].dmt_id);
		std::string flags;
		if (dmt_timings[i].std_id)
			flags += std::string("STD: ") +
				utohex(dmt_timings[i].std_id >> 8) + " " +
				utohex(dmt_timings[i].std_id & 0xff);
		if (dmt_timings[i].cvt_id)
			add_str(flags, std::string("CVT: ") +
				utohex(dmt_timings[i].cvt_id >> 16) + " " +
				utohex((dmt_timings[i].cvt_id >> 8) & 0xff) + " " +
				utohex(dmt_timings[i].cvt_id & 0xff));
		print_timings("", &dmt_timings[i].t, type, flags.c_str(), false, false);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x270, %rsp            # imm = 0x270
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x250(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpq $0x58, %rax
jae 0xefdf
leaq -0x20(%rbp), %rdi
movl -0x24(%rbp), %eax
movl %eax, %ecx
leaq 0x22d52(%rip), %rax     # 0x31730
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edx
leaq 0x210cb(%rip), %rsi     # 0x2fab9
movb $0x0, %al
callq 0x40a0
leaq -0x48(%rbp), %rdi
callq 0x4430
movl -0x24(%rbp), %eax
movl %eax, %ecx
leaq 0x22d26(%rip), %rax     # 0x31730
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x4(%rax)
je 0xec30
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x258(%rbp)
callq 0x4560
movq -0x258(%rbp), %rdx
leaq 0x24efc(%rip), %rsi     # 0x33938
leaq -0xc8(%rbp), %rdi
callq 0xb510
jmp 0xea4a
movl -0x24(%rbp), %eax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq 0x22cd4(%rip), %rcx     # 0x31730
movzbl 0x5(%rax,%rcx), %esi
leaq -0x100(%rbp), %rdi
callq 0x7530
jmp 0xea6f
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
leaq -0x100(%rbp), %rdx
callq 0xb7b0
jmp 0xea8b
leaq 0x25d50(%rip), %rdx     # 0x347e2
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0xb4c0
jmp 0xeaa7
movl -0x24(%rbp), %eax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq 0x22c77(%rip), %rcx     # 0x31730
movzbl 0x4(%rax,%rcx), %esi
leaq -0x120(%rbp), %rdi
callq 0x7530
jmp 0xeacc
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rsi
leaq -0x120(%rbp), %rdx
callq 0xb7b0
jmp 0xeae5
leaq -0x48(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x43f0
jmp 0xeaf4
leaq -0x68(%rbp), %rdi
callq 0x41f0
leaq -0x120(%rbp), %rdi
callq 0x41f0
leaq -0x88(%rbp), %rdi
callq 0x41f0
leaq -0xa8(%rbp), %rdi
callq 0x41f0
leaq -0x100(%rbp), %rdi
callq 0x41f0
leaq -0xc8(%rbp), %rdi
callq 0x41f0
leaq -0xc9(%rbp), %rdi
callq 0x4370
jmp 0xec30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xec1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xec13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xec07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xebfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xebef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xebe3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x41f0
leaq -0x120(%rbp), %rdi
callq 0x41f0
leaq -0x88(%rbp), %rdi
callq 0x41f0
leaq -0xa8(%rbp), %rdi
callq 0x41f0
leaq -0x100(%rbp), %rdi
callq 0x41f0
leaq -0xc8(%rbp), %rdi
callq 0x41f0
leaq -0xc9(%rbp), %rdi
callq 0x4370
jmp 0xefd4
movl -0x24(%rbp), %eax
movl %eax, %ecx
leaq 0x22af4(%rip), %rax     # 0x31730
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x8(%rax)
je 0xef55
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x260(%rbp)
callq 0x4560
movq -0x260(%rbp), %rdx
leaq 0x24cd0(%rip), %rsi     # 0x3393e
leaq -0x1e0(%rbp), %rdi
callq 0xb510
jmp 0xec7c
movl -0x24(%rbp), %eax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq 0x22aa2(%rip), %rcx     # 0x31730
movzbl 0xa(%rax,%rcx), %esi
leaq -0x208(%rbp), %rdi
callq 0x7530
jmp 0xeca1
leaq -0x1c0(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
leaq -0x208(%rbp), %rdx
callq 0xb7b0
jmp 0xecbd
leaq 0x25b1e(%rip), %rdx     # 0x347e2
leaq -0x1a0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0xb4c0
jmp 0xecd9
movl -0x24(%rbp), %eax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq 0x22a45(%rip), %rcx     # 0x31730
movzbl 0x9(%rax,%rcx), %esi
leaq -0x228(%rbp), %rdi
callq 0x7530
jmp 0xecfe
leaq -0x180(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
leaq -0x228(%rbp), %rdx
callq 0xb7b0
jmp 0xed1a
leaq 0x25ac1(%rip), %rdx     # 0x347e2
leaq -0x160(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xb4c0
jmp 0xed36
movl -0x24(%rbp), %eax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq 0x229e8(%rip), %rcx     # 0x31730
movzbl 0x8(%rax,%rcx), %esi
leaq -0x248(%rbp), %rdi
callq 0x7530
jmp 0xed5b
leaq -0x140(%rbp), %rdi
leaq -0x160(%rbp), %rsi
leaq -0x248(%rbp), %rdx
callq 0xb7b0
jmp 0xed77
leaq -0x48(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0xf000
jmp 0xed89
leaq -0x140(%rbp), %rdi
callq 0x41f0
leaq -0x248(%rbp), %rdi
callq 0x41f0
leaq -0x160(%rbp), %rdi
callq 0x41f0
leaq -0x180(%rbp), %rdi
callq 0x41f0
leaq -0x228(%rbp), %rdi
callq 0x41f0
leaq -0x1a0(%rbp), %rdi
callq 0x41f0
leaq -0x1c0(%rbp), %rdi
callq 0x41f0
leaq -0x208(%rbp), %rdi
callq 0x41f0
leaq -0x1e0(%rbp), %rdi
callq 0x41f0
leaq -0x1e1(%rbp), %rdi
callq 0x4370
jmp 0xef55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xef47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xef3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xef2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xef23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xef17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xef0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xeeff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xeef3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xeee7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x41f0
leaq -0x248(%rbp), %rdi
callq 0x41f0
leaq -0x160(%rbp), %rdi
callq 0x41f0
leaq -0x180(%rbp), %rdi
callq 0x41f0
leaq -0x228(%rbp), %rdi
callq 0x41f0
leaq -0x1a0(%rbp), %rdi
callq 0x41f0
leaq -0x1c0(%rbp), %rdi
callq 0x41f0
leaq -0x208(%rbp), %rdi
callq 0x41f0
leaq -0x1e0(%rbp), %rdi
callq 0x41f0
leaq -0x1e1(%rbp), %rdi
callq 0x4370
jmp 0xefd4
movl -0x24(%rbp), %eax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq 0x227c9(%rip), %rcx     # 0x31730
leaq 0xc(%rax,%rcx), %rax
movq %rax, -0x268(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x4150
movq -0x250(%rbp), %rdi
movq -0x268(%rbp), %rdx
movq %rax, %r8
movq %rsp, %rax
movl $0x0, (%rax)
leaq 0x20f1c(%rip), %rsi     # 0x2feb9
leaq -0x20(%rbp), %rcx
xorl %r9d, %r9d
callq 0x50c0
jmp 0xefab
leaq -0x48(%rbp), %rdi
callq 0x41f0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xe9c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x41f0
jmp 0xefe8
addq $0x270, %rsp            # imm = 0x270
popq %rbp
retq
movq -0xd8(%rbp), %rdi
callq 0x4550
nopw %cs:(%rax,%rax)