// File: rpavlik[P]edid-decode/parse-cta-block.cpp
// Function: mpeg_h_3d_audio_level[abi:cxx11](unsigned char)
static std::string mpeg_h_3d_audio_level(unsigned char x)
{
	switch (x) {
	case 0: return "Unspecified";
	case 1: return "Level 1";
	case 2: return "Level 2";
	case 3: return "Level 3";
	case 4: return "Level 4";
	case 5: return "Level 5";
	default: break;
	}
	fail("Unknown MPEG-H 3D Audio Level 0x%02x.\n", x);
	return std::string("Unknown MPEG-H 3D Audio Level (") + utohex(x) + ")";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0xa8(%rbp)
movb %sil, %al
movq %rdi, %rcx
movq %rcx, -0xa0(%rbp)
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movzbl -0x9(%rbp), %eax
movq %rax, -0x98(%rbp)
subq $0x5, %rax
ja 0x1f80a
movq -0x98(%rbp), %rax
leaq 0x16a23(%rip), %rcx     # 0x3602c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0xa(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x4560
movq -0xa8(%rbp), %rdi
movq -0xb0(%rbp), %rdx
leaq 0x1e0fc(%rip), %rsi     # 0x3d733
callq 0xb510
jmp 0x1f63e
leaq -0xa(%rbp), %rdi
callq 0x4370
jmp 0x1f913
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0xa(%rbp), %rdi
callq 0x4370
jmp 0x1f923
leaq -0x1d(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x4560
movq -0xa8(%rbp), %rdi
movq -0xb8(%rbp), %rdx
leaq 0x1e0b4(%rip), %rsi     # 0x3d73f
callq 0xb510
jmp 0x1f692
leaq -0x1d(%rbp), %rdi
callq 0x4370
jmp 0x1f913
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x1d(%rbp), %rdi
callq 0x4370
jmp 0x1f923
leaq -0x1e(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x4560
movq -0xa8(%rbp), %rdi
movq -0xc0(%rbp), %rdx
leaq 0x1e068(%rip), %rsi     # 0x3d747
callq 0xb510
jmp 0x1f6e6
leaq -0x1e(%rbp), %rdi
callq 0x4370
jmp 0x1f913
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x1e(%rbp), %rdi
callq 0x4370
jmp 0x1f923
leaq -0x1f(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0x4560
movq -0xa8(%rbp), %rdi
movq -0xc8(%rbp), %rdx
leaq 0x1e01c(%rip), %rsi     # 0x3d74f
callq 0xb510
jmp 0x1f73a
leaq -0x1f(%rbp), %rdi
callq 0x4370
jmp 0x1f913
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x1f(%rbp), %rdi
callq 0x4370
jmp 0x1f923
leaq -0x20(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0x4560
movq -0xa8(%rbp), %rdi
movq -0xd0(%rbp), %rdx
leaq 0x1dfd0(%rip), %rsi     # 0x3d757
callq 0xb510
jmp 0x1f78e
leaq -0x20(%rbp), %rdi
callq 0x4370
jmp 0x1f913
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x4370
jmp 0x1f923
leaq -0x21(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0x4560
movq -0xa8(%rbp), %rdi
movq -0xd8(%rbp), %rdx
leaq 0x1df84(%rip), %rsi     # 0x3d75f
callq 0xb510
jmp 0x1f7e2
leaq -0x21(%rbp), %rdi
callq 0x4370
jmp 0x1f913
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x21(%rbp), %rdi
callq 0x4370
jmp 0x1f923
jmp 0x1f80c
movzbl -0x9(%rbp), %edx
leaq 0x1df50(%rip), %rsi     # 0x3d767
xorl %edi, %edi
movb %dil, %al
callq 0x47d0
leaq -0x69(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x4560
movq -0xe0(%rbp), %rdx
leaq 0x1df4f(%rip), %rsi     # 0x3d78e
leaq -0x68(%rbp), %rdi
callq 0xb510
jmp 0x1f84a
movzbl -0x9(%rbp), %esi
leaq -0x90(%rbp), %rdi
callq 0x7530
jmp 0x1f85c
leaq -0x48(%rbp), %rdi
leaq -0x68(%rbp), %rsi
leaq -0x90(%rbp), %rdx
callq 0xb7b0
jmp 0x1f872
movq -0xa8(%rbp), %rdi
leaq 0x1d095(%rip), %rdx     # 0x3c915
leaq -0x48(%rbp), %rsi
callq 0xb4c0
jmp 0x1f88b
leaq -0x48(%rbp), %rdi
callq 0x41f0
leaq -0x90(%rbp), %rdi
callq 0x41f0
leaq -0x68(%rbp), %rdi
callq 0x41f0
leaq -0x69(%rbp), %rdi
callq 0x4370
jmp 0x1f913
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x1f908
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x1f8ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x1f8f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x41f0
leaq -0x90(%rbp), %rdi
callq 0x41f0
leaq -0x68(%rbp), %rdi
callq 0x41f0
leaq -0x69(%rbp), %rdi
callq 0x4370
jmp 0x1f923
movq -0xa0(%rbp), %rax
addq $0xe0, %rsp
popq %rbp
retq
movq -0x18(%rbp), %rdi
callq 0x4550
nopl (%rax)