// File: lukasz-wiecaszek[P]h264iframedecoder/./vui_parameters.hpp
// Function: ymn::h264::aspect_ratio_idc_to_string(unsigned int)
constexpr static inline const char* aspect_ratio_idc_to_string(uint32_t aspect_ratio_idc)
{
    const char* str = "invalid 'aspect_ratio_idc' value";

    if (aspect_ratio_idc <= 255) {
        switch (aspect_ratio_idc) {
            case   0: str = "unspecified"; break;
            case   1: str = "1:1 (square)"; break;
            case   2: str = "12:11"; break;
            case   3: str = "10:11"; break;
            case   4: str = "16:11"; break;
            case   5: str = "40:33"; break;
            case   6: str = "24:11"; break;
            case   7: str = "20:11"; break;
            case   8: str = "32:11"; break;
            case   9: str = "80:33"; break;
            case  10: str = "18:11"; break;
            case  11: str = "15:11"; break;
            case  12: str = "64:33"; break;
            case  13: str = "160:99"; break;
            case  14: str = "4:3"; break;
            case  15: str = "3:2"; break;
            case  16: str = "2:1"; break;
            case 255: str = "extended sample aspect ratio"; break;
            default:
                str = "reserved";
                break;
        }
    }

    return str;
}

// Assembly:
movl %edi, -0x4(%rsp)
leaq 0x21d8f(%rip), %rax     # 0x2445a
movq %rax, -0x10(%rsp)
cmpl $0xff, -0x4(%rsp)
ja 0x2919
movl -0x4(%rsp), %eax
movl %eax, -0x14(%rsp)
testl %eax, %eax
je 0x27f4
jmp 0x26f0
movl -0x14(%rsp), %eax
subl $0x1, %eax
je 0x2805
jmp 0x26ff
movl -0x14(%rsp), %eax
subl $0x2, %eax
je 0x2816
jmp 0x270e
movl -0x14(%rsp), %eax
subl $0x3, %eax
je 0x2827
jmp 0x271d
movl -0x14(%rsp), %eax
subl $0x4, %eax
je 0x2838
jmp 0x272c
movl -0x14(%rsp), %eax
subl $0x5, %eax
je 0x2849
jmp 0x273b
movl -0x14(%rsp), %eax
subl $0x6, %eax
je 0x285a
jmp 0x274a
movl -0x14(%rsp), %eax
subl $0x7, %eax
je 0x286b
jmp 0x2759
movl -0x14(%rsp), %eax
subl $0x8, %eax
je 0x287c
jmp 0x2768
movl -0x14(%rsp), %eax
subl $0x9, %eax
je 0x288d
jmp 0x2777
movl -0x14(%rsp), %eax
subl $0xa, %eax
je 0x289b
jmp 0x2786
movl -0x14(%rsp), %eax
subl $0xb, %eax
je 0x28a9
jmp 0x2795
movl -0x14(%rsp), %eax
subl $0xc, %eax
je 0x28b7
jmp 0x27a4
movl -0x14(%rsp), %eax
subl $0xd, %eax
je 0x28c5
jmp 0x27b3
movl -0x14(%rsp), %eax
subl $0xe, %eax
je 0x28d3
jmp 0x27c2
movl -0x14(%rsp), %eax
subl $0xf, %eax
je 0x28e1
jmp 0x27d1
movl -0x14(%rsp), %eax
subl $0x10, %eax
je 0x28ef
jmp 0x27e0
movl -0x14(%rsp), %eax
subl $0xff, %eax
je 0x28fd
jmp 0x290b
leaq 0x21c80(%rip), %rax     # 0x2447b
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c7b(%rip), %rax     # 0x24487
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c77(%rip), %rax     # 0x24494
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c6c(%rip), %rax     # 0x2449a
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c61(%rip), %rax     # 0x244a0
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c56(%rip), %rax     # 0x244a6
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c4b(%rip), %rax     # 0x244ac
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c40(%rip), %rax     # 0x244b2
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c35(%rip), %rax     # 0x244b8
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c2a(%rip), %rax     # 0x244be
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c22(%rip), %rax     # 0x244c4
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c1a(%rip), %rax     # 0x244ca
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c12(%rip), %rax     # 0x244d0
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c0a(%rip), %rax     # 0x244d6
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21c03(%rip), %rax     # 0x244dd
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21bf9(%rip), %rax     # 0x244e1
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21bef(%rip), %rax     # 0x244e5
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21be5(%rip), %rax     # 0x244e9
movq %rax, -0x10(%rsp)
jmp 0x2917
leaq 0x21bf4(%rip), %rax     # 0x24506
movq %rax, -0x10(%rsp)
jmp 0x2919
movq -0x10(%rsp), %rax
retq
nop