user: What would the C source look like for the assembly code provided here?

```asm
<ddsGetDXT5Alpha>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  mov    %esi,-0x8(%rbp)
  mov    %edx,-0xc(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jle    L168
  cmpl   $0x7,-0xc(%rbp)
  ja     L114
  mov    -0xc(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D19(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D19(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x4(%rbp),%eax
  jmp    L69
  mov    -0x8(%rbp),%eax
  jmp    L69
  mov    -0x4(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,%eax
  mov    %eax,%edx
  mov    -0x8(%rbp),%eax
  add    %edx,%eax
  movslq %eax,%rdx
  imul   $0xffffffff92492493,%rdx,%rdx
  shr    $0x20,%rdx
  add    %eax,%edx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  jmp    L69
  mov    -0x4(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %eax,%edx
  mov    -0x8(%rbp),%eax
  add    %eax,%eax
  add    %edx,%eax
  movslq %eax,%rdx
  imul   $0xffffffff92492493,%rdx,%rdx
  shr    $0x20,%rdx
  add    %eax,%edx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  jmp    L69
  mov    -0x4(%rbp),%eax
  lea    0x0(,%rax,4),%ecx
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %ecx,%eax
  movslq %eax,%rdx
  imul   $0xffffffff92492493,%rdx,%rdx
  shr    $0x20,%rdx
  add    %eax,%edx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  jmp    L69
  mov    -0x4(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %eax,%edx
  mov    -0x8(%rbp),%eax
  shl    $0x2,%eax
  add    %edx,%eax
  movslq %eax,%rdx
  imul   $0xffffffff92492493,%rdx,%rdx
  shr    $0x20,%rdx
  add    %eax,%edx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  jmp    L69
  mov    -0x4(%rbp),%eax
  lea    (%rax,%rax,1),%ecx
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %ecx,%eax
  movslq %eax,%rdx
  imul   $0xffffffff92492493,%rdx,%rdx
  shr    $0x20,%rdx
  add    %eax,%edx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  jmp    L69
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,%eax
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  movslq %eax,%rdx
  imul   $0xffffffff92492493,%rdx,%rdx
  shr    $0x20,%rdx
  add    %eax,%edx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  jmp    L69
L168:
  cmpl   $0x7,-0xc(%rbp)
  ja     L114
  mov    -0xc(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D34(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D34(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x4(%rbp),%eax
  jmp    L69
  mov    -0x8(%rbp),%eax
  jmp    L69
  mov    -0x4(%rbp),%eax
  lea    0x0(,%rax,4),%edx
  mov    -0x8(%rbp),%eax
  add    %edx,%eax
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    %edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  jmp    L69
  mov    -0x4(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %eax,%edx
  mov    -0x8(%rbp),%eax
  add    %eax,%eax
  add    %edx,%eax
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    %edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  jmp    L69
  mov    -0x4(%rbp),%eax
  lea    (%rax,%rax,1),%ecx
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %ecx,%eax
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    %edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  jmp    L69
  mov    -0x8(%rbp),%eax
  lea    0x0(,%rax,4),%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    %edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  jmp    L69
  mov    $0x0,%eax
  jmp    L69
  mov    $0xff,%eax
  jmp    L69
L114:
  mov    $0x0,%eax
L69:
  pop    %rbp
  ret
```

assistant: ```c
int ddsGetDXT5Alpha(int a0, int a1, int t) {
  if (a0 > a1)
    switch (t) {
    case 0:
      return a0;
    case 1:
      return a1;
    case 2:
      return (6 * a0 + a1) / 7;
    case 3:
      return (5 * a0 + 2 * a1) / 7;
    case 4:
      return (4 * a0 + 3 * a1) / 7;
    case 5:
      return (3 * a0 + 4 * a1) / 7;
    case 6:
      return (2 * a0 + 5 * a1) / 7;
    case 7:
      return (a0 + 6 * a1) / 7;
    }
  else
    switch (t) {
    case 0:
      return a0;
    case 1:
      return a1;
    case 2:
      return (4 * a0 + a1) / 5;
    case 3:
      return (3 * a0 + 2 * a1) / 5;
    case 4:
      return (2 * a0 + 3 * a1) / 5;
    case 5:
      return (a0 + 4 * a1) / 5;
    case 6:
      return 0;
    case 7:
      return 255;
    }
  return 0;
}
```