user: Demonstrate the C code that generates the assembly output below:

```asm
<MDLValence>:
  endbr64
  mov    %edx,%eax
  cmp    $0x58,%edi
  ja     L333
  mov    %edi,%edi
  lea    D80(%rip),%rcx
  movslq (%rcx,%rdi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  test   %eax,%eax
  mov    $0x1,%edx
  cmovne %eax,%edx
  test   %esi,%esi
  cmove  %edx,%eax
  ret
  test   %esi,%esi
  je     L294
  test   %eax,%eax
  mov    $0x1,%edx
  cmovne %eax,%edx
  cmp    $0x1,%esi
  cmove  %edx,%eax
  ret
L294:
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  add    $0x4,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D174(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x3,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D19(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x2,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D218(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x1,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D173(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D87(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x4,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D94(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L322
  cmp    $0x3,%eax
  jbe    L80
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L285
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x3,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D208(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L364
  cmp    $0x3,%eax
  jbe    L473
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L464
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x2,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D0(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L659
  cmp    $0x3,%eax
  jbe    L278
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L402
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x1,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D139(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L489
  cmp    $0x3,%eax
  jbe    L32
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L393
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D6(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L478
  cmp    $0x3,%eax
  jbe    L497
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L365
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x2,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x4,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D59(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L446
  cmp    $0x3,%eax
  jbe    L538
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L508
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x3,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D25(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L536
  cmp    $0x3,%eax
  jbe    L441
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L292
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x2,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D44(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L221
  cmp    $0x3,%eax
  jbe    L329
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L180
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x1,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D88(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L697
  cmp    $0x3,%eax
  jbe    L443
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L324
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D214(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L531
  cmp    $0x3,%eax
  jbe    L263
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L83
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x4,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D198(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L340
  cmp    $0x3,%eax
  jbe    L416
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L627
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x2,%eax
  mov    $0x2,%eax
  cmova  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x3,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D76(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L397
  cmp    $0x3,%eax
  jbe    L598
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L177
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x2,%eax
  mov    $0x2,%eax
  cmova  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x2,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D63(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L595
  cmp    $0x3,%eax
  jbe    L706
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L554
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x2,%eax
  mov    $0x2,%eax
  cmova  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x1,%esi
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D78(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L391
  cmp    $0x3,%eax
  jbe    L112
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L669
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x2,%eax
  mov    $0x2,%eax
  cmova  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  cmp    $0x6,%esi
  ja     L333
  mov    %esi,%esi
  lea    D102(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L681
  cmp    $0x3,%eax
  jbe    L543
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L256
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x2,%eax
  mov    $0x2,%eax
  cmova  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovb  %edx,%eax
  ret
  test   %eax,%eax
  mov    $0x1,%edx
  cmove  %edx,%eax
  ret
  add    $0x4,%esi
  cmp    $0x4,%esi
  ja     L333
  mov    %esi,%esi
  lea    D150(%rip),%rcx
  movslq (%rcx,%rsi,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  cmp    $0x1,%eax
  jbe    L317
  cmp    $0x3,%eax
  jbe    L250
  mov    $0x7,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x5,%eax
  mov    $0x5,%eax
  cmova  %edx,%eax
  ret
  cmp    $0x2,%eax
  jbe    L407
  mov    $0x6,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x4,%eax
  mov    $0x4,%eax
  cmova  %edx,%eax
  ret
  mov    $0x5,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x3,%eax
  mov    $0x3,%eax
  cmova  %edx,%eax
  ret
  mov    $0x4,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x2,%eax
  mov    $0x2,%eax
  cmova  %edx,%eax
  ret
  mov    $0x3,%edx
  cmp    %edx,%eax
  cmovae %eax,%edx
  cmp    $0x1,%eax
  mov    $0x1,%eax
  cmova  %edx,%eax
  ret
L322:
  mov    $0x1,%eax
  ret
L80:
  mov    $0x3,%eax
  ret
L285:
  mov    $0x2,%eax
  ret
L364:
  mov    $0x1,%eax
  ret
L473:
  mov    $0x3,%eax
  ret
L464:
  mov    $0x2,%eax
  ret
L659:
  mov    $0x1,%eax
  ret
L278:
  mov    $0x3,%eax
  ret
L402:
  mov    $0x2,%eax
  ret
L489:
  mov    $0x1,%eax
  ret
L32:
  mov    $0x3,%eax
  ret
L393:
  mov    $0x2,%eax
  ret
L478:
  mov    $0x1,%eax
  ret
L497:
  mov    $0x3,%eax
  ret
L365:
  mov    $0x2,%eax
  ret
L446:
  mov    $0x1,%eax
  ret
L538:
  mov    $0x3,%eax
  ret
L508:
  mov    $0x2,%eax
  ret
L536:
  mov    $0x1,%eax
  ret
L441:
  mov    $0x3,%eax
  ret
L292:
  mov    $0x2,%eax
  ret
L221:
  mov    $0x1,%eax
  ret
L329:
  mov    $0x3,%eax
  ret
L180:
  mov    $0x2,%eax
  ret
L697:
  mov    $0x1,%eax
  ret
L443:
  mov    $0x3,%eax
  ret
L324:
  mov    $0x2,%eax
  ret
L531:
  mov    $0x1,%eax
  ret
L263:
  mov    $0x3,%eax
  ret
L83:
  mov    $0x2,%eax
  ret
L340:
  mov    $0x1,%eax
  ret
L416:
  mov    $0x3,%eax
  ret
L627:
  mov    $0x2,%eax
  ret
L397:
  mov    $0x1,%eax
  ret
L598:
  mov    $0x3,%eax
  ret
L177:
  mov    $0x2,%eax
  ret
L595:
  mov    $0x1,%eax
  ret
L706:
  mov    $0x3,%eax
  ret
L554:
  mov    $0x2,%eax
  ret
L391:
  mov    $0x1,%eax
  ret
L112:
  mov    $0x3,%eax
  ret
L669:
  mov    $0x2,%eax
  ret
L681:
  mov    $0x1,%eax
  ret
L543:
  mov    $0x3,%eax
  ret
L256:
  mov    $0x2,%eax
  ret
L317:
  mov    $0x1,%eax
  ret
L250:
  mov    $0x3,%eax
  ret
L407:
  mov    $0x2,%eax
L333:
  ret
```

assistant: ```c
unsigned int MDLValence(unsigned int elem, int q, unsigned int val) {
  switch (elem) {
  case 1:
  case 3:
  case 11:
  case 19:
  case 37:
  case 55:
  case 87:
    if (q == 0 && val <= 1)
      return 1;
    break;
  case 4:
  case 12:
  case 20:
  case 38:
  case 56:
  case 88:
    switch (q) {
    case 0:
      if (val <= 2)
        return 2;
      break;
    case 1:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 5:
    switch (q) {
    case -4:
      if (val <= 1)
        return 1;
      break;
    case -3:
      if (val <= 2)
        return 2;
      break;
    case -2:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case -1:
      if (val <= 4)
        return 4;
      break;
    case 0:
      if (val <= 3)
        return 3;
      break;
    case 1:
      if (val <= 2)
        return 2;
      break;
    case 2:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 6:
    switch (q) {
    case -3:
      if (val <= 1)
        return 1;
      break;
    case -2:
      if (val <= 2)
        return 2;
      break;
    case -1:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 0:
      if (val <= 4)
        return 4;
      break;
    case 1:
      if (val <= 3)
        return 3;
      break;
    case 2:
      if (val <= 2)
        return 2;
      break;
    case 3:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 7:
    switch (q) {
    case -2:
      if (val <= 1)
        return 1;
      break;
    case -1:
      if (val <= 2)
        return 2;
      break;
    case 0:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 1:
      if (val <= 4)
        return 4;
      break;
    case 2:
      if (val <= 3)
        return 3;
      break;
    case 3:
      if (val <= 2)
        return 2;
      break;
    case 4:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 8:
    switch (q) {
    case -1:
      if (val <= 1)
        return 1;
      break;
    case 0:
      if (val <= 2)
        return 2;
      break;
    case 1:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 2:
      if (val <= 4)
        return 4;
      break;
    case 3:
      if (val <= 3)
        return 3;
      break;
    case 4:
      if (val <= 2)
        return 2;
      break;
    case 5:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 9:
    switch (q) {
    case 0:
      if (val <= 1)
        return 1;
      break;
    case 1:
      if (val <= 2)
        return 2;
      break;
    case 2:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 3:
      if (val <= 4)
        return 4;
      break;
    case 4:
      if (val <= 3)
        return 3;
      break;
    case 5:
      if (val <= 2)
        return 2;
      break;
    case 6:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 13:
    switch (q) {
    case -4:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case -3:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case -2:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case -1:
      if (val <= 4)
        return 4;
      break;
    case 0:
      if (val <= 3)
        return 3;
      break;
    case 1:
      if (val <= 2)
        return 2;
      break;
    case 2:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 14:
    switch (q) {
    case -3:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case -2:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case -1:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 0:
      if (val <= 4)
        return 4;
      break;
    case 1:
      if (val <= 3)
        return 3;
      break;
    case 2:
      if (val <= 2)
        return 2;
      break;
    case 3:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 15:
    switch (q) {
    case -2:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case -1:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case 0:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 1:
      if (val <= 4)
        return 4;
      break;
    case 2:
      if (val <= 3)
        return 3;
      break;
    case 3:
      if (val <= 2)
        return 2;
      break;
    case 4:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 16:
    switch (q) {
    case -1:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case 0:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case 1:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 2:
      if (val <= 4)
        return 4;
      break;
    case 3:
      if (val <= 3)
        return 3;
      break;
    case 4:
      if (val <= 2)
        return 2;
      break;
    case 5:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 17:
    switch (q) {
    case 0:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case 1:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case 2:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 3:
      if (val <= 4)
        return 4;
      break;
    case 4:
      if (val <= 3)
        return 3;
      break;
    case 5:
      if (val <= 2)
        return 2;
      break;
    case 6:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 31:
    switch (q) {
    case -4:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case -3:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case -2:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case -1:
      if (val <= 4)
        return 4;
      break;
    case 0:
      if (val <= 3)
        return 3;
      break;
    case 2:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 32:
    switch (q) {
    case -3:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case -2:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case -1:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 0:
      if (val <= 4)
        return 4;
      break;
    case 1:
      if (val <= 3)
        return 3;
      break;
    case 3:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 33:
    switch (q) {
    case -2:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case -1:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case 0:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 1:
      if (val <= 4)
        return 4;
      break;
    case 2:
      if (val <= 3)
        return 3;
      break;
    case 4:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 34:
    switch (q) {
    case -1:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case 0:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case 1:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 2:
      if (val <= 4)
        return 4;
      break;
    case 3:
      if (val <= 3)
        return 3;
      break;
    case 5:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 35:
    switch (q) {
    case 0:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case 1:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case 2:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 3:
      if (val <= 4)
        return 4;
      break;
    case 4:
      if (val <= 3)
        return 3;
      break;
    case 6:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 49:
    switch (q) {
    case -4:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case -3:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case -2:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case -1:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      break;
    case 0:
      if (val <= 3)
        return 3;
      break;
    case 2:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 50:
  case 82:
    switch (q) {
    case -3:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case -2:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case -1:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 0:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      break;
    case 1:
      if (val <= 3)
        return 3;
      break;
    case 3:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 51:
  case 83:
    switch (q) {
    case -2:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case -1:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case 0:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 1:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      break;
    case 2:
      if (val <= 3)
        return 3;
      break;
    case 4:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 52:
  case 84:
    switch (q) {
    case -1:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case 0:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case 1:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 2:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      break;
    case 3:
      if (val <= 3)
        return 3;
      break;
    case 5:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 53:
  case 85:
    switch (q) {
    case 0:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case 1:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case 2:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case 3:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      break;
    case 4:
      if (val <= 3)
        return 3;
      break;
    case 6:
      if (val <= 1)
        return 1;
      break;
    }
    break;
  case 81:
    switch (q) {
    case -4:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      if (val <= 7)
        return 7;
      break;
    case -3:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      if (val <= 6)
        return 6;
      break;
    case -2:
      if (val <= 3)
        return 3;
      if (val <= 5)
        return 5;
      break;
    case -1:
      if (val <= 2)
        return 2;
      if (val <= 4)
        return 4;
      break;
    case 0:
      if (val <= 1)
        return 1;
      if (val <= 3)
        return 3;
      break;
    }
    break;
  }
  return val;
}
```